diff options
author | Martin Varghese <martin.varghese@nokia.com> | 2020-12-17 12:48:41 +0530 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2020-12-22 12:51:22 +0100 |
commit | ebe0e518b0489aafbe385ba90133f6bacba33353 (patch) | |
tree | 73972f43dc33161d91cb93684f153da5919b0290 /vswitchd | |
parent | 55f2b065acd477a6810d5279fcace8b42bd594f5 (diff) | |
download | openvswitch-ebe0e518b0489aafbe385ba90133f6bacba33353.tar.gz |
tunnel: Bareudp Tunnel Support.
There are various L3 encapsulation standards using UDP being discussed to
leverage the UDP based load balancing capability of different networks.
MPLSoUDP (__ https://tools.ietf.org/html/rfc7510) is one among them.
The Bareudp tunnel provides a generic L3 encapsulation support for
tunnelling different L3 protocols like MPLS, IP, NSH etc. inside a UDP
tunnel.
An example to create bareudp device to tunnel MPLS traffic is
given
$ ovs-vsctl add-port br_mpls udp_port -- set interface udp_port \
type=bareudp options:remote_ip=2.1.1.3
options:local_ip=2.1.1.2 \
options:payload_type=0x8847 options:dst_port=6635
The bareudp device supports special handling for MPLS & IP as
they can have multiple ethertypes. MPLS procotcol can have ethertypes
ETH_P_MPLS_UC (unicast) & ETH_P_MPLS_MC (multicast). IP protocol can have
ethertypes ETH_P_IP (v4) & ETH_P_IPV6 (v6).
The bareudp device to tunnel L3 traffic with multiple ethertypes
(MPLS & IP) can be created by passing the L3 protocol name as string in
the field payload_type. An example to create bareudp device to tunnel
MPLS unicast & multicast traffic is given below.::
$ ovs-vsctl add-port br_mpls udp_port -- set interface
udp_port \
type=bareudp options:remote_ip=2.1.1.3
options:local_ip=2.1.1.2 \
options:payload_type=mpls options:dst_port=6635
Signed-off-by: Martin Varghese <martin.varghese@nokia.com>
Acked-By: Greg Rose <gvrose8192@gmail.com>
Tested-by: Greg Rose <gvrose8192@gmail.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'vswitchd')
-rw-r--r-- | vswitchd/vswitch.xml | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index 89a876796..fee54b0fa 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -2694,6 +2694,15 @@ </p> </dd> + <dt><code>Bareudp</code></dt> + <dd> + <p> + The Bareudp tunnel provides a generic L3 encapsulation support for + tunnelling different L3 protocols like MPLS, IP, NSH etc. inside a + UDP tunnel. + </p> + </dd> + </dl> </column> </group> @@ -2701,8 +2710,9 @@ <group title="Tunnel Options"> <p> These options apply to interfaces with <ref column="type"/> of - <code>geneve</code>, <code>gre</code>, <code>ip6gre</code>, - <code>vxlan</code>, <code>lisp</code> and <code>stt</code>. + <code>geneve</code>, <code>bareudp</code>, <code>gre</code>, + <code>ip6gre</code>, <code>vxlan</code>, <code>lisp</code> and + <code>stt</code>. </p> <p> @@ -2714,6 +2724,8 @@ one is matched first. <ref column="options" key="in_key"/> is considered more specific than <ref column="options" key="local_ip"/> if a port defines one and another port defines the other. + <ref column="options" key="in_key"/> is not applicable for bareudp + tunnels. Hence it is not considered while identifying a bareudp tunnel. </p> <column name="options" key="remote_ip"> @@ -2780,7 +2792,10 @@ </column> <column name="options" key="in_key"> - <p>Optional. The key that received packets must contain, one of:</p> + <p> + Optional, not applicable for <code>bareudp</code>. The key that + received packets must contain, one of: + </p> <ul> <li> @@ -2807,7 +2822,10 @@ </column> <column name="options" key="out_key"> - <p>Optional. The key to be set on outgoing packets, one of:</p> + <p> + Optional, not applicable for <code>bareudp</code>. The key to be set + on outgoing packets, one of: + </p> <ul> <li> @@ -2999,10 +3017,11 @@ </column> </group> - <group title="Tunnel Options: gre, ip6gre, geneve, and vxlan"> + <group title="Tunnel Options: gre, ip6gre, geneve, bareudp and vxlan"> <p> <code>gre</code>, <code>ip6gre</code>, <code>geneve</code>, - and <code>vxlan</code> interfaces support these options. + <code>bareudp</code> and <code>vxlan</code> interfaces support these + options. </p> <column name="options" key="csum" type='{"type": "boolean"}'> @@ -3092,6 +3111,17 @@ </column> </group> + <group title="Tunnel Options: Bareudp only"> + <column name="options" key="payload_type"> + <p> + Specifies the ethertype of the l3 protocol the bareudp + device is tunnelling. For the tunnels which supports multiple + ethertypes of a l3 protocol (IP, MPLS) this field specifies the + protocol name as a string. + </p> + </column> + </group> + <group title="Patch Options"> <p> These options apply only to <dfn>patch ports</dfn>, that is, interfaces |