Commit | Line | Data |
---|---|---|
571912c6 MV |
1 | .. SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | ======================================== | |
4 | Bare UDP Tunnelling Module Documentation | |
5 | ======================================== | |
6 | ||
7 | There are various L3 encapsulation standards using UDP being discussed to | |
8 | leverage the UDP based load balancing capability of different networks. | |
9 | MPLSoUDP (__ https://tools.ietf.org/html/rfc7510) is one among them. | |
10 | ||
1ed06dbc MV |
11 | The Bareudp tunnel module provides a generic L3 encapsulation support for |
12 | tunnelling different L3 protocols like MPLS, IP, NSH etc. inside a UDP tunnel. | |
571912c6 | 13 | |
4b5f6723 MV |
14 | Special Handling |
15 | ---------------- | |
16 | The bareudp device supports special handling for MPLS & IP as they can have | |
17 | multiple ethertypes. | |
18 | MPLS procotcol can have ethertypes ETH_P_MPLS_UC (unicast) & ETH_P_MPLS_MC (multicast). | |
19 | IP protocol can have ethertypes ETH_P_IP (v4) & ETH_P_IPV6 (v6). | |
20 | This special handling can be enabled only for ethertypes ETH_P_IP & ETH_P_MPLS_UC | |
21 | with a flag called multiproto mode. | |
22 | ||
571912c6 MV |
23 | Usage |
24 | ------ | |
25 | ||
26 | 1) Device creation & deletion | |
27 | ||
34b85ada | 28 | a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc |
571912c6 MV |
29 | |
30 | This creates a bareudp tunnel device which tunnels L3 traffic with ethertype | |
31 | 0x8847 (MPLS traffic). The destination port of the UDP header will be set to | |
32 | 6635.The device will listen on UDP port 6635 to receive traffic. | |
33 | ||
34 | b) ip link delete bareudp0 | |
35 | ||
34b85ada | 36 | 2) Device creation with multiproto mode enabled |
4b5f6723 | 37 | |
34b85ada GN |
38 | The multiproto mode allows bareudp tunnels to handle several protocols of the |
39 | same family. It is currently only available for IP and MPLS. This mode has to | |
40 | be enabled explicitly with the "multiproto" flag. | |
4b5f6723 | 41 | |
34b85ada | 42 | a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype ipv4 multiproto |
4b5f6723 | 43 | |
34b85ada GN |
44 | For an IPv4 tunnel the multiproto mode allows the tunnel to also handle |
45 | IPv6. | |
46 | ||
47 | b) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc multiproto | |
48 | ||
49 | For MPLS, the multiproto mode allows the tunnel to handle both unicast | |
50 | and multicast MPLS packets. | |
4b5f6723 MV |
51 | |
52 | 3) Device Usage | |
571912c6 MV |
53 | |
54 | The bareudp device could be used along with OVS or flower filter in TC. | |
55 | The OVS or TC flower layer must set the tunnel information in SKB dst field before | |
56 | sending packet buffer to the bareudp device for transmission. On reception the | |
57 | bareudp device extracts and stores the tunnel information in SKB dst field before | |
58 | passing the packet buffer to the network stack. |