From 36c7e7cb34ba611e020be9f7ad4a93f9e6a8496d Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Wed, 23 Nov 2022 10:47:56 -0800 Subject: nat: fixed return values of enable/disable call NAT44 enable/disable return status was used instead of appropriate VNET_API_ERROR_ code. Type: fix Signed-off-by: Filip Varga Change-Id: If944866bf3061afdc91284c0ad475135e529bdc4 --- src/plugins/nat/nat44-ed/nat44_ed.c | 12 ++++++------ src/plugins/nat/nat44-ei/nat44_ei.c | 14 ++++++++------ src/plugins/nat/nat44-ei/nat44_ei_api.c | 4 +++- src/vnet/error.h | 4 +++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/plugins/nat/nat44-ed/nat44_ed.c b/src/plugins/nat/nat44-ed/nat44_ed.c index 133c39e28c3..348fff2619d 100644 --- a/src/plugins/nat/nat44-ed/nat44_ed.c +++ b/src/plugins/nat/nat44-ed/nat44_ed.c @@ -59,7 +59,7 @@ static_always_inline void nat_validate_interface_counters (snat_main_t *sm, if (PREDICT_FALSE (sm->enabled)) \ { \ nat_log_err ("plugin enabled"); \ - return 1; \ + return VNET_API_ERROR_FEATURE_ALREADY_ENABLED; \ } \ } \ while (0) @@ -71,7 +71,7 @@ static_always_inline void nat_validate_interface_counters (snat_main_t *sm, if (PREDICT_FALSE (!sm->enabled)) \ { \ nat_log_err ("plugin disabled"); \ - return 1; \ + return VNET_API_ERROR_FEATURE_ALREADY_DISABLED; \ } \ } \ while (0) @@ -2626,19 +2626,19 @@ nat44_plugin_disable () rc = nat44_ed_del_static_mappings (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ed_del_addresses (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ed_del_interfaces (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ed_del_output_interfaces (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; nat44_ed_del_vrf_tables (); diff --git a/src/plugins/nat/nat44-ei/nat44_ei.c b/src/plugins/nat/nat44-ei/nat44_ei.c index 448566d93ce..171ca7dcb4c 100644 --- a/src/plugins/nat/nat44-ei/nat44_ei.c +++ b/src/plugins/nat/nat44-ei/nat44_ei.c @@ -61,7 +61,7 @@ extern vlib_node_registration_t if (PREDICT_FALSE (nm->enabled)) \ { \ nat44_ei_log_err ("plugin enabled"); \ - return 1; \ + return VNET_API_ERROR_FEATURE_ALREADY_ENABLED; \ } \ } \ while (0) @@ -73,7 +73,7 @@ extern vlib_node_registration_t if (PREDICT_FALSE (!nm->enabled)) \ { \ nat44_ei_log_err ("plugin disabled"); \ - return 1; \ + return VNET_API_ERROR_FEATURE_ALREADY_DISABLED; \ } \ } \ while (0) @@ -1221,23 +1221,25 @@ nat44_ei_plugin_disable () nat44_ei_main_per_thread_data_t *tnm; int rc, error = 0; + fail_if_disabled (); + nat_ha_disable (); rc = nat44_ei_del_static_mappings (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ei_del_addresses (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ei_del_interfaces (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; rc = nat44_ei_del_output_interfaces (); if (rc) - error = 1; + error = VNET_API_ERROR_BUG; if (nm->pat) { diff --git a/src/plugins/nat/nat44-ei/nat44_ei_api.c b/src/plugins/nat/nat44-ei/nat44_ei_api.c index 2d83eb7c8ad..8671a556929 100644 --- a/src/plugins/nat/nat44-ei/nat44_ei_api.c +++ b/src/plugins/nat/nat44-ei/nat44_ei_api.c @@ -173,7 +173,9 @@ vl_api_nat44_ei_plugin_enable_disable_t_handler ( rv = nat44_ei_plugin_enable (c); } else - rv = nat44_ei_plugin_disable (); + { + rv = nat44_ei_plugin_disable (); + } REPLY_MACRO (VL_API_NAT44_EI_PLUGIN_ENABLE_DISABLE_REPLY); } diff --git a/src/vnet/error.h b/src/vnet/error.h index 39a609bdb49..3feb8ff04a1 100644 --- a/src/vnet/error.h +++ b/src/vnet/error.h @@ -156,7 +156,9 @@ _ (EAGAIN, -165, "Retry stream call with cursor") \ _ (INVALID_VALUE_4, -166, "Invalid value #4") \ _ (BUSY, -167, "Busy") \ - _ (BUG, -168, "Bug") + _ (BUG, -168, "Bug") \ + _ (FEATURE_ALREADY_DISABLED, -169, "Feature already disabled") \ + _ (FEATURE_ALREADY_ENABLED, -170, "Feature already enabled") typedef enum { -- cgit 1.2.3-korg