16ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/****************************************************************************
26ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
36ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
46ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   This header was automatically generated from a Linux kernel header
56ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   of the same name, to make information necessary for userspace to
66ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   call into the kernel available to libc.  It contains only constants,
76ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   structures, and macros generated from the original header, and thus,
86ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   contains no copyrightable information.
96ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************/
126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef __LINUX_PKT_CLS_H
136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define __LINUX_PKT_CLS_H
146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <linux/pkt_sched.h>
166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _TC_MAKE32(x) ((x))
186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n))
206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n))
216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n))
226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n))
236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_MUNGED _TC_MAKEMASK1(0)
256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_MUNGED(v) ( TC_MUNGED | (v & ~TC_MUNGED))
266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define CLR_TC_MUNGED(v) ( v & ~TC_MUNGED)
276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_OK2MUNGE _TC_MAKEMASK1(1)
296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_OK2MUNGE(v) ( TC_OK2MUNGE | (v & ~TC_OK2MUNGE))
306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define CLR_TC_OK2MUNGE(v) ( v & ~TC_OK2MUNGE)
316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define S_TC_VERD _TC_MAKE32(2)
336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define M_TC_VERD _TC_MAKEMASK(4,S_TC_VERD)
346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define G_TC_VERD(x) _TC_GETVALUE(x,S_TC_VERD,M_TC_VERD)
356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define V_TC_VERD(x) _TC_MAKEVALUE(x,S_TC_VERD)
366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_VERD(v,n) ((V_TC_VERD(n)) | (v & ~M_TC_VERD))
376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define S_TC_FROM _TC_MAKE32(6)
396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM)
426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM))
436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define AT_STACK 0x0
446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define AT_INGRESS 0x1
456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define AT_EGRESS 0x2
466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_NCLS _TC_MAKEMASK1(8)
486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define S_TC_RTTL _TC_MAKE32(9)
526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL)
536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL)
546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL)
556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL))
566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define S_TC_AT _TC_MAKE32(12)
586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ACT_UNSPEC,
666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ACT_KIND,
676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ACT_OPTIONS,
686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ACT_INDEX,
696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ACT_STATS,
706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_ACT_MAX
716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_MAX __TCA_ACT_MAX
746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_MAX_PRIO 32
766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_BIND 1
776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_NOBIND 0
786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_UNBIND 1
796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_NOUNBIND 0
806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_REPLACE 1
816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ACT_NOREPLACE 0
826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MAX_REC_LOOP 4
836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define MAX_RED_LOOP 4
846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_UNSPEC (-1)
866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_OK 0
876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_RECLASSIFY 1
886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_SHOT 2
896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_PIPE 3
906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_STOLEN 4
916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_QUEUED 5
926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_REPEAT 6
936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_ACT_JUMP 0x10000000
946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ID_UNSPEC=0,
986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ID_POLICE=1,
996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_ID_MAX=255
1016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ID_MAX __TCA_ID_MAX
1046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_police
1066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 index;
1086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int action;
1096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_POLICE_UNSPEC TC_ACT_UNSPEC
1106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_POLICE_OK TC_ACT_OK
1116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
1126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_POLICE_SHOT TC_ACT_SHOT
1136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_POLICE_PIPE TC_ACT_PIPE
1146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 limit;
1166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 burst;
1176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 mtu;
1186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct tc_ratespec rate;
1196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct tc_ratespec peakrate;
1206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int refcnt;
1216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int bindcnt;
1226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 capab;
1236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tcf_t
1266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 install;
1286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 lastuse;
1296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 expires;
1306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_cnt
1336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int refcnt;
1356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int bindcnt;
1366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define tc_gen   __u32 index;   __u32 capab;   int action;   int refcnt;   int bindcnt
1396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
1416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_UNSPEC,
1436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_TBF,
1446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_RATE,
1456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_PEAKRATE,
1466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_AVRATE,
1476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_POLICE_RESULT,
1486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_POLICE_MAX
1496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_POLICE_RESULT TCA_POLICE_RESULT
1506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
1536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_HTID(h) ((h)&0xFFF00000)
1556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_USERHTID(h) (TC_U32_HTID(h)>>20)
1566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_HASH(h) (((h)>>12)&0xFF)
1576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_NODE(h) ((h)&0xFFF)
1586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_KEY(h) ((h)&0xFFFFF)
1596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_UNSPEC 0
1606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_ROOT (0xFFF00000)
1616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
1636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_UNSPEC,
1656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_CLASSID,
1666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_HASH,
1676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_LINK,
1686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_DIVISOR,
1696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_SEL,
1706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_POLICE,
1716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_ACT,
1726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_INDEV,
1736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_PCNT,
1746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_U32_MARK,
1756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_U32_MAX
1766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_U32_MAX (__TCA_U32_MAX - 1)
1796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_u32_key
1816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 mask;
1836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 val;
1846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int off;
1856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int offmask;
1866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
1876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_u32_sel
1896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
1906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char flags;
1916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char offshift;
1926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char nkeys;
1936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 offmask;
1956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 off;
1966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh short offoff;
1976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
1986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh short hoff;
1996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 hmask;
2006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct tc_u32_key keys[0];
2016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_u32_mark
2046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 val;
2066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 mask;
2076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 success;
2086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_u32_pcnt
2116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 rcnt;
2136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 rhit;
2146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u64 kcnts[0];
2156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_TERMINAL 1
2186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_OFFSET 2
2196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_VAROFFSET 4
2206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_EAT 8
2216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TC_U32_MAXDEPTH 8
2236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
2256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_UNSPEC,
2276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_CLASSID,
2286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_DST,
2296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_SRC,
2306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_PINFO,
2316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_POLICE,
2326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_RSVP_ACT,
2336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_RSVP_MAX
2346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
2376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_rsvp_gpi
2396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 key;
2416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 mask;
2426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int offset;
2436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tc_rsvp_pinfo
2466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct tc_rsvp_gpi dpi;
2486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct tc_rsvp_gpi spi;
2496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 protocol;
2506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 tunnelid;
2516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 tunnelhdr;
2526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 pad;
2536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
2566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_UNSPEC,
2586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_CLASSID,
2596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_TO,
2606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_FROM,
2616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_IIF,
2626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_POLICE,
2636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_ROUTE4_ACT,
2646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_ROUTE4_MAX
2656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
2686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
2706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_FW_UNSPEC,
2726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_FW_CLASSID,
2736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_FW_POLICE,
2746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_FW_INDEV,
2756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_FW_ACT,
2766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_FW_MAX
2776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_FW_MAX (__TCA_FW_MAX - 1)
2806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
2826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_UNSPEC,
2846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_HASH,
2856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_MASK,
2866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_SHIFT,
2876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_FALL_THROUGH,
2886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_CLASSID,
2896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_POLICE,
2906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_TCINDEX_ACT,
2916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_TCINDEX_MAX
2926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
2936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
2956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
2966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
2976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
2986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_BASIC_UNSPEC,
2996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_BASIC_CLASSID,
3006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_BASIC_EMATCHES,
3016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_BASIC_ACT,
3026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_BASIC_POLICE,
3036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_BASIC_MAX
3046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
3076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tcf_ematch_tree_hdr
3096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 nmatches;
3116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 progid;
3126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
3156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_EMATCH_TREE_UNSPEC,
3176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_EMATCH_TREE_HDR,
3186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCA_EMATCH_TREE_LIST,
3196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCA_EMATCH_TREE_MAX
3206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
3226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct tcf_ematch_hdr
3246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 matchid;
3266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 kind;
3276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 flags;
3286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 pad;
3296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_REL_END 0
3326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_REL_AND (1<<0)
3336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_REL_OR (1<<1)
3346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_INVERT (1<<2)
3356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_SIMPLE (1<<3)
3366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_REL_MASK 3
3386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
3396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
3416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_LAYER_LINK,
3436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_LAYER_NETWORK,
3446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_LAYER_TRANSPORT,
3456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCF_LAYER_MAX
3466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
3486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
3506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_CONTAINER,
3526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_CMP,
3536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_NBYTE,
3546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_U32,
3556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_META,
3566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_TEXT,
3576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __TCF_EM_MAX
3586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
3616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_PROG_TC
3636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehenum
3666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh{
3676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_OPND_EQ,
3686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_OPND_GT,
3696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh TCF_EM_OPND_LT
3706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
3716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
3726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif
373