NAT: replace format_vnet_sw_interface_name with format_vnet_sw_if_index_name (VPP-1149)
Avoid crash when interface was deleted. Change-Id: I2ac3031c13ca5ad3360495e1c4cb90b0002be5ff Signed-off-by: Matus Fabian <matfabia@cisco.com>
This commit is contained in:
@ -2560,16 +2560,14 @@ u8 * format_snat_static_map_to_resolve (u8 * s, va_list * args)
|
||||
if (m->addr_only)
|
||||
s = format (s, "local %U external %U vrf %d",
|
||||
format_ip4_address, &m->l_addr,
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, m->sw_if_index),
|
||||
format_vnet_sw_if_index_name, vnm, m->sw_if_index,
|
||||
m->vrf_id);
|
||||
else
|
||||
s = format (s, "%U local %U:%d external %U:%d vrf %d",
|
||||
format_snat_protocol, m->proto,
|
||||
format_ip4_address, &m->l_addr, m->l_port,
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, m->sw_if_index), m->e_port,
|
||||
m->vrf_id);
|
||||
format_vnet_sw_if_index_name, vnm, m->sw_if_index,
|
||||
m->e_port, m->vrf_id);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -371,9 +371,8 @@ snat_feature_command_fn (vlib_main_t * vm,
|
||||
{
|
||||
error = clib_error_return (0, "%s %U failed",
|
||||
is_del ? "del" : "add",
|
||||
format_vnet_sw_interface_name,
|
||||
vnm, vnet_get_sw_interface (vnm,
|
||||
sw_if_index));
|
||||
format_vnet_sw_if_index_name,
|
||||
vnm, sw_if_index);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
@ -383,9 +382,8 @@ snat_feature_command_fn (vlib_main_t * vm,
|
||||
{
|
||||
error = clib_error_return (0, "%s %U failed",
|
||||
is_del ? "del" : "add",
|
||||
format_vnet_sw_interface_name,
|
||||
vnm, vnet_get_sw_interface (vnm,
|
||||
sw_if_index));
|
||||
format_vnet_sw_if_index_name,
|
||||
vnm, sw_if_index);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
@ -404,9 +402,8 @@ snat_feature_command_fn (vlib_main_t * vm,
|
||||
{
|
||||
error = clib_error_return (0, "%s %U failed",
|
||||
is_del ? "del" : "add",
|
||||
format_vnet_sw_interface_name,
|
||||
vnm, vnet_get_sw_interface (vnm,
|
||||
sw_if_index));
|
||||
format_vnet_sw_if_index_name,
|
||||
vnm, sw_if_index);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
@ -416,9 +413,8 @@ snat_feature_command_fn (vlib_main_t * vm,
|
||||
{
|
||||
error = clib_error_return (0, "%s %U failed",
|
||||
is_del ? "del" : "add",
|
||||
format_vnet_sw_interface_name,
|
||||
vnm, vnet_get_sw_interface (vnm,
|
||||
sw_if_index));
|
||||
format_vnet_sw_if_index_name,
|
||||
vnm, sw_if_index);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
@ -445,8 +441,8 @@ nat44_show_interfaces_command_fn (vlib_main_t * vm, unformat_input_t * input,
|
||||
/* *INDENT-OFF* */
|
||||
pool_foreach (i, sm->interfaces,
|
||||
({
|
||||
vlib_cli_output (vm, " %U %s", format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, i->sw_if_index),
|
||||
vlib_cli_output (vm, " %U %s", format_vnet_sw_if_index_name, vnm,
|
||||
i->sw_if_index,
|
||||
(nat_interface_is_inside(i) &&
|
||||
nat_interface_is_outside(i)) ? "in out" :
|
||||
(nat_interface_is_inside(i) ? "in" : "out"));
|
||||
@ -455,8 +451,8 @@ nat44_show_interfaces_command_fn (vlib_main_t * vm, unformat_input_t * input,
|
||||
pool_foreach (i, sm->output_feature_interfaces,
|
||||
({
|
||||
vlib_cli_output (vm, " %U output-feature %s",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, i->sw_if_index),
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
i->sw_if_index,
|
||||
(nat_interface_is_inside(i) &&
|
||||
nat_interface_is_outside(i)) ? "in out" :
|
||||
(nat_interface_is_inside(i) ? "in" : "out"));
|
||||
@ -830,14 +826,14 @@ nat44_show_interface_address_command_fn (vlib_main_t * vm,
|
||||
vlib_cli_output (vm, "NAT44 pool address interfaces:");
|
||||
vec_foreach (sw_if_index, sm->auto_add_sw_if_indices)
|
||||
{
|
||||
vlib_cli_output (vm, " %U", format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, *sw_if_index));
|
||||
vlib_cli_output (vm, " %U", format_vnet_sw_if_index_name, vnm,
|
||||
*sw_if_index);
|
||||
}
|
||||
vlib_cli_output (vm, "NAT44 twice-nat pool address interfaces:");
|
||||
vec_foreach (sw_if_index, sm->auto_add_sw_if_indices_twice_nat)
|
||||
{
|
||||
vlib_cli_output (vm, " %U", format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, *sw_if_index));
|
||||
vlib_cli_output (vm, " %U", format_vnet_sw_if_index_name, vnm,
|
||||
*sw_if_index);
|
||||
}
|
||||
/* *INDENT-ON* */
|
||||
|
||||
|
@ -181,22 +181,22 @@ nat64_interface_feature_command_fn (vlib_main_t * vm,
|
||||
case VNET_API_ERROR_NO_SUCH_ENTRY:
|
||||
error =
|
||||
clib_error_return (0, "%U NAT64 feature not enabled.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
sw_if_index);
|
||||
goto done;
|
||||
case VNET_API_ERROR_VALUE_EXIST:
|
||||
error =
|
||||
clib_error_return (0, "%U NAT64 feature already enabled.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
vnm, sw_if_index);
|
||||
goto done;
|
||||
case VNET_API_ERROR_INVALID_VALUE:
|
||||
case VNET_API_ERROR_INVALID_VALUE_2:
|
||||
error =
|
||||
clib_error_return (0,
|
||||
"%U NAT64 feature enable/disable failed.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
sw_if_index);
|
||||
goto done;
|
||||
default:
|
||||
break;
|
||||
@ -216,22 +216,22 @@ nat64_interface_feature_command_fn (vlib_main_t * vm,
|
||||
case VNET_API_ERROR_NO_SUCH_ENTRY:
|
||||
error =
|
||||
clib_error_return (0, "%U NAT64 feature not enabled.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
sw_if_index);
|
||||
goto done;
|
||||
case VNET_API_ERROR_VALUE_EXIST:
|
||||
error =
|
||||
clib_error_return (0, "%U NAT64 feature already enabled.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
sw_if_index);
|
||||
goto done;
|
||||
case VNET_API_ERROR_INVALID_VALUE:
|
||||
case VNET_API_ERROR_INVALID_VALUE_2:
|
||||
error =
|
||||
clib_error_return (0,
|
||||
"%U NAT64 feature enable/disable failed.",
|
||||
format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, sw_if_index));
|
||||
format_vnet_sw_if_index_name, vnm,
|
||||
sw_if_index);
|
||||
goto done;
|
||||
default:
|
||||
break;
|
||||
@ -254,8 +254,8 @@ nat64_cli_interface_walk (snat_interface_t * i, void *ctx)
|
||||
vlib_main_t *vm = ctx;
|
||||
vnet_main_t *vnm = vnet_get_main ();
|
||||
|
||||
vlib_cli_output (vm, " %U %s", format_vnet_sw_interface_name, vnm,
|
||||
vnet_get_sw_interface (vnm, i->sw_if_index),
|
||||
vlib_cli_output (vm, " %U %s", format_vnet_sw_if_index_name, vnm,
|
||||
i->sw_if_index,
|
||||
(nat_interface_is_inside (i)
|
||||
&& nat_interface_is_outside (i)) ? "in out" :
|
||||
nat_interface_is_inside (i) ? "in" : "out");
|
||||
|
Reference in New Issue
Block a user