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