Refactor the function as a pre-step towards supporting more tunnel types. Signed-off-by: Nir Anteby <nant...@nvidia.com> --- lib/netdev-offload-dpdk.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 9fee757..10924de 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -2222,17 +2222,18 @@ struct get_vport_netdev_aux { struct rte_flow_tunnel *tunnel; odp_port_t *odp_port; struct netdev *vport; + const char *type; }; static bool -get_vxlan_netdev_cb(struct netdev *netdev, +get_vport_netdev_cb(struct netdev *netdev, odp_port_t odp_port, void *aux_) { const struct netdev_tunnel_config *tnl_cfg; struct get_vport_netdev_aux *aux = aux_; - if (strcmp(netdev_get_type(netdev), "vxlan")) { + if (!aux->type || strcmp(netdev_get_type(netdev), aux->type)) { return false; } @@ -2254,7 +2255,7 @@ get_vxlan_netdev_cb(struct netdev *netdev, } static struct netdev * -get_vxlan_netdev(const char *dpif_type, +get_vport_netdev(const char *dpif_type, struct rte_flow_tunnel *tunnel, odp_port_t *odp_port) { @@ -2262,22 +2263,15 @@ get_vxlan_netdev(const char *dpif_type, .tunnel = tunnel, .odp_port = odp_port, .vport = NULL, + .type = NULL, }; - netdev_ports_traverse(dpif_type, get_vxlan_netdev_cb, &aux); - return aux.vport; -} - -static struct netdev * -get_vport_netdev(const char *dpif_type, - struct rte_flow_tunnel *tunnel, - odp_port_t *odp_port) -{ if (tunnel->type == RTE_FLOW_ITEM_TYPE_VXLAN) { - return get_vxlan_netdev(dpif_type, tunnel, odp_port); + aux.type = "vxlan"; } + netdev_ports_traverse(dpif_type, get_vport_netdev_cb, &aux); - OVS_NOT_REACHED(); + return aux.vport; } static int -- 1.8.3.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev