[ovs-discuss] openvswitch-2.11.0 single MPLS_POP

Ben Pfaff blp at ovn.org
Fri Mar 15 23:28:51 UTC 2019

You should not need to match on both labels to pop a single label.

If you use ofproto/trace for this packet (see ovs-vswitchd(8)), what
does it say?

On Tue, Mar 12, 2019 at 08:34:38AM -0400, Thomas Crowley wrote:
> I am attempting to pop the outer MPLS label on a packet that has two MPLS
> labels and send the result to a patch port that then sends the packet back
> to the same bridge.  I am using a combination of ONOS and scapy(see bottom
> of email for script) to do my test.  I do not get the packet back to my
> bridge via the patch port.  I do get the following error:
> 2019-03-12T12:00:51.460Z|00019|odp_util(handler7)|ERR|invalid Ethertype 0
> in flow key
> when I dump the flow OVS tells me that it is:
> cookie=0xba00008259b570, duration=30.601s, table=0, n_packets=27,
> n_bytes=1350, priority=60001,mpls,in_port=input,mpls_label=164,mpls_bos=0
> actions=pop_mpls:0x8847,output:"4PatchIn"
> If I run the same test but with a packet with only a single MPLS label it
> works fine.  Do I have to match both labels in order to pop a single label?
> Thank you,
> Tom
> Scapy script:
> #!/usr/bin/env python
> import sys
> from scapy.all import *
> load_contrib("mpls")
> mpls_eth = Ether(src="ca:09:11:11:11:1b", dst="ca:01:07:fc:00:1c",
> type=0x8847)
> mpls_lables=MPLS(label=164, s=0, ttl=255)/MPLS(label=182, s=1, ttl=255)
> mpls_ip = IP(src='', dst='')
> mpls_icmp = ICMP(type="echo-request")
> mpls_raw = Raw(load="Foooooooooooooooook!")
> mpls_frame=mpls_eth/mpls_lables/mpls_ip/ICMP()
> #mpls_icmp/mpls_raw
> #>>> Ether(str(mpls_frame))
> #<Ether dst=ca:01:07:fc:00:1c src=11:11:11:11:11:11 type=0x8847 |<MPLS
> label=16 cos=0 s=0 ttl=255 |<MPLS label=18 cos=0 s=0 ttl=255 |<MPLS
> label=18 cos=0 s=0 ttl=255 |<MPLS label=16 c
> os=0 s=1 ttl=255 |<IP version=4 ihl=5 tos=0x0 len=48 id=1 flags= frag=0
> ttl=64 proto=icmp chksum=0x68c7 src= dst= options=[]
> |<ICMP type=echo-request code=0 chksum
> =0xcaf3 id=0x0 seq=0x0 |<Raw load='Foooooooooooooooook!' |>>>>>>>>
> sendp(mpls_frame, iface="input")
> sendp(mpls_frame, iface="input", loop=1, inter=1.1)

> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

More information about the discuss mailing list