static clib_error_t *
show_or_clear_hw_interfaces (vlib_main_t * vm,
unformat_input_t * input,
- vlib_cli_command_t * cmd)
+ vlib_cli_command_t * cmd, int is_show)
{
clib_error_t *error = 0;
vnet_main_t *vnm = vnet_get_main ();
vnet_interface_main_t *im = &vnm->interface_main;
vnet_hw_interface_t *hi;
u32 hw_if_index, *hw_if_indices = 0;
- int i, verbose = -1, is_show, show_bond = 0;
+ int i, verbose = -1, show_bond = 0;
- is_show = strstr (cmd->path, "show") != 0;
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{
/* See if user wants to show a specific interface. */
return error;
}
+static clib_error_t *
+show_hw_interfaces (vlib_main_t * vm,
+ unformat_input_t * input, vlib_cli_command_t * cmd)
+{
+ return show_or_clear_hw_interfaces (vm, input, cmd, 1 /* is_show */ );
+}
+
+static clib_error_t *
+clear_hw_interfaces (vlib_main_t * vm,
+ unformat_input_t * input, vlib_cli_command_t * cmd)
+{
+ return show_or_clear_hw_interfaces (vm, input, cmd, 0 /* is_show */ );
+}
+
+
/*?
* Display more detailed information about all or a list of given interfaces.
* The verboseness of the output can be controlled by the following optional
.path = "show hardware-interfaces",
.short_help = "show hardware-interfaces [brief|verbose|detail] [bond] "
"[<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]]",
- .function = show_or_clear_hw_interfaces,
+ .function = show_hw_interfaces,
};
/* *INDENT-ON* */
.path = "clear hardware-interfaces",
.short_help = "clear hardware-interfaces "
"[<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]]",
- .function = show_or_clear_hw_interfaces,
+ .function = clear_hw_interfaces,
};
/* *INDENT-ON* */
/* Classify filter specified, but no classify filter configured */
if ((a->rx_enable + a->tx_enable + a->drop_enable) && a->filter &&
- (set->table_indices[0] == ~0))
+ (set->table_indices == 0 || set->table_indices[0] == ~0))
return VNET_API_ERROR_NO_SUCH_LABEL;
if (a->rx_enable + a->tx_enable + a->drop_enable)
int drop_enable = 0;
int status = 0;
int filter = 0;
- u32 sw_if_index = ~0;
+ u32 sw_if_index = 0; /* default: any interface */
/* Get a line of input. */
if (!unformat_user (input, unformat_line_input, line_input))