[ovs-dev] [PATCH v7] Encap & Decap actions for MPLS packet type.

Martin Varghese martinvarghesenokia at gmail.com
Mon Nov 1 16:20:55 UTC 2021


On Fri, Oct 15, 2021 at 01:40:39PM +0200, Eelco Chaudron wrote:
> 
> 
> On 12 Oct 2021, at 6:23, Martin Varghese wrote:
> 
> > From: Martin Varghese <martin.varghese at nokia.com>
> >
> > The encap & decap actions are extended to support MPLS packet type.
> > Encap & decap actions adds and removes MPLS header at start of the
> > packet.
> >
> > The existing PUSH MPLS & POP MPLS actions inserts & removes 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 requirements. In L2 VPN the
> > ethernet packets must be encapsulated inside MPLS tunnel.
> >
> > In this change the encap & decap actions are extended to support MPLS
> > packet type. The encap & decap adds and removes MPLS header at the
> > start of packet as depicted below.
> >
> > Encapsulation:
> >
> > Actions - encap(mpls(ether_type=0x8847)),encap(ethernet)
> >
> > Incoming packet -> | ETH | IP | Payload |
> >
> > 1 Actions -  encap(mpls(ether_type=0x8847)) [Datapath action - ADD_MPLS:0x8847]
> >
> >         Outgoing packet -> | MPLS | ETH | Payload|
> >
> > 2 Actions - encap(ethernet) [ Datapath 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() [Datapath action - pop_eth)
> >
> >         Outgoing packet -> | MPLS | ETH | IP | Payload|
> >
> > 2 Actions - decap(packet_type(ns=0,type=0) [Datapath action - POP_MPLS:0x6558]
> >
> >         Outgoing packet -> | ETH  | IP | Payload|
> >
> > Signed-off-by: Martin Varghese <martin.varghese at nokia.com>
> 
> Thanks for following through!
> 
> Looking forward to see the follow on patch to also include the OVS_ACTION_ATTR_ADD_MPLS in TC, i.e. netdev_tc_flow_put().
> 
> 
> Acked-by: Eelco Chaudron <echaudro at redhat.com>
> 
Hi Ilya,

If no further comments from anyone can we take this patch forward.

Regards,
Martin



More information about the dev mailing list