]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
Merge branch 'ovs-mpls-actions'
authorDavid S. Miller <davem@davemloft.net>
Wed, 25 Dec 2019 06:24:45 +0000 (22:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 Dec 2019 06:24:45 +0000 (22:24 -0800)
commitab5d4bb2b819bd09a1eb1a9a0069e22c1ae4aeb0
treebb0d67371aaf2e2fcdb80ef8ee59b82d7b6ff83a
parentac80010fc94eb0680d9a432b639583bd7ac29066
parentf66b53fdbb22ced1a323b22b9de84a61aacd8d18
Merge branch 'ovs-mpls-actions'

Martin Varghese says:

====================
New openvswitch MPLS actions for layer 2 tunnelling

The existing PUSH MPLS action inserts MPLS header between ethernet header
and the IP header. Though this behaviour is fine for L3 VPN where an IP
packet is encapsulated inside a MPLS tunnel, it does not suffice the L2
VPN (l2 tunnelling) requirements. In L2 VPN the MPLS header should
encapsulate the ethernet packet.

The new mpls action ADD_MPLS inserts MPLS header at the start of the
packet or at the start of the l3 header depending on the value of l3 tunnel
flag in the ADD_MPLS arguments.

POP_MPLS action is extended to support ethertype 0x6558

OVS userspace changes -
---------------------
Encap & Decap ovs actions are extended to support MPLS packet type. The encap & decap
adds and removes MPLS header at the start of packet as depicted below.

Actions - encap(mpls(ether_type=0x8847)),encap(ethernet)

Incoming packet -> | ETH | IP | Payload |

1 Actions -  encap(mpls(ether_type=0x8847)) [Kernel action - add_mpls:0x8847]

        Outgoing packet -> | MPLS | ETH | Payload|

2 Actions - encap(ethernet) [ Kernel action - push_eth ]

        Outgoing packet -> | ETH | MPLS | ETH | Payload|

Decapsulation:

Incoming packet -> | ETH | MPLS | ETH | IP | Payload |

Actions - decap(),decap(packet_type(ns=0,type=0)

1 Actions -  decap() [Kernel action - pop_eth)

        Outgoing packet -> | MPLS | ETH | IP | Payload|

2 Actions - decap(packet_type(ns=0,type=0) [Kernel action - pop_mpls:0x6558]

        Outgoing packet -> | ETH  | IP | Payload
====================

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