[ovs-dev] Discontiguous bit mask in Megaflow

Ben Pfaff blp at ovn.org
Fri Mar 18 15:38:04 UTC 2016


On Fri, Mar 18, 2016 at 05:02:41PM +0800, Peng He wrote:
> Hi, I send this email once, no people replied. I am trying to refresh this email for a reply. 
> This discontiguous bit mask issue arises in the following case: 
> 
> 
> I installed two rules, 
> 
> 
> ovs-ofctl add-flow br0 in_port=1,dl_type=0x0800,nw_src=10.2.10.0/24,nw_proto=6,tcp_dst=0x0050,priority=1,actions=drop
> ovs-ofctl add-flow br0 in_port=1,dl_type=0x0800,nw_src=10.2.0.0/16,nw_proto=6,tcp_dst=0x1f90,priority=1,actions=drop
> 
> 
> and test the rules with packet (nw_src = 10.2.2.1 and tcp_dst = 8080).  I got the nw_src mask (in network byte order) 0x8ffff. 
> Even you change it to host byte order the bit mask still has discontiguous 1-bits 0xFFFF08 = 1111 1111 1111 1111 0000 1000.

This looks correct to me.  Are you reporting a bug?  If so, what is it?

Here's how to reproduce this setup, under "make sandbox":

    ovs-vsctl add-br br0
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 in_port=1,dl_type=0x0800,nw_src=10.2.10.0/24,nw_proto=6,tcp_dst=0x0050,priority=1,actions=drop
    ovs-ofctl add-flow br0 in_port=1,dl_type=0x0800,nw_src=10.2.0.0/16,nw_proto=6,tcp_dst=0x1f90,priority=1,actions=drop
    ovs-appctl ofproto/trace br0 tcp,in_port=1,nw_src=10.2.2.1,tcp_dst=8080

The output is:

    Bridge: br0
    Flow: tcp,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,nw_src=10.2.2.1,nw_dst=0.0.0.0,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=0,tp_dst=8080,tcp_flags=0

    Rule: table=0 cookie=0 priority=1,tcp,in_port=1,nw_src=10.2.0.0/16,tp_dst=8080
    OpenFlow actions=drop

    Final flow: tcp,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,nw_src=10.2.2.1,nw_dst=0.0.0.0,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=0,tp_dst=8080,tcp_flags=0
    Megaflow: recirc_id=0,tcp,in_port=1,nw_src=10.2.0.0/255.255.8.0,nw_frag=no,tp_dst=8080
    Datapath actions: drop



More information about the dev mailing list