Hi Marcos,

Thanks for reporting this. I believe it should work (at least with
current master branch). I will take a closer tomorrow.

Are your packets double tagged with TPIDs 0x88a8 and 0x8100, or are both
tags 0x8100?

Thanks.
Eric.

On Fri, May 05, 2017 at 09:05:46PM -0300, Marcos Felipe Schwarz wrote:
> Hi,
> 
> Found some inconsistencies while further troubleshooting the issue,maybe 
> there is a bug.
> 
> I'm sending the same packet in three ways to OVS at port 1:
> 1) Untagged
> 2) Tagged with single VLAN 10
> 3) Double tagged with CVLAN 10 and SVLAN 3204
> 
> Then I match and mark each flow with a different metadata, adding tags to 1) 
> and 2) to make them equivalent to 3), send them to the same rule on table 1, 
> and try to match them by the CVLAN on table 2. 1) and 2) work as expected, 
> but the double tagged packet can't match on the CVLAN 10.
> 
>  cookie=0x0, duration=493.174s, table=0, n_packets=318, n_bytes=25758, 
> in_port=1,vlan_tci=0x0000/0x1fff 
> actions=set_field:0x1->metadata,push_vlan:0x8100,set_field:4106-
> >vlan_vid,push_vlan:0x8100,set_field:7300->vlan_vid,goto_table:1
>  cookie=0x0, duration=493.167s, table=0, n_packets=318, n_bytes=27030, 
> in_port=1,dl_vlan=10 
> actions=set_field:0x2->metadata,push_vlan:0x8100,set_field:7300->vlan_vid,go
> to_table:1
>  cookie=0x0, duration=493.163s, table=0, n_packets=318, n_bytes=28302, 
> in_port=1,dl_vlan=3204 actions=set_field:0x3->metadata,goto_table:1
> 
>  cookie=0x0, duration=493.158s, table=1, n_packets=954, n_bytes=81090, 
> in_port=1,dl_vlan=3204 actions=pop_vlan,goto_table:2
> 
>  cookie=0x0, duration=493.153s, table=2, n_packets=318, n_bytes=25758, 
> metadata=0x1,in_port=1,dl_vlan=10 actions=pop_vlan,output:2
>  cookie=0x0, duration=493.148s, table=2, n_packets=318, n_bytes=27030, 
> metadata=0x2,in_port=1,dl_vlan=10 actions=pop_vlan,output:2
>  cookie=0x0, duration=491.905s, table=2, n_packets=0, n_bytes=0, 
> metadata=0x3,in_port=1,dl_vlan=10 actions=pop_vlan,output:2
> 
> Regards,
> 
> Marcos Schwarz
> 
> ----- Original Message -----
> From: "Marcos Felipe Schwarz" <[email protected]>
> To: [email protected]
> Sent: Friday, May 5, 2017 8:55:56 PM
> Subject: Can't match on CVLAN
> 
> Sorry for the duplicate post, but it seems I posted on someone elses thread,
> 
> Hi,
> 
> I'm trying to work with double tagged packets in OVS. But I can't match on 
> the inner VLAN (CVLAN), even after poping the SVLAN and using a different 
> table.
> In this setup I'm receiving on port 1 SVLANs 3204 and 3217 both transporting 
> CVLANs 10 and 20, what I want to achieve is to steer each flow (SVLAN + CVLAN 
> combination) to a different outport.
> 
> I came up with two set of rules, using two tables.
> On table 0 I match on in_port, SVLAN, pop it, save the SVLAN VID to the 
> metadata field then send to table 1.
> On table 1 I match on the metadata to restore the information of wich SVLAN 
> this flow is from, mach on in_port and CVLAN, pop the CVLAN and send to the 
> outputport.
> Below are the flows I used:
> 
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> in_port=1,dl_vlan=3204,actions=pop_vlan,set_field:3204->metadata,goto_table:1
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> in_port=1,dl_vlan=3217,actions=pop_vlan,set_field:3217->metadata,goto_table:1
> 
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> table=1,metadata=3204,in_port=1,dl_vlan=10,actions=pop_vlan,output:2
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> table=1,metadata=3204,in_port=1,dl_vlan=20,actions=pop_vlan,output:3
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> table=1,metadata=3217,in_port=1,dl_vlan=10,actions=pop_vlan,output:4
> ovs-ofctl -O OpenFlow13 add-flow br-oper0 
> table=1,metadata=3217,in_port=1,dl_vlan=20,actions=pop_vlan,output:5
> 
> But as shown below, no flow is matching the rules from table 1. I created 
> some temporary flows to isolate the issue, and I figured that I can match the 
> CVLAN on table 1.
> 
> cookie=0x0, duration=3435.754s, table=0, n_packets=788, n_bytes=67476, 
> in_port=1,dl_vlan=3204 actions=pop_vlan,set_field:0xc84->metadata,goto_table:1
> cookie=0x0, duration=3435.754s, table=0, n_packets=788, n_bytes=67476, 
> in_port=1,dl_vlan=3217 actions=pop_vlan,set_field:0xc91->metadata,goto_table:1
> 
> cookie=0x0, duration=3471.941s, table=1, n_packets=0, n_bytes=0, 
> metadata=0xc84,in_port=1,dl_vlan=10 actions=pop_vlan,output:2
> cookie=0x0, duration=3471.941s, table=1, n_packets=0, n_bytes=0, 
> metadata=0xc84,in_port=1,dl_vlan=20 actions=pop_vlan,output:2
> cookie=0x0, duration=3471.941s, table=1, n_packets=0, n_bytes=0, 
> metadata=0xc91,in_port=1,dl_vlan=10 actions=pop_vlan,output:4
> cookie=0x0, duration=3471.941s, table=1, n_packets=0, n_bytes=0, 
> metadata=0xc91,in_port=1,dl_vlan=20 actions=pop_vlan,output:5
> 
> Temporary Flows:
> cookie=0x0, duration=6.097s,    table=1, n_packets=0, n_bytes=0, 
> in_port=1,dl_vlan=10 actions=output:2
> cookie=0x0, duration=6.883s,    table=1, n_packets=4, n_bytes=356, 
> metadata=0xc84,in_port=1 actions=output:2
> 
> All my ports are DPDK, and I'm working with OVS from master branch (april 
> 29th) and DPDK 16.11. But have confirmed this issue with previous versions as 
> 2.7.0 and 2.6.1.
> Follows the parameters from my setup.
> ovs-vsctl add-br br-oper0 -- set bridge br-oper0 datapath_type=netdev 
> fail-mode=secure
> ovs-vsctl add-port br-oper0 dpdk-p0 -- set Interface dpdk-p0 type=dpdk 
> options:dpdk-devargs=0000:00:14.0 mtu_request=9600 ofport=1
> ovs-vsctl add-port br-oper0 dpdk-p1 -- set Interface dpdk-p1 type=dpdk 
> options:dpdk-devargs=0000:00:14.1 mtu_request=9600 ofport=2
> ovs-vsctl add-port br-oper0 dpdk-p2 -- set Interface dpdk-p2 type=dpdk 
> options:dpdk-devargs=0000:00:14.2 mtu_request=9600 ofport=3
> ovs-vsctl add-port br-oper0 dpdk-p3 -- set Interface dpdk-p3 type=dpdk 
> options:dpdk-devargs=0000:00:14.3 mtu_request=9600 ofport=4
> ovs-vsctl add-port br-oper0 dpdk-p4 -- set Interface dpdk-p4 type=dpdk 
> options:dpdk-devargs=0000:01:00.0 mtu_request=9600 ofport=5
> 
> I've also attached a pcap from the host at port 2, just to show that there is 
> traffic with the CVLAN tag reaching there.
> 
> Please let me know if there is a better way I can achieve this.
> 
> Regards,
> 
> Marcos Schwarz
> _______________________________________________
> discuss mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to