[ovs-git] [openvswitch/ovs] 21c00e: netdev-dpdk: Secure flow offload API.

GitHub noreply at github.com
Fri Nov 2 20:06:20 UTC 2018


  Branch: refs/heads/branch-2.10
  Home:   https://github.com/openvswitch/ovs
  Commit: 21c00e4f4d14480e30fd754a046f647d47ae5584
      https://github.com/openvswitch/ovs/commit/21c00e4f4d14480e30fd754a046f647d47ae5584
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Secure flow offload API.

rte API is not thread safe. We have to get netdev mutex
before uing it and also before using fields of netdev structure.

This is important because offload API used from the separate
thread and could be used at the same time with other netdev
functions called from the main thread.

CC: Finn Christensen <fc at napatech.com>
Fixes: e8a2b5bf92bb ("netdev-dpdk: implement flow offload with rte flow")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 3eb47ae34b9fc5dbcdb93a21f35d7d9265ee012b
      https://github.com/openvswitch/ovs/commit/3eb47ae34b9fc5dbcdb93a21f35d7d9265ee012b
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/dpif-netdev.c
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  dpif-netdev: Fix cmap node use after free on flow disassociation.

Data pointed by cmap node must not be freed while iterating.
ovsrcu_postpone should be used instead.

CC: Finn Christensen <fc at napatech.com>
Fixes: e8a2b5bf92bb ("netdev-dpdk: implement flow offload with rte flow")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 60432495c7defb62e1637a1d684ff1ff830e79c6
      https://github.com/openvswitch/ovs/commit/60432495c7defb62e1637a1d684ff1ff830e79c6
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Print port name in offload API messages.

This is useful for understanding which flows offloaded to
which ports.

Code refactored a bit to reduce number of casts.

Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 5bd5f943a2a5fdee5202cf42bfb44d5e8d0eade0
      https://github.com/openvswitch/ovs/commit/5bd5f943a2a5fdee5202cf42bfb44d5e8d0eade0
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Dump flow patterns only if debug enabled.

No need to waste time for fields checking in case DBG disabled.
Additionally sequence of prints replaced with single print
to avoid output interrupting by other log messages.

Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 099e872e35b11f2a20be4c0a744efedf6f3438da
      https://github.com/openvswitch/ovs/commit/099e872e35b11f2a20be4c0a744efedf6f3438da
  Author: Ian Stokes <ian.stokes at intel.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M Documentation/topics/dpdk/vhost-user.rst

  Log Message:
  -----------
  Docs: Remove zero-copy QEMU limitation.

Remove note regarding zero-copy compatibility with QEMU >= 2.7.

When zero-copy was introduced to OVS it was incompatible with QEMU >=
2.7. This issue has since been fixed in DPDK with commit
803aeecef123 ("vhost: fix dequeue zero copy with virtio1") and
backported to DPDK LTS branches. Remove the reference to this
issue in the zero-copy documentation.

Cc: Ciara Loftus <ciara.loftus at intel.com>
Acked-by: Ciara Loftus <ciara.loftus at intel.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 8fc4435a25fd1af75fc25c714e99200d8c615a7e
      https://github.com/openvswitch/ovs/commit/8fc4435a25fd1af75fc25c714e99200d8c615a7e
  Author: Ian Stokes <ian.stokes at intel.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M Documentation/intro/install/dpdk.rst

  Log Message:
  -----------
  Docs: Remove HWOL DPDK limitation.

Partial offload support was added to OVS DPDK in OVS 2.10. As such
remove the limitation that OVS DPDK does not support HWOL from the
DPDK install documentation.

Acked-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: 2497935a5e042570bbdaa7e2b5e728c11efe09b9
      https://github.com/openvswitch/ovs/commit/2497935a5e042570bbdaa7e2b5e728c11efe09b9
  Author: Ilya Maximets <i.maximets at samsung.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/dpif-netdev.c

  Log Message:
  -----------
  dpif-netdev: End the quiescent state for flow offloading thread.

Flow offloading thread uses concurrent hash maps which are
based on rcu protected variables. It must use them while in
active state. Working in a quiescent state could cause
segmentation faults because of possible cmap internal
structure changes.

Fixes: 02bb2824e51d ("dpif-netdev: do hw flow offload in a thread")
Acked-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: ea9e1d8a27da8a0383c1b580ab0b0a47b6a613e8
      https://github.com/openvswitch/ovs/commit/ea9e1d8a27da8a0383c1b580ab0b0a47b6a613e8
  Author: Ian Stokes <ian.stokes at intel.com>
  Date:   2018-11-02 (Fri, 02 Nov 2018)

  Changed paths:
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Fix netdev_dpdk_get_features().

This commit fixes netdev_dpdk_get_features() by initializing a bitmap
that represents current features to zero and accounting for non defined
link speed values in the OpenFlow spec.

The current approach for retrieving netdev dpdk features uses a
pointer allocated in the stack without being initialized. As such there
is no guarantee that the bitmap will be accurate. Fix this by declaring
and initializing local variable 'feature' to be used when building the
bitmap, with its value then assigned to the pointer. Also account for
link speeds not defined in the OpenFlow spec by defaulting to
NETDEV_F_OTHER for undefined link speeds.

Fixes: 8a9562d21a40 ("dpif-netdev: Add DPDK netdev.")
Acked-by: Ilya Maximets <i.maximets at samsung.com>
Co-authored-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Flavio Leitner <fbl at sysclose.org>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


Compare: https://github.com/openvswitch/ovs/compare/855949977a0b...ea9e1d8a27da
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the git mailing list