Merge branch 'net-sched-Add-actions-for-MPLS-L2-VPNs'
authorDavid S. Miller <davem@davemloft.net>
Sun, 4 Oct 2020 00:28:45 +0000 (17:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 Oct 2020 00:28:45 +0000 (17:28 -0700)
commitef743c0990337f3ed2648b6c6847eddc593241db
tree4c9ab23ca1d039b508ce4358df7dfed6561757de
parente275d49a69c0b8326a16a6e6c8f6d3c672114447
parenta45294af9e96a3e060b6272fa7cd2c4b196de335
Merge branch 'net-sched-Add-actions-for-MPLS-L2-VPNs'

Guillaume Nault says:

====================
net/sched: Add actions for MPLS L2 VPNs

This patch series adds the necessary TC actions for supporting layer 2
MPLS VPNs (VPLS).

The objective is to give the possibility to add an MPLS header right
before an skb's mac header, then to prepend this MPLS packet with a
new Ethernet header with the MAC address of the next hop.

Patch 1 implements the actions for adding and removing the external
Ethernet header.
Patch 2 adds the possibility to push an MPLS header before the mac
header.

Most of the code already exists as these operations were first
implemented in openvswitch.

Practical example, with encap on Host-A and decap on Host-B:

 Host-A# tc filter add dev ethAx ingress matchall         \
           action mpls mac_push label 20                  \
           action vlan push_eth dst_mac 02:00:00:00:00:02 \
                                src_mac 02:00:00:00:00:01 \
           action mirred egress redirect dev ethAy

 Host-B# tc filter add dev ethBx ingress protocol mpls_uc \
           flower mpls_label 20 mpls_bos 1                \
           action vlan pop_eth                            \
           action mpls pop proto teb                      \
           action mirred egress redirect dev ethBy
====================

Signed-off-by: David S. Miller <davem@davemloft.net>