15f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer/*
25f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * netlink/route/pktloc.h         Packet Location Aliasing
35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer *
45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer *	This library is free software; you can redistribute it and/or
50bc735ffcfb223c0186419547abaa5c84482663eChris Lattner *	modify it under the terms of the GNU Lesser General Public
60bc735ffcfb223c0186419547abaa5c84482663eChris Lattner *	License as published by the Free Software Foundation version 2.1
75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer *	of the License.
85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer *
92f7f5b1f5ff023cb8c4008ae53a12b09e3ea2622James Dennett * Copyright (c) 2010 Thomas Graf <tgraf@suug.ch>
102f7f5b1f5ff023cb8c4008ae53a12b09e3ea2622James Dennett */
112f7f5b1f5ff023cb8c4008ae53a12b09e3ea2622James Dennett
122f7f5b1f5ff023cb8c4008ae53a12b09e3ea2622James Dennett#ifndef NETLINK_PKTLOC_H_
135f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define NETLINK_PKTLOC_H_
145f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
155f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#include <netlink/netlink.h>
165f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#include <netlink/cache.h>
175f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#include <netlink/route/tc.h>
18686775deca8b8685eb90801495880e3abdd844c2Chris Lattner
190ee7d94ece918f22e67d0f09fcbc631c91091adcArgyrios Kyrtzidis#include <linux/tc_ematch/tc_em_cmp.h>
2030a2e16f6c27f888dd11eba6bbbae1e980078fcbChandler Carruth
21ae50fa0a9e7217b043ed4ffe175af4b26dc90f34Chris Lattner#ifdef __cplusplus
2230a2e16f6c27f888dd11eba6bbbae1e980078fcbChandler Carruthextern "C" {
23b328ee55d86acaafd55ebf0e0c84766b29459530Chad Rosier#endif
2430a2e16f6c27f888dd11eba6bbbae1e980078fcbChandler Carruth
259dc1f530c086d2c16f8cba758b0f59a5bf41323aChris Lattnerstruct rtnl_pktloc
269c728dc4d8da89c73fcae74c9e72d7a83ffd7b6dTed Kremenek{
272b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner	char *			name;
282b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner	uint8_t			align:4;
2906159e878569e5f39bf0e8f11b84ac3ad0970597Chris Lattner	uint8_t			layer:4;
309c728dc4d8da89c73fcae74c9e72d7a83ffd7b6dTed Kremenek	uint8_t			flags;
319c728dc4d8da89c73fcae74c9e72d7a83ffd7b6dTed Kremenek	uint16_t		offset;
325f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer	uint32_t		mask;
331eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump
34a9793ed6a77946c988ee38035baf4cde6ff2e864Ted Kremenek	struct nl_list_head	list;
351eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump};
364bd495c2a4fc742dde435115f66c722217975bd2James Dennett
374bd495c2a4fc742dde435115f66c722217975bd2James Dennettextern int rtnl_pktloc_lookup(const char *, struct rtnl_pktloc **);
382b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner
392b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner
40af50aab0c317462129d73ae8000c6394c718598dJames Dennett#ifdef __cplusplus
41af50aab0c317462129d73ae8000c6394c718598dJames Dennett}
42f62d43d2afe1960755a1b5813cae1e5983bcac1bDouglas Gregor#endif
432b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner
442b2453a7d8fe732561795431f39ceb2b2a832d84Chris Lattner#endif
451eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump