linux-headers (unknown)

(root)/
include/
linux/
tc_act/
tc_tunnel_key.h
       1  /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
       2  /*
       3   * Copyright (c) 2016, Amir Vadai <amir@vadai.me>
       4   * Copyright (c) 2016, Mellanox Technologies. All rights reserved.
       5   */
       6  
       7  #ifndef __LINUX_TC_TUNNEL_KEY_H
       8  #define __LINUX_TC_TUNNEL_KEY_H
       9  
      10  #include <linux/pkt_cls.h>
      11  
      12  #define TCA_TUNNEL_KEY_ACT_SET	    1
      13  #define TCA_TUNNEL_KEY_ACT_RELEASE  2
      14  
      15  struct tc_tunnel_key {
      16  	tc_gen;
      17  	int t_action;
      18  };
      19  
      20  enum {
      21  	TCA_TUNNEL_KEY_UNSPEC,
      22  	TCA_TUNNEL_KEY_TM,
      23  	TCA_TUNNEL_KEY_PARMS,
      24  	TCA_TUNNEL_KEY_ENC_IPV4_SRC,	/* be32 */
      25  	TCA_TUNNEL_KEY_ENC_IPV4_DST,	/* be32 */
      26  	TCA_TUNNEL_KEY_ENC_IPV6_SRC,	/* struct in6_addr */
      27  	TCA_TUNNEL_KEY_ENC_IPV6_DST,	/* struct in6_addr */
      28  	TCA_TUNNEL_KEY_ENC_KEY_ID,	/* be64 */
      29  	TCA_TUNNEL_KEY_PAD,
      30  	TCA_TUNNEL_KEY_ENC_DST_PORT,	/* be16 */
      31  	TCA_TUNNEL_KEY_NO_CSUM,		/* u8 */
      32  	TCA_TUNNEL_KEY_ENC_OPTS,	/* Nested TCA_TUNNEL_KEY_ENC_OPTS_
      33  					 * attributes
      34  					 */
      35  	TCA_TUNNEL_KEY_ENC_TOS,		/* u8 */
      36  	TCA_TUNNEL_KEY_ENC_TTL,		/* u8 */
      37  	TCA_TUNNEL_KEY_NO_FRAG,		/* flag */
      38  	__TCA_TUNNEL_KEY_MAX,
      39  };
      40  
      41  #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
      42  
      43  enum {
      44  	TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
      45  	TCA_TUNNEL_KEY_ENC_OPTS_GENEVE,		/* Nested
      46  						 * TCA_TUNNEL_KEY_ENC_OPTS_
      47  						 * attributes
      48  						 */
      49  	TCA_TUNNEL_KEY_ENC_OPTS_VXLAN,		/* Nested
      50  						 * TCA_TUNNEL_KEY_ENC_OPTS_
      51  						 * attributes
      52  						 */
      53  	TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN,		/* Nested
      54  						 * TCA_TUNNEL_KEY_ENC_OPTS_
      55  						 * attributes
      56  						 */
      57  	__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
      58  };
      59  
      60  #define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
      61  
      62  enum {
      63  	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
      64  	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS,		/* be16 */
      65  	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE,		/* u8 */
      66  	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA,		/* 4 to 128 bytes */
      67  
      68  	__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
      69  };
      70  
      71  #define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
      72  	(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
      73  
      74  enum {
      75  	TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
      76  	TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP,		/* u32 */
      77  	__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
      78  };
      79  
      80  #define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
      81  	(__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
      82  
      83  enum {
      84  	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
      85  	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER,		/* u8 */
      86  	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX,		/* be32 */
      87  	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR,		/* u8 */
      88  	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID,		/* u8 */
      89  	__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
      90  };
      91  
      92  #define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
      93  	(__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
      94  
      95  #endif