summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNobuhiro MIKI <nmiki@yahoo-corp.jp>2023-03-29 14:51:17 +0900
committerIlya Maximets <i.maximets@ovn.org>2023-03-29 22:16:04 +0200
commit03fc1ad78521544c7269355ec72fec8c2373b96d (patch)
treef2e4ce3a254351440ed24c1dd3bf8ef408e0ea01 /include
parent349112f975ed3a9876d7bde92ba0622d2384f0c4 (diff)
downloadopenvswitch-03fc1ad78521544c7269355ec72fec8c2373b96d.tar.gz
userspace: Add SRv6 tunnel support.
SRv6 (Segment Routing IPv6) tunnel vport is responsible for encapsulation and decapsulation the inner packets with IPv6 header and an extended header called SRH (Segment Routing Header). See spec in: https://datatracker.ietf.org/doc/html/rfc8754 This patch implements SRv6 tunneling in userspace datapath. It uses `remote_ip` and `local_ip` options as with existing tunnel protocols. It also adds a dedicated `srv6_segs` option to define a sequence of routers called segment list. Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/openvswitch.h1
-rw-r--r--include/sparse/netinet/in.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h
index bc8f74991..e305c3315 100644
--- a/include/linux/openvswitch.h
+++ b/include/linux/openvswitch.h
@@ -254,6 +254,7 @@ enum ovs_vport_type {
OVS_VPORT_TYPE_IP6GRE = 109,
OVS_VPORT_TYPE_GTPU = 110,
OVS_VPORT_TYPE_BAREUDP = 111, /* Bareudp tunnel. */
+ OVS_VPORT_TYPE_SRV6 = 112, /* SRv6 tunnel. */
__OVS_VPORT_TYPE_MAX
};
diff --git a/include/sparse/netinet/in.h b/include/sparse/netinet/in.h
index 21deceb28..009272816 100644
--- a/include/sparse/netinet/in.h
+++ b/include/sparse/netinet/in.h
@@ -68,6 +68,7 @@ struct sockaddr_in6 {
#define IPPROTO_HOPOPTS 0
#define IPPROTO_ICMP 1
#define IPPROTO_IGMP 2
+#define IPPROTO_IPIP 4
#define IPPROTO_TCP 6
#define IPPROTO_UDP 17
#define IPPROTO_ROUTING 43