Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __LINUX_PKT_CLS_H
     20 #define __LINUX_PKT_CLS_H
     21 #include <linux/types.h>
     22 #include <linux/pkt_sched.h>
     23 enum {
     24   TCA_ACT_UNSPEC,
     25   TCA_ACT_KIND,
     26   TCA_ACT_OPTIONS,
     27   TCA_ACT_INDEX,
     28   TCA_ACT_STATS,
     29   TCA_ACT_PAD,
     30   __TCA_ACT_MAX
     31 };
     32 #define TCA_ACT_MAX __TCA_ACT_MAX
     33 #define TCA_OLD_COMPAT (TCA_ACT_MAX + 1)
     34 #define TCA_ACT_MAX_PRIO 32
     35 #define TCA_ACT_BIND 1
     36 #define TCA_ACT_NOBIND 0
     37 #define TCA_ACT_UNBIND 1
     38 #define TCA_ACT_NOUNBIND 0
     39 #define TCA_ACT_REPLACE 1
     40 #define TCA_ACT_NOREPLACE 0
     41 #define TC_ACT_UNSPEC (- 1)
     42 #define TC_ACT_OK 0
     43 #define TC_ACT_RECLASSIFY 1
     44 #define TC_ACT_SHOT 2
     45 #define TC_ACT_PIPE 3
     46 #define TC_ACT_STOLEN 4
     47 #define TC_ACT_QUEUED 5
     48 #define TC_ACT_REPEAT 6
     49 #define TC_ACT_REDIRECT 7
     50 #define TC_ACT_JUMP 0x10000000
     51 enum {
     52   TCA_ID_UNSPEC = 0,
     53   TCA_ID_POLICE = 1,
     54   __TCA_ID_MAX = 255
     55 };
     56 #define TCA_ID_MAX __TCA_ID_MAX
     57 struct tc_police {
     58   __u32 index;
     59   int action;
     60 #define TC_POLICE_UNSPEC TC_ACT_UNSPEC
     61 #define TC_POLICE_OK TC_ACT_OK
     62 #define TC_POLICE_RECLASSIFY TC_ACT_RECLASSIFY
     63 #define TC_POLICE_SHOT TC_ACT_SHOT
     64 #define TC_POLICE_PIPE TC_ACT_PIPE
     65   __u32 limit;
     66   __u32 burst;
     67   __u32 mtu;
     68   struct tc_ratespec rate;
     69   struct tc_ratespec peakrate;
     70   int refcnt;
     71   int bindcnt;
     72   __u32 capab;
     73 };
     74 struct tcf_t {
     75   __u64 install;
     76   __u64 lastuse;
     77   __u64 expires;
     78   __u64 firstuse;
     79 };
     80 struct tc_cnt {
     81   int refcnt;
     82   int bindcnt;
     83 };
     84 #define tc_gen __u32 index; __u32 capab; int action; int refcnt; int bindcnt
     85 enum {
     86   TCA_POLICE_UNSPEC,
     87   TCA_POLICE_TBF,
     88   TCA_POLICE_RATE,
     89   TCA_POLICE_PEAKRATE,
     90   TCA_POLICE_AVRATE,
     91   TCA_POLICE_RESULT,
     92   TCA_POLICE_TM,
     93   TCA_POLICE_PAD,
     94   __TCA_POLICE_MAX
     95 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
     96 };
     97 #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
     98 #define TCA_CLS_FLAGS_SKIP_HW (1 << 0)
     99 #define TCA_CLS_FLAGS_SKIP_SW (1 << 1)
    100 #define TC_U32_HTID(h) ((h) & 0xFFF00000)
    101 #define TC_U32_USERHTID(h) (TC_U32_HTID(h) >> 20)
    102 #define TC_U32_HASH(h) (((h) >> 12) & 0xFF)
    103 #define TC_U32_NODE(h) ((h) & 0xFFF)
    104 #define TC_U32_KEY(h) ((h) & 0xFFFFF)
    105 #define TC_U32_UNSPEC 0
    106 #define TC_U32_ROOT (0xFFF00000)
    107 enum {
    108   TCA_U32_UNSPEC,
    109   TCA_U32_CLASSID,
    110   TCA_U32_HASH,
    111   TCA_U32_LINK,
    112   TCA_U32_DIVISOR,
    113   TCA_U32_SEL,
    114   TCA_U32_POLICE,
    115   TCA_U32_ACT,
    116   TCA_U32_INDEV,
    117   TCA_U32_PCNT,
    118   TCA_U32_MARK,
    119   TCA_U32_FLAGS,
    120   TCA_U32_PAD,
    121   __TCA_U32_MAX
    122 };
    123 #define TCA_U32_MAX (__TCA_U32_MAX - 1)
    124 struct tc_u32_key {
    125   __be32 mask;
    126   __be32 val;
    127   int off;
    128   int offmask;
    129 };
    130 struct tc_u32_sel {
    131   unsigned char flags;
    132   unsigned char offshift;
    133   unsigned char nkeys;
    134   __be16 offmask;
    135   __u16 off;
    136   short offoff;
    137   short hoff;
    138   __be32 hmask;
    139   struct tc_u32_key keys[0];
    140 };
    141 struct tc_u32_mark {
    142   __u32 val;
    143   __u32 mask;
    144   __u32 success;
    145 };
    146 struct tc_u32_pcnt {
    147   __u64 rcnt;
    148   __u64 rhit;
    149   __u64 kcnts[0];
    150 };
    151 #define TC_U32_TERMINAL 1
    152 #define TC_U32_OFFSET 2
    153 #define TC_U32_VAROFFSET 4
    154 #define TC_U32_EAT 8
    155 #define TC_U32_MAXDEPTH 8
    156 enum {
    157   TCA_RSVP_UNSPEC,
    158   TCA_RSVP_CLASSID,
    159   TCA_RSVP_DST,
    160   TCA_RSVP_SRC,
    161   TCA_RSVP_PINFO,
    162   TCA_RSVP_POLICE,
    163   TCA_RSVP_ACT,
    164   __TCA_RSVP_MAX
    165 };
    166 #define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1)
    167 struct tc_rsvp_gpi {
    168   __u32 key;
    169   __u32 mask;
    170   int offset;
    171 };
    172 struct tc_rsvp_pinfo {
    173   struct tc_rsvp_gpi dpi;
    174   struct tc_rsvp_gpi spi;
    175   __u8 protocol;
    176   __u8 tunnelid;
    177   __u8 tunnelhdr;
    178   __u8 pad;
    179 };
    180 enum {
    181   TCA_ROUTE4_UNSPEC,
    182   TCA_ROUTE4_CLASSID,
    183   TCA_ROUTE4_TO,
    184   TCA_ROUTE4_FROM,
    185   TCA_ROUTE4_IIF,
    186   TCA_ROUTE4_POLICE,
    187   TCA_ROUTE4_ACT,
    188   __TCA_ROUTE4_MAX
    189 };
    190 #define TCA_ROUTE4_MAX (__TCA_ROUTE4_MAX - 1)
    191 enum {
    192   TCA_FW_UNSPEC,
    193   TCA_FW_CLASSID,
    194   TCA_FW_POLICE,
    195   TCA_FW_INDEV,
    196   TCA_FW_ACT,
    197   TCA_FW_MASK,
    198   __TCA_FW_MAX
    199 };
    200 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
    201 enum {
    202   TCA_TCINDEX_UNSPEC,
    203   TCA_TCINDEX_HASH,
    204   TCA_TCINDEX_MASK,
    205   TCA_TCINDEX_SHIFT,
    206   TCA_TCINDEX_FALL_THROUGH,
    207   TCA_TCINDEX_CLASSID,
    208   TCA_TCINDEX_POLICE,
    209   TCA_TCINDEX_ACT,
    210   __TCA_TCINDEX_MAX
    211 };
    212 #define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
    213 enum {
    214   FLOW_KEY_SRC,
    215   FLOW_KEY_DST,
    216   FLOW_KEY_PROTO,
    217   FLOW_KEY_PROTO_SRC,
    218   FLOW_KEY_PROTO_DST,
    219   FLOW_KEY_IIF,
    220   FLOW_KEY_PRIORITY,
    221   FLOW_KEY_MARK,
    222   FLOW_KEY_NFCT,
    223   FLOW_KEY_NFCT_SRC,
    224   FLOW_KEY_NFCT_DST,
    225   FLOW_KEY_NFCT_PROTO_SRC,
    226   FLOW_KEY_NFCT_PROTO_DST,
    227   FLOW_KEY_RTCLASSID,
    228   FLOW_KEY_SKUID,
    229   FLOW_KEY_SKGID,
    230   FLOW_KEY_VLAN_TAG,
    231   FLOW_KEY_RXHASH,
    232   __FLOW_KEY_MAX,
    233 };
    234 #define FLOW_KEY_MAX (__FLOW_KEY_MAX - 1)
    235 enum {
    236   FLOW_MODE_MAP,
    237   FLOW_MODE_HASH,
    238 };
    239 enum {
    240   TCA_FLOW_UNSPEC,
    241   TCA_FLOW_KEYS,
    242   TCA_FLOW_MODE,
    243   TCA_FLOW_BASECLASS,
    244   TCA_FLOW_RSHIFT,
    245   TCA_FLOW_ADDEND,
    246   TCA_FLOW_MASK,
    247   TCA_FLOW_XOR,
    248   TCA_FLOW_DIVISOR,
    249   TCA_FLOW_ACT,
    250   TCA_FLOW_POLICE,
    251   TCA_FLOW_EMATCHES,
    252   TCA_FLOW_PERTURB,
    253   __TCA_FLOW_MAX
    254 };
    255 #define TCA_FLOW_MAX (__TCA_FLOW_MAX - 1)
    256 enum {
    257   TCA_BASIC_UNSPEC,
    258   TCA_BASIC_CLASSID,
    259   TCA_BASIC_EMATCHES,
    260   TCA_BASIC_ACT,
    261   TCA_BASIC_POLICE,
    262   __TCA_BASIC_MAX
    263 };
    264 #define TCA_BASIC_MAX (__TCA_BASIC_MAX - 1)
    265 enum {
    266   TCA_CGROUP_UNSPEC,
    267   TCA_CGROUP_ACT,
    268   TCA_CGROUP_POLICE,
    269   TCA_CGROUP_EMATCHES,
    270   __TCA_CGROUP_MAX,
    271 };
    272 #define TCA_CGROUP_MAX (__TCA_CGROUP_MAX - 1)
    273 #define TCA_BPF_FLAG_ACT_DIRECT (1 << 0)
    274 enum {
    275   TCA_BPF_UNSPEC,
    276   TCA_BPF_ACT,
    277   TCA_BPF_POLICE,
    278   TCA_BPF_CLASSID,
    279   TCA_BPF_OPS_LEN,
    280   TCA_BPF_OPS,
    281   TCA_BPF_FD,
    282   TCA_BPF_NAME,
    283   TCA_BPF_FLAGS,
    284   TCA_BPF_FLAGS_GEN,
    285   TCA_BPF_TAG,
    286   __TCA_BPF_MAX,
    287 };
    288 #define TCA_BPF_MAX (__TCA_BPF_MAX - 1)
    289 enum {
    290   TCA_FLOWER_UNSPEC,
    291   TCA_FLOWER_CLASSID,
    292   TCA_FLOWER_INDEV,
    293   TCA_FLOWER_ACT,
    294   TCA_FLOWER_KEY_ETH_DST,
    295   TCA_FLOWER_KEY_ETH_DST_MASK,
    296   TCA_FLOWER_KEY_ETH_SRC,
    297   TCA_FLOWER_KEY_ETH_SRC_MASK,
    298   TCA_FLOWER_KEY_ETH_TYPE,
    299   TCA_FLOWER_KEY_IP_PROTO,
    300   TCA_FLOWER_KEY_IPV4_SRC,
    301   TCA_FLOWER_KEY_IPV4_SRC_MASK,
    302   TCA_FLOWER_KEY_IPV4_DST,
    303   TCA_FLOWER_KEY_IPV4_DST_MASK,
    304   TCA_FLOWER_KEY_IPV6_SRC,
    305   TCA_FLOWER_KEY_IPV6_SRC_MASK,
    306   TCA_FLOWER_KEY_IPV6_DST,
    307   TCA_FLOWER_KEY_IPV6_DST_MASK,
    308   TCA_FLOWER_KEY_TCP_SRC,
    309   TCA_FLOWER_KEY_TCP_DST,
    310   TCA_FLOWER_KEY_UDP_SRC,
    311   TCA_FLOWER_KEY_UDP_DST,
    312   TCA_FLOWER_FLAGS,
    313   TCA_FLOWER_KEY_VLAN_ID,
    314   TCA_FLOWER_KEY_VLAN_PRIO,
    315   TCA_FLOWER_KEY_VLAN_ETH_TYPE,
    316   TCA_FLOWER_KEY_ENC_KEY_ID,
    317   TCA_FLOWER_KEY_ENC_IPV4_SRC,
    318   TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK,
    319   TCA_FLOWER_KEY_ENC_IPV4_DST,
    320   TCA_FLOWER_KEY_ENC_IPV4_DST_MASK,
    321   TCA_FLOWER_KEY_ENC_IPV6_SRC,
    322   TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK,
    323   TCA_FLOWER_KEY_ENC_IPV6_DST,
    324   TCA_FLOWER_KEY_ENC_IPV6_DST_MASK,
    325   TCA_FLOWER_KEY_TCP_SRC_MASK,
    326   TCA_FLOWER_KEY_TCP_DST_MASK,
    327   TCA_FLOWER_KEY_UDP_SRC_MASK,
    328   TCA_FLOWER_KEY_UDP_DST_MASK,
    329   TCA_FLOWER_KEY_SCTP_SRC_MASK,
    330   TCA_FLOWER_KEY_SCTP_DST_MASK,
    331   TCA_FLOWER_KEY_SCTP_SRC,
    332   TCA_FLOWER_KEY_SCTP_DST,
    333   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT,
    334   TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK,
    335   TCA_FLOWER_KEY_ENC_UDP_DST_PORT,
    336   TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK,
    337   TCA_FLOWER_KEY_FLAGS,
    338   TCA_FLOWER_KEY_FLAGS_MASK,
    339   TCA_FLOWER_KEY_ICMPV4_CODE,
    340   TCA_FLOWER_KEY_ICMPV4_CODE_MASK,
    341   TCA_FLOWER_KEY_ICMPV4_TYPE,
    342   TCA_FLOWER_KEY_ICMPV4_TYPE_MASK,
    343   TCA_FLOWER_KEY_ICMPV6_CODE,
    344   TCA_FLOWER_KEY_ICMPV6_CODE_MASK,
    345   TCA_FLOWER_KEY_ICMPV6_TYPE,
    346   TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,
    347   __TCA_FLOWER_MAX,
    348 };
    349 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
    350 enum {
    351   TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
    352 };
    353 enum {
    354   TCA_MATCHALL_UNSPEC,
    355   TCA_MATCHALL_CLASSID,
    356   TCA_MATCHALL_ACT,
    357   TCA_MATCHALL_FLAGS,
    358   __TCA_MATCHALL_MAX,
    359 };
    360 #define TCA_MATCHALL_MAX (__TCA_MATCHALL_MAX - 1)
    361 struct tcf_ematch_tree_hdr {
    362   __u16 nmatches;
    363   __u16 progid;
    364 };
    365 enum {
    366   TCA_EMATCH_TREE_UNSPEC,
    367   TCA_EMATCH_TREE_HDR,
    368   TCA_EMATCH_TREE_LIST,
    369   __TCA_EMATCH_TREE_MAX
    370 };
    371 #define TCA_EMATCH_TREE_MAX (__TCA_EMATCH_TREE_MAX - 1)
    372 struct tcf_ematch_hdr {
    373   __u16 matchid;
    374   __u16 kind;
    375   __u16 flags;
    376   __u16 pad;
    377 };
    378 #define TCF_EM_REL_END 0
    379 #define TCF_EM_REL_AND (1 << 0)
    380 #define TCF_EM_REL_OR (1 << 1)
    381 #define TCF_EM_INVERT (1 << 2)
    382 #define TCF_EM_SIMPLE (1 << 3)
    383 #define TCF_EM_REL_MASK 3
    384 #define TCF_EM_REL_VALID(v) (((v) & TCF_EM_REL_MASK) != TCF_EM_REL_MASK)
    385 enum {
    386   TCF_LAYER_LINK,
    387   TCF_LAYER_NETWORK,
    388   TCF_LAYER_TRANSPORT,
    389   __TCF_LAYER_MAX
    390 };
    391 #define TCF_LAYER_MAX (__TCF_LAYER_MAX - 1)
    392 #define TCF_EM_CONTAINER 0
    393 #define TCF_EM_CMP 1
    394 #define TCF_EM_NBYTE 2
    395 #define TCF_EM_U32 3
    396 #define TCF_EM_META 4
    397 #define TCF_EM_TEXT 5
    398 #define TCF_EM_VLAN 6
    399 #define TCF_EM_CANID 7
    400 #define TCF_EM_IPSET 8
    401 #define TCF_EM_MAX 8
    402 enum {
    403   TCF_EM_PROG_TC
    404 };
    405 enum {
    406   TCF_EM_OPND_EQ,
    407   TCF_EM_OPND_GT,
    408   TCF_EM_OPND_LT
    409 };
    410 #endif
    411