1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef __LINUX_TC_PED_H
7 #define __LINUX_TC_PED_H
8 #include <linux/types.h>
9 #include <linux/pkt_cls.h>
10 #define TCA_ACT_PEDIT 7
11 enum {
12 	TCA_PEDIT_UNSPEC,
13 	TCA_PEDIT_TM,
14 	TCA_PEDIT_PARMS,
15 	TCA_PEDIT_PAD,
16 	TCA_PEDIT_PARMS_EX,
17 	TCA_PEDIT_KEYS_EX,
18 	TCA_PEDIT_KEY_EX,
19 	__TCA_PEDIT_MAX
20 };
21 #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
22 enum {
23 	TCA_PEDIT_KEY_EX_HTYPE = 1,
24 	TCA_PEDIT_KEY_EX_CMD = 2,
25 	__TCA_PEDIT_KEY_EX_MAX
26 };
27 #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
28 
29 enum pedit_header_type {
30 	TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
31 	TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
32 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
33 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
34 	TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
35 	TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
36 	__PEDIT_HDR_TYPE_MAX,
37 };
38 #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
39 enum pedit_cmd {
40 	TCA_PEDIT_KEY_EX_CMD_SET = 0,
41 	TCA_PEDIT_KEY_EX_CMD_ADD = 1,
42 	__PEDIT_CMD_MAX,
43 };
44 #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
45 struct tc_pedit_key {
46 	__u32           mask;
47 	__u32           val;
48 	__u32           off;
49 	__u32           at;
50 	__u32           offmask;
51 	__u32           shift;
52 };
53 struct tc_pedit_sel {
54 	tc_gen;
55 	unsigned char           nkeys;
56 	unsigned char           flags;
57 	struct tc_pedit_key     keys[0];
58 };
59 #define tc_pedit tc_pedit_sel
60 #endif
61