[ovs-git] [openvswitch/ovs] d9aa72: datapath: Add UFID interface to openvswitch.h.

GitHub noreply at github.com
Tue Dec 2 22:59:51 UTC 2014


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: d9aa7218a27b6c2aa8fde2663ded63ae17a0e112
      https://github.com/openvswitch/ovs/commit/d9aa7218a27b6c2aa8fde2663ded63ae17a0e112
  Author: Joe Stringer <joestringer at nicira.com>
  Date:   2014-12-02 (Tue, 02 Dec 2014)

  Changed paths:
    M datapath/README.md
    M datapath/linux/compat/include/linux/openvswitch.h

  Log Message:
  -----------
  datapath: Add UFID interface to openvswitch.h.

An upcoming set of patches will implement support for indexing flows by
Unique Flow IDentifiers (UFID) rather than the traditional unmasked key.
This patch implements the interface changes required. The implementation
will follow.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Pravin B Shelar <pshelar at nicira.com>


  Commit: 70e5ed6f39f02e1b378908f045d4ba2ab2000513
      https://github.com/openvswitch/ovs/commit/70e5ed6f39f02e1b378908f045d4ba2ab2000513
  Author: Joe Stringer <joestringer at nicira.com>
  Date:   2014-12-02 (Tue, 02 Dec 2014)

  Changed paths:
    M lib/dpctl.c
    M lib/dpif-netdev.c
    M lib/dpif-netlink.c
    M lib/dpif.c
    M lib/dpif.h
    M lib/odp-util.c
    M lib/odp-util.h
    M ofproto/ofproto-dpif-upcall.c
    M ofproto/ofproto-dpif.c
    M tests/dpif-netdev.at
    M tests/ofproto-dpif.at
    M tests/ofproto-macros.at

  Log Message:
  -----------
  dpif: Index flows using unique identifiers.

This patch modifies the dpif interface to allow flows to be manipulated
using a 128-bit identifier. This allows revalidator threads to perform
datapath operations faster, as they do not need to serialise the entire
flow key for operations like flow_get and flow_delete. In conjunction
with a future patch to simplify the dump interface, this provides a
significant performance benefit for revalidation.

When handlers assemble flow_put operations, they specify a unique
identifier (UFID) for each flow as it is passed down to the datapath to
be stored with the flow. The UFID is currently provided to handlers
by the dpif during upcall processing.

When revalidators assemble flow_get or flow_del operations, they may
specify the UFID for the flow along with the key. The dpif will decide
whether to send only the UFID to the datapath, or both the UFID and flow
key. The former is preferred for newer datapaths that support UFID,
while the latter is used for backwards compatibility.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


  Commit: 64bb477f05688e61cf1ca062e2e47c69c5c49735
      https://github.com/openvswitch/ovs/commit/64bb477f05688e61cf1ca062e2e47c69c5c49735
  Author: Joe Stringer <joestringer at nicira.com>
  Date:   2014-12-02 (Tue, 02 Dec 2014)

  Changed paths:
    M lib/dpctl.c
    M lib/dpif-netdev.c
    M lib/dpif-netlink.c
    M lib/dpif-provider.h
    M lib/dpif.c
    M lib/dpif.h
    M ofproto/ofproto-dpif-upcall.c
    M ofproto/ofproto-dpif.c
    M tests/dpif-netdev.at
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  dpif: Minimize memory copy for revalidation.

One of the limiting factors on the number of flows that can be supported
in the datapath is the overhead of assembling flow dump messages in the
datapath. This patch modifies the dpif to allow revalidators to skip
dumping the key, mask and actions from the datapath, by making use of
the unique flow identifiers introduced in earlier patches.

For each flow dump, the dpif user specifies whether to skip these
attributes, allowing the common case to only dump a pair of 128-bit ID
and flow stats. With datapath support, this increases the number of
flows that a revalidator can handle per second by 50% or more. Support
in dpif-netdev and dpif-netlink is added in this patch; kernel support
is left for future patches.

Signed-off-by: Joe Stringer <joestringer at nicira.com>
Acked-by: Ben Pfaff <blp at nicira.com>


Compare: https://github.com/openvswitch/ovs/compare/a1235ee5fd63...64bb477f0568


More information about the git mailing list