]> git.proxmox.com Git - mirror_ovs.git/commit - lib/netdev-offload-provider.h
netdev: Dynamic per-port Flow API.
authorIlya Maximets <i.maximets@samsung.com>
Tue, 7 May 2019 09:24:07 +0000 (12:24 +0300)
committerIlya Maximets <i.maximets@samsung.com>
Tue, 11 Jun 2019 06:39:36 +0000 (09:39 +0300)
commit5fc5c50f3d9cda4512e3fc9ae7a1b6c27e342f7d
tree6bd7e0c63484306b9fc6e30f257ec9ebb870683d
parent7a65e5a9252ac06df62707a571931f501747ecfc
netdev: Dynamic per-port Flow API.

Current issues with Flow API:

* OVS calls offloading functions regardless of successful
  flow API initialization. (ex. on init_flow_api failure)
* Static initilaization of Flow API for a netdev_class forbids
  having different offloading types for different instances
  of netdev with the same netdev_class. (ex. different vports in
  'system' and 'netdev' datapaths at the same time)

Solution:

* Move Flow API from the netdev_class to netdev instance.
* Make Flow API dynamic, i.e. probe the APIs and choose the
  suitable one.

Side effects:

* Flow API providers localized as possible in their modules.
* Now we have an ability to make runtime checks. For example,
  we could check if particular device supports features we
  need, like if dpdk device supports RSS+MARK action.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Roi Dayan <roid@mellanox.com>
17 files changed:
lib/automake.mk
lib/dpdk.c
lib/netdev-dpdk.c
lib/netdev-dpdk.h
lib/netdev-dummy.c
lib/netdev-linux.c
lib/netdev-linux.h
lib/netdev-offload-provider.h [new file with mode: 0644]
lib/netdev-provider.h
lib/netdev-rte-offloads.c
lib/netdev-rte-offloads.h
lib/netdev-tc-offloads.c
lib/netdev-tc-offloads.h [deleted file]
lib/netdev-vport.c
lib/netdev.c
tests/dpif-netdev.at
tests/ofproto-macros.at