Hello, I'm testing mpls and vlan tagging with OpenFlow on OpenvSwitch and faced a problem when trying to pop mpls tag from a vlan tagged packet. The problem can be seen in the following example in a simple mininet network: ``` # mn --topo linear,2 --controller none # ovs-vsctl set bridge s1 protocols=OpenFlow13 # ovs-vsctl set bridge s2 protocols=OpenFlow13 # ovs-ofctl -O OpenFlow13 add-flow s1 in_port=1,actions=push_mpls:0x8847,set_field:100-\>mpls_label,push_vlan:0x8100,set_field:0x1005-\>vlan_vid,output:2 # ovs-ofctl -O OpenFlow13 add-flow s2 mpls,vlan_vid=0x1005,actions=pop_vlan,pop_mpls:0x0806,output:1
# Then generate traffic from host1 > h1 ping h2 ``` The traffic is tagged correctly on the `s1` and the packets are matched to the correct flow in `s2` but the `s2` is not outputting anything from port 1. In the kernel log there is messages generated that say: ``` openvswitch: netlink: Flow actions may not be safe on all matching packets. ``` If the actions in the `s2` are changed to only pop the vlan tag everything works as expected. If the actions in the `s2` are changed to pop only the mpls tag the same problem occurs. Is it not possible to pop mpls from vlan tagged packet? Is this a restriction in the OpenFlow protocol? Am I missing some required match fields in the flows or is this a bug in OpenvSwitch? Versions: ovs-ofctl (Open vSwitch) 2.5.1 ovs-vsctl (Open vSwitch) 2.5.1 modinfo openvswitch: version: 2.5.1 OS: Ubuntu 14.04 - 3.13.0-24-generic Thanks, Janne Alatalo
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss