12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- .. SPDX-License-Identifier: GPL-2.0
- ========================================
- Bare UDP Tunnelling Module Documentation
- ========================================
- 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 module provides a generic L3 encapsulation support for
- tunnelling different L3 protocols like MPLS, IP, NSH etc. inside a UDP tunnel.
- Special Handling
- ----------------
- 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).
- This special handling can be enabled only for ethertypes ETH_P_IP & ETH_P_MPLS_UC
- with a flag called multiproto mode.
- Usage
- ------
- 1) Device creation & deletion
- a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc
- This creates a bareudp tunnel device which tunnels L3 traffic with ethertype
- 0x8847 (MPLS traffic). The destination port of the UDP header will be set to
- 6635.The device will listen on UDP port 6635 to receive traffic.
- b) ip link delete bareudp0
- 2) Device creation with multiproto mode enabled
- The multiproto mode allows bareudp tunnels to handle several protocols of the
- same family. It is currently only available for IP and MPLS. This mode has to
- be enabled explicitly with the "multiproto" flag.
- a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype ipv4 multiproto
- For an IPv4 tunnel the multiproto mode allows the tunnel to also handle
- IPv6.
- b) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc multiproto
- For MPLS, the multiproto mode allows the tunnel to handle both unicast
- and multicast MPLS packets.
- 3) Device Usage
- The bareudp device could be used along with OVS or flower filter in TC.
- The OVS or TC flower layer must set the tunnel information in SKB dst field before
- sending packet buffer to the bareudp device for transmission. On reception the
- bareudp device extracts and stores the tunnel information in SKB dst field before
- passing the packet buffer to the network stack.
|