summaryrefslogtreecommitdiff
path: root/ofproto
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 /ofproto
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 'ofproto')
-rw-r--r--ofproto/ofproto-dpif-xlate.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c
index a9cf3cbee..dee4c7d63 100644
--- a/ofproto/ofproto-dpif-xlate.c
+++ b/ofproto/ofproto-dpif-xlate.c
@@ -3632,6 +3632,10 @@ propagate_tunnel_data_to_flow(struct xlate_ctx *ctx, struct eth_addr dmac,
case OVS_VPORT_TYPE_BAREUDP:
nw_proto = IPPROTO_UDP;
break;
+ case OVS_VPORT_TYPE_SRV6:
+ nw_proto = (flow->dl_type == htons(ETH_TYPE_IP))
+ ? IPPROTO_IPIP : IPPROTO_IPV6;
+ break;
case OVS_VPORT_TYPE_LISP:
case OVS_VPORT_TYPE_STT:
case OVS_VPORT_TYPE_UNSPEC: