diff options
Diffstat (limited to 'include/linux/tc_ematch')
-rw-r--r-- | include/linux/tc_ematch/tc_em_cmp.h | 26 | ||||
-rw-r--r-- | include/linux/tc_ematch/tc_em_meta.h | 69 | ||||
-rw-r--r-- | include/linux/tc_ematch/tc_em_nbyte.h | 13 |
3 files changed, 108 insertions, 0 deletions
diff --git a/include/linux/tc_ematch/tc_em_cmp.h b/include/linux/tc_ematch/tc_em_cmp.h new file mode 100644 index 000000000000..c7f4d43618fd --- /dev/null +++ b/include/linux/tc_ematch/tc_em_cmp.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef __LINUX_TC_EM_CMP_H | ||
2 | #define __LINUX_TC_EM_CMP_H | ||
3 | |||
4 | #include <linux/pkt_cls.h> | ||
5 | |||
6 | struct tcf_em_cmp | ||
7 | { | ||
8 | __u32 val; | ||
9 | __u32 mask; | ||
10 | __u16 off; | ||
11 | __u8 align:4; | ||
12 | __u8 flags:4; | ||
13 | __u8 layer:4; | ||
14 | __u8 opnd:4; | ||
15 | }; | ||
16 | |||
17 | enum | ||
18 | { | ||
19 | TCF_EM_ALIGN_U8 = 1, | ||
20 | TCF_EM_ALIGN_U16 = 2, | ||
21 | TCF_EM_ALIGN_U32 = 4 | ||
22 | }; | ||
23 | |||
24 | #define TCF_EM_CMP_TRANS 1 | ||
25 | |||
26 | #endif | ||
diff --git a/include/linux/tc_ematch/tc_em_meta.h b/include/linux/tc_ematch/tc_em_meta.h new file mode 100644 index 000000000000..aa6b48bb4dcd --- /dev/null +++ b/include/linux/tc_ematch/tc_em_meta.h | |||
@@ -0,0 +1,69 @@ | |||
1 | #ifndef __LINUX_TC_EM_META_H | ||
2 | #define __LINUX_TC_EM_META_H | ||
3 | |||
4 | #include <linux/pkt_cls.h> | ||
5 | |||
6 | enum | ||
7 | { | ||
8 | TCA_EM_META_UNSPEC, | ||
9 | TCA_EM_META_HDR, | ||
10 | TCA_EM_META_LVALUE, | ||
11 | TCA_EM_META_RVALUE, | ||
12 | __TCA_EM_META_MAX | ||
13 | }; | ||
14 | #define TCA_EM_META_MAX (__TCA_EM_META_MAX - 1) | ||
15 | |||
16 | struct tcf_meta_val | ||
17 | { | ||
18 | __u16 kind; | ||
19 | __u8 shift; | ||
20 | __u8 op; | ||
21 | }; | ||
22 | |||
23 | #define TCF_META_TYPE_MASK (0xf << 12) | ||
24 | #define TCF_META_TYPE(kind) (((kind) & TCF_META_TYPE_MASK) >> 12) | ||
25 | #define TCF_META_ID_MASK 0x7ff | ||
26 | #define TCF_META_ID(kind) ((kind) & TCF_META_ID_MASK) | ||
27 | |||
28 | enum | ||
29 | { | ||
30 | TCF_META_TYPE_VAR, | ||
31 | TCF_META_TYPE_INT, | ||
32 | __TCF_META_TYPE_MAX | ||
33 | }; | ||
34 | #define TCF_META_TYPE_MAX (__TCF_META_TYPE_MAX - 1) | ||
35 | |||
36 | enum | ||
37 | { | ||
38 | TCF_META_ID_VALUE, | ||
39 | TCF_META_ID_RANDOM, | ||
40 | TCF_META_ID_LOADAVG_0, | ||
41 | TCF_META_ID_LOADAVG_1, | ||
42 | TCF_META_ID_LOADAVG_2, | ||
43 | TCF_META_ID_DEV, | ||
44 | TCF_META_ID_INDEV, | ||
45 | TCF_META_ID_REALDEV, | ||
46 | TCF_META_ID_PRIORITY, | ||
47 | TCF_META_ID_PROTOCOL, | ||
48 | TCF_META_ID_SECURITY, | ||
49 | TCF_META_ID_PKTTYPE, | ||
50 | TCF_META_ID_PKTLEN, | ||
51 | TCF_META_ID_DATALEN, | ||
52 | TCF_META_ID_MACLEN, | ||
53 | TCF_META_ID_NFMARK, | ||
54 | TCF_META_ID_TCINDEX, | ||
55 | TCF_META_ID_TCVERDICT, | ||
56 | TCF_META_ID_TCCLASSID, | ||
57 | TCF_META_ID_RTCLASSID, | ||
58 | TCF_META_ID_RTIIF, | ||
59 | __TCF_META_ID_MAX | ||
60 | }; | ||
61 | #define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1) | ||
62 | |||
63 | struct tcf_meta_hdr | ||
64 | { | ||
65 | struct tcf_meta_val left; | ||
66 | struct tcf_meta_val right; | ||
67 | }; | ||
68 | |||
69 | #endif | ||
diff --git a/include/linux/tc_ematch/tc_em_nbyte.h b/include/linux/tc_ematch/tc_em_nbyte.h new file mode 100644 index 000000000000..f19d1f58ec9d --- /dev/null +++ b/include/linux/tc_ematch/tc_em_nbyte.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __LINUX_TC_EM_NBYTE_H | ||
2 | #define __LINUX_TC_EM_NBYTE_H | ||
3 | |||
4 | #include <linux/pkt_cls.h> | ||
5 | |||
6 | struct tcf_em_nbyte | ||
7 | { | ||
8 | __u16 off; | ||
9 | __u16 len:12; | ||
10 | __u8 layer:4; | ||
11 | }; | ||
12 | |||
13 | #endif | ||