无法放置 [创建](无效参数)OVS pop_mpls 流

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

我在安装 OVS 流时遇到问题,该流从传入的 vlan 标记的 mpls 数据包中弹出 mpls header。以下是流程:

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

提交上述报文的OF端口属于补丁端口。上述流的数据包计数器增加,但未按操作指示输出。

此外,我在系统日志中收到 this 错误。

为了补充,我尝试了多种组合,例如在给定流上剥离 vlan、正常而不是输出、删除 mpls 标签匹配等。

请帮我解决这个问题。

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

看起来 OVS 对特定的指令顺序进行了限制,不幸的是,从 mpls+vlan 数据包中弹出 mpls 标签属于这种情况。

因此,我们无法从 mpls+vlan 数据包中弹出 mpls 标签。

This post in ovs mailing list speaks of the same problem