summaryrefslogtreecommitdiff
path: root/lib/netdev-vport.c
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@samsung.com>2019-05-07 12:24:07 +0300
committerIlya Maximets <i.maximets@samsung.com>2019-06-11 09:39:36 +0300
commit5fc5c50f3d9cda4512e3fc9ae7a1b6c27e342f7d (patch)
tree6bd7e0c63484306b9fc6e30f257ec9ebb870683d /lib/netdev-vport.c
parent7a65e5a9252ac06df62707a571931f501747ecfc (diff)
downloadopenvswitch-5fc5c50f3d9cda4512e3fc9ae7a1b6c27e342f7d.tar.gz
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>
Diffstat (limited to 'lib/netdev-vport.c')
-rw-r--r--lib/netdev-vport.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
index ab591667f..92a256af1 100644
--- a/lib/netdev-vport.c
+++ b/lib/netdev-vport.c
@@ -47,7 +47,6 @@
#include "unaligned.h"
#include "unixctl.h"
#include "openvswitch/vlog.h"
-#include "netdev-tc-offloads.h"
#ifdef __linux__
#include "netdev-linux.h"
#endif
@@ -1116,10 +1115,8 @@ netdev_vport_get_ifindex(const struct netdev *netdev_)
}
#define NETDEV_VPORT_GET_IFINDEX netdev_vport_get_ifindex
-#define NETDEV_FLOW_OFFLOAD_API , LINUX_FLOW_OFFLOAD_API
#else /* !__linux__ */
#define NETDEV_VPORT_GET_IFINDEX NULL
-#define NETDEV_FLOW_OFFLOAD_API
#endif /* __linux__ */
#define VPORT_FUNCTIONS_COMMON \
@@ -1133,8 +1130,7 @@ netdev_vport_get_ifindex(const struct netdev *netdev_)
.get_etheraddr = netdev_vport_get_etheraddr, \
.get_stats = netdev_vport_get_stats, \
.get_pt_mode = netdev_vport_get_pt_mode, \
- .update_flags = netdev_vport_update_flags \
- NETDEV_FLOW_OFFLOAD_API
+ .update_flags = netdev_vport_update_flags
#define TUNNEL_FUNCTIONS_COMMON \
VPORT_FUNCTIONS_COMMON, \