[ovs-git] [openvswitch/ovs] 449b81: dpif-netdev: Exact match non-presence of vlans.

GitHub noreply at github.com
Sat Sep 19 00:48:22 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 449b81311336977d874f80adde9c275dc67e0f8c
      https://github.com/openvswitch/ovs/commit/449b81311336977d874f80adde9c275dc67e0f8c
  Author: Jarno Rajahalme <jrajahalme at nicira.com>
  Date:   2015-09-18 (Fri, 18 Sep 2015)

  Changed paths:
    M lib/dpif-netdev.c
    M lib/odp-util.c
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  dpif-netdev: Exact match non-presence of vlans.

The Netlink encoding of datapath flow keys cannot express wildcarding
the presence of a VLAN tag. Instead, a missing VLAN tag is interpreted
as exact match on the fact that there is no VLAN.  This makes reading
datapath flow dumps confusing, since for everything else, a missing
key value means that the corresponding key was wildcarded.

Unless we refactor a lot of code that translates between Netlink and
struct flow representations, we have to do the same in the userspace
datapath.  This makes at least the flow install logs show that the
vlan_tci field is matched to zero.  However, the datapath flow dumps
remain as they were before, as they are performed using the netlink
format.

Add a test to verify that packet with a vlan will not match a rule
that may seem wildcarding the presence of the vlan tag.  Applying this
test without the userspace datapath modification showed that the
userspace datapath failed to create a new datapath flow for the VLAN
packet before this patch.

Reported-by: Tony van der Peet <tony.vanderpeet at gmail.com>
Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>




More information about the git mailing list