zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

tc_pedit.h (1545B) - Raw


      1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2 #ifndef __LINUX_TC_PED_H
      3 #define __LINUX_TC_PED_H
      4 
      5 #include <linux/types.h>
      6 #include <linux/pkt_cls.h>
      7 
      8 enum {
      9 	TCA_PEDIT_UNSPEC,
     10 	TCA_PEDIT_TM,
     11 	TCA_PEDIT_PARMS,
     12 	TCA_PEDIT_PAD,
     13 	TCA_PEDIT_PARMS_EX,
     14 	TCA_PEDIT_KEYS_EX,
     15 	TCA_PEDIT_KEY_EX,
     16 	__TCA_PEDIT_MAX
     17 };
     18 
     19 #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
     20 
     21 enum {
     22 	TCA_PEDIT_KEY_EX_HTYPE = 1,
     23 	TCA_PEDIT_KEY_EX_CMD = 2,
     24 	__TCA_PEDIT_KEY_EX_MAX
     25 };
     26 
     27 #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
     28 
     29  /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
     30   * means no specific header type - offset is relative to the network layer
     31   */
     32 enum pedit_header_type {
     33 	TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
     34 	TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
     35 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
     36 	TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
     37 	TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
     38 	TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
     39 	__PEDIT_HDR_TYPE_MAX,
     40 };
     41 
     42 #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
     43 
     44 enum pedit_cmd {
     45 	TCA_PEDIT_KEY_EX_CMD_SET = 0,
     46 	TCA_PEDIT_KEY_EX_CMD_ADD = 1,
     47 	__PEDIT_CMD_MAX,
     48 };
     49 
     50 #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
     51 
     52 struct tc_pedit_key {
     53 	__u32           mask;  /* AND */
     54 	__u32           val;   /*XOR */
     55 	__u32           off;  /*offset */
     56 	__u32           at;
     57 	__u32           offmask;
     58 	__u32           shift;
     59 };
     60 
     61 struct tc_pedit_sel {
     62 	tc_gen;
     63 	unsigned char           nkeys;
     64 	unsigned char           flags;
     65 	struct tc_pedit_key     keys[] __counted_by(nkeys);
     66 };
     67 
     68 #define tc_pedit tc_pedit_sel
     69 
     70 #endif