diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/nat/nat44-ed/nat44_ed.c | 12 | ||||
-rw-r--r-- | src/plugins/nat/nat44-ei/nat44_ei.c | 14 | ||||
-rw-r--r-- | src/plugins/nat/nat44-ei/nat44_ei_api.c | 4 | ||||
-rw-r--r-- | 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 { |