linuxubuntuopenflowopenvswitch

failed to put[create] (Invalid argument) OVS pop_mpls flow


I face an issue in installing an OVS flow that pops mpls header off an incoming vlan tagged mpls packet. Following is the flow:

ovs-ofctl add-flow br-int table=10,priority=20,mpls,mpls_label=100,actions=pop_mpls:0x0800,output:xx

The OF port to which the above packet is submitted belongs to a patch port. The above flow's packet counter increases but it's not output as directed in the action.

Furthermore, I receive this error in syslog.

To add, I tried multiple combinations like stripping vlan, normal instead of output, removing mpls label match etc on the given flow.

Pls help me resolve this issue.

Linux compute-xxx 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

OVS 2.6.0, OF 1.3

Xenial Xerxes

VLAN based network


Solution

  • Looks like OVS has put up a restriction on certain order of instructions and unfortunately, popping an mpls tag off an mpls+vlan packet falls under this.

    So, we cannot pop an mpls tag off an mpls+vlan packet.

    This post in ovs mailing list speaks of the same problem