[ovs-git] [openvswitch/ovs] 489998: Remove last mentions of 'facet' from comments.

GitHub noreply at github.com
Tue Feb 6 18:27:19 UTC 2018


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 48999827e6b6021c610cc64a43c4835c9a3b2b9d
      https://github.com/openvswitch/ovs/commit/48999827e6b6021c610cc64a43c4835c9a3b2b9d
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/odp-util.h
    M ofproto/ofproto-dpif-mirror.c

  Log Message:
  -----------
  Remove last mentions of 'facet' from comments.

How did these survive so long?!  OVS hasn't had facets since 2013.

Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 687bafbb8a798dc0b2f65a14669501c44c01c0ed
      https://github.com/openvswitch/ovs/commit/687bafbb8a798dc0b2f65a14669501c44c01c0ed
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/odp-util.h
    M ofproto/ofproto-dpif-upcall.c

  Log Message:
  -----------
  ofproto-dpif-upcall: Slow path flows that datapath can't fully match.

In the OVS architecture, when a datapath doesn't have a match for a packet,
it sends the packet and the flow that it extracted from it to userspace.
Userspace then examines the packet and the flow and compares them.
Commonly, the flow is the same as what userspace expects, given the packet,
but there are two other possibilities:

    - The flow lacks one or more fields that userspace expects to be there,
      that is, the datapath doesn't understand or parse them but userspace
      does.  This is, for example, what would happen if current OVS
      userspace, which understands and extracts TCP flags, were to be
      paired with an older OVS kernel module, which does not.  Internally
      OVS uses the name ODP_FIT_TOO_LITTLE for this situation.

    - The flow includes fields that userspace does not know about, that is,
      the datapath understands and parses them but userspace does not.
      This is, for example, what would happen if an old OVS userspace that
      does not understand or extract TCP flags, were to be paired with a
      recent OVS kernel module that does.  Internally, OVS uses the name
      ODP_FIT_TOO_MUCH for this situation.

The latter is not a big deal and OVS doesn't have to do much to cope with
it.

The former is more of a problem.  When the datapath can't match on all the
fields that OVS supports, it means that OVS can't safely install a flow at
all, other than one that directs packets to the slow path.  Otherwise, if
OVS did install a flow, it could match a packet that does not match the
flow that OVS intended to match and could cause the wrong behavior.

Somehow, this nuance was lost a long time.  From about 2013 until today,
it seems that OVS has ignored ODP_FIT_TOO_LITTLE.  Instead, it happily
installs a flow regardless of whether the datapath can actually fully match
it.  I imagine that this is rarely a problem because most of the time
the datapath and userspace are well matched, but it is still an important
problem to fix.  This commit fixes it, by forcing flows into the slow path
when the datapath cannot match specifically enough.

CC: Ethan Jackson <ejj at eecs.berkeley.edu>
Fixes: e79a6c833e0d ("ofproto: Handle flow installation and eviction in upcall.")
Reported-by: Huanle Han <hanxueluo at gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343665.html
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: c645550bb2498fb3816b6a39b22bffeb3154dca3
      https://github.com/openvswitch/ovs/commit/c645550bb2498fb3816b6a39b22bffeb3154dca3
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-02-06 (Tue, 06 Feb 2018)

  Changed paths:
    M lib/odp-util.c

  Log Message:
  -----------
  odp-util: Always report ODP_FIT_TOO_LITTLE for IGMP.

OVS datapaths don't understand or parse IGMP fields, but OVS userspace
does, so this commit updates odp_flow_key_to_flow() to report that properly
to the caller.

Reported-by: Huanle Han <hanxueluo at gmail.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2018-January/343665.html
Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/845e688435a3...c645550bb249


More information about the git mailing list