Now that all providers have implemented the port APIs, validate them on registration.
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 434f78950..b67d4ab49 100644 --- a/lib/dpif-offload.c +++ b/lib/dpif-offload.c @@ -151,7 +151,9 @@ dp_offload_initialize(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]); } @@ -439,10 +441,6 @@ dpif_offload_port_add(struct dpif *dpif, struct netdev *netdev, } LIST_FOR_EACH (offload, dpif_list_node, &dp_offload->offload_providers) { - 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) { @@ -474,13 +472,8 @@ dpif_offload_port_del(struct dpif *dpif, odp_port_t port_no) } LIST_FOR_EACH (offload, dpif_list_node, &dp_offload->offload_providers) { - 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
