Now that all providers have implemented the port APIs, validate them on registration.
Acked-by: Eli Britstein <[email protected]> Signed-off-by: Eelco Chaudron <[email protected]> --- v3 changes: - Fixed a newline issue. --- lib/dpif-offload.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/lib/dpif-offload.c b/lib/dpif-offload.c index 79ae6b184..3b4414d5c 100644 --- a/lib/dpif-offload.c +++ b/lib/dpif-offload.c @@ -151,7 +151,9 @@ dpif_offload_module_init(void) for (int i = 0; i < ARRAY_SIZE(base_dpif_offload_classes); i++) { ovs_assert(base_dpif_offload_classes[i]->open && base_dpif_offload_classes[i]->close - && base_dpif_offload_classes[i]->can_offload); + && base_dpif_offload_classes[i]->can_offload + && base_dpif_offload_classes[i]->port_add + && base_dpif_offload_classes[i]->port_del); dpif_offload_register_provider(base_dpif_offload_classes[i]); } @@ -434,10 +436,6 @@ dpif_offload_port_add(struct dpif *dpif, struct netdev *netdev, } LIST_FOR_EACH (offload, dpif_list_node, &collection->list) { - if (!offload->class->port_add) { - continue; - } - if (offload->class->can_offload(offload, netdev)) { int err = offload->class->port_add(offload, netdev, port_no); if (!err) { @@ -470,13 +468,8 @@ dpif_offload_port_del(struct dpif *dpif, odp_port_t port_no) } LIST_FOR_EACH (offload, dpif_list_node, &collection->list) { - int err; - - if (!offload->class->port_del) { - continue; - } + int err = offload->class->port_del(offload, port_no); - err = offload->class->port_del(offload, port_no); if (err) { VLOG_ERR("Failed deleting port_no %d from dpif-offload provider " "%s, error %s", port_no, dpif_offload_name(offload), -- 2.52.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
