mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-04 14:56:48 +07:00
bc1fc390e1
This patch allows configuring IPIP, sit, and GRE tunnels to use GUE. This is very similar to fou excpet that we need to insert the GUE header in addition to the UDP header on transmit. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
134 lines
2.8 KiB
C
134 lines
2.8 KiB
C
#ifndef _UAPI_IF_TUNNEL_H_
|
|
#define _UAPI_IF_TUNNEL_H_
|
|
|
|
#include <linux/types.h>
|
|
#include <asm/byteorder.h>
|
|
|
|
|
|
#define SIOCGETTUNNEL (SIOCDEVPRIVATE + 0)
|
|
#define SIOCADDTUNNEL (SIOCDEVPRIVATE + 1)
|
|
#define SIOCDELTUNNEL (SIOCDEVPRIVATE + 2)
|
|
#define SIOCCHGTUNNEL (SIOCDEVPRIVATE + 3)
|
|
#define SIOCGETPRL (SIOCDEVPRIVATE + 4)
|
|
#define SIOCADDPRL (SIOCDEVPRIVATE + 5)
|
|
#define SIOCDELPRL (SIOCDEVPRIVATE + 6)
|
|
#define SIOCCHGPRL (SIOCDEVPRIVATE + 7)
|
|
#define SIOCGET6RD (SIOCDEVPRIVATE + 8)
|
|
#define SIOCADD6RD (SIOCDEVPRIVATE + 9)
|
|
#define SIOCDEL6RD (SIOCDEVPRIVATE + 10)
|
|
#define SIOCCHG6RD (SIOCDEVPRIVATE + 11)
|
|
|
|
#define GRE_CSUM __cpu_to_be16(0x8000)
|
|
#define GRE_ROUTING __cpu_to_be16(0x4000)
|
|
#define GRE_KEY __cpu_to_be16(0x2000)
|
|
#define GRE_SEQ __cpu_to_be16(0x1000)
|
|
#define GRE_STRICT __cpu_to_be16(0x0800)
|
|
#define GRE_REC __cpu_to_be16(0x0700)
|
|
#define GRE_FLAGS __cpu_to_be16(0x00F8)
|
|
#define GRE_VERSION __cpu_to_be16(0x0007)
|
|
|
|
struct ip_tunnel_parm {
|
|
char name[IFNAMSIZ];
|
|
int link;
|
|
__be16 i_flags;
|
|
__be16 o_flags;
|
|
__be32 i_key;
|
|
__be32 o_key;
|
|
struct iphdr iph;
|
|
};
|
|
|
|
enum {
|
|
IFLA_IPTUN_UNSPEC,
|
|
IFLA_IPTUN_LINK,
|
|
IFLA_IPTUN_LOCAL,
|
|
IFLA_IPTUN_REMOTE,
|
|
IFLA_IPTUN_TTL,
|
|
IFLA_IPTUN_TOS,
|
|
IFLA_IPTUN_ENCAP_LIMIT,
|
|
IFLA_IPTUN_FLOWINFO,
|
|
IFLA_IPTUN_FLAGS,
|
|
IFLA_IPTUN_PROTO,
|
|
IFLA_IPTUN_PMTUDISC,
|
|
IFLA_IPTUN_6RD_PREFIX,
|
|
IFLA_IPTUN_6RD_RELAY_PREFIX,
|
|
IFLA_IPTUN_6RD_PREFIXLEN,
|
|
IFLA_IPTUN_6RD_RELAY_PREFIXLEN,
|
|
IFLA_IPTUN_ENCAP_TYPE,
|
|
IFLA_IPTUN_ENCAP_FLAGS,
|
|
IFLA_IPTUN_ENCAP_SPORT,
|
|
IFLA_IPTUN_ENCAP_DPORT,
|
|
__IFLA_IPTUN_MAX,
|
|
};
|
|
#define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
|
|
|
|
enum tunnel_encap_types {
|
|
TUNNEL_ENCAP_NONE,
|
|
TUNNEL_ENCAP_FOU,
|
|
TUNNEL_ENCAP_GUE,
|
|
};
|
|
|
|
#define TUNNEL_ENCAP_FLAG_CSUM (1<<0)
|
|
#define TUNNEL_ENCAP_FLAG_CSUM6 (1<<1)
|
|
|
|
/* SIT-mode i_flags */
|
|
#define SIT_ISATAP 0x0001
|
|
|
|
struct ip_tunnel_prl {
|
|
__be32 addr;
|
|
__u16 flags;
|
|
__u16 __reserved;
|
|
__u32 datalen;
|
|
__u32 __reserved2;
|
|
/* data follows */
|
|
};
|
|
|
|
/* PRL flags */
|
|
#define PRL_DEFAULT 0x0001
|
|
|
|
struct ip_tunnel_6rd {
|
|
struct in6_addr prefix;
|
|
__be32 relay_prefix;
|
|
__u16 prefixlen;
|
|
__u16 relay_prefixlen;
|
|
};
|
|
|
|
enum {
|
|
IFLA_GRE_UNSPEC,
|
|
IFLA_GRE_LINK,
|
|
IFLA_GRE_IFLAGS,
|
|
IFLA_GRE_OFLAGS,
|
|
IFLA_GRE_IKEY,
|
|
IFLA_GRE_OKEY,
|
|
IFLA_GRE_LOCAL,
|
|
IFLA_GRE_REMOTE,
|
|
IFLA_GRE_TTL,
|
|
IFLA_GRE_TOS,
|
|
IFLA_GRE_PMTUDISC,
|
|
IFLA_GRE_ENCAP_LIMIT,
|
|
IFLA_GRE_FLOWINFO,
|
|
IFLA_GRE_FLAGS,
|
|
IFLA_GRE_ENCAP_TYPE,
|
|
IFLA_GRE_ENCAP_FLAGS,
|
|
IFLA_GRE_ENCAP_SPORT,
|
|
IFLA_GRE_ENCAP_DPORT,
|
|
__IFLA_GRE_MAX,
|
|
};
|
|
|
|
#define IFLA_GRE_MAX (__IFLA_GRE_MAX - 1)
|
|
|
|
/* VTI-mode i_flags */
|
|
#define VTI_ISVTI ((__force __be16)0x0001)
|
|
|
|
enum {
|
|
IFLA_VTI_UNSPEC,
|
|
IFLA_VTI_LINK,
|
|
IFLA_VTI_IKEY,
|
|
IFLA_VTI_OKEY,
|
|
IFLA_VTI_LOCAL,
|
|
IFLA_VTI_REMOTE,
|
|
__IFLA_VTI_MAX,
|
|
};
|
|
|
|
#define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1)
|
|
#endif /* _UAPI_IF_TUNNEL_H_ */
|