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='10.0.255.2', dst='10.0.255.4') > 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=10.0.255.2 dst=10.0.255.2 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 > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss