summaryrefslogtreecommitdiff
path: root/vswitchd
diff options
context:
space:
mode:
authorMartin Varghese <martin.varghese@nokia.com>2020-12-17 12:48:41 +0530
committerIlya Maximets <i.maximets@ovn.org>2020-12-22 12:51:22 +0100
commitebe0e518b0489aafbe385ba90133f6bacba33353 (patch)
tree73972f43dc33161d91cb93684f153da5919b0290 /vswitchd
parent55f2b065acd477a6810d5279fcace8b42bd594f5 (diff)
downloadopenvswitch-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.xml42
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