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