root/include/uapi/linux/tc_act/tc_pedit.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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[0];
  66 };
  67 
  68 #define tc_pedit tc_pedit_sel
  69 
  70 #endif

/* [<][>][^][v][top][bottom][index][help] */