[ovs-discuss] openvswitch-2.11.0 single MPLS_POP

Thomas Crowley tbcrowley at gmail.com
Tue Mar 12 12:34:38 UTC 2019

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

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,

Scapy script:
#!/usr/bin/env python

import sys
from scapy.all import *

mpls_eth = Ether(src="ca:09:11:11:11:1b", dst="ca:01:07:fc:00:1c",
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!")

#>>> 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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20190312/8baa1bee/attachment.html>

More information about the discuss mailing list