zig

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

tc_tunnel_key.h (2477B) - Raw


      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