Bareudp¶
Q: What is Bareudp?
- A: 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 unicast traffic is given below.:
$ ovs-vsctl add-port br0 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=6635The option payload_type specifies the ethertype of the l3 protocol which the bareudp device will be tunnelling.
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 br0 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=6635The below example ovs rule shows how a bareudp tunnel port is used to tunnel an MPLS packet inside a UDP tunnel.:
$ ovs-ofctl -O OpenFlow13 add-flow br0 "in_port=10,dl_type=0x0800,\ actions=push_mpls:0x8847,set_field:3->mpls_label,\ output:mpls_udp_port"This rule does MPLS encapsulation on IP packets and sends the l3 MPLS packets on a bareudp tunnel port which has its payload_type configured to 0x8847.
An example to create bareudp device to tunnel IPv4 & IPv6 traffic is given below.:
$ ovs-vsctl add-port br0 ip_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=ip options:dst_port=6636