FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
interface_cli.c File Reference

Interface CLI. More...

+ Include dependency graph for interface_cli.c:

Go to the source code of this file.

Functions

static int compare_interface_names (void *a1, void *a2)
 
static clib_error_tshow_or_clear_hw_interfaces (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static int sw_interface_name_compare (void *a1, void *a2)
 
static clib_error_tshow_sw_interfaces (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tclear_interface_counters (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tparse_vlan_sub_interfaces (unformat_input_t *input, vnet_sw_interface_t *template)
 Parse subinterface names. More...
 
static clib_error_tcreate_sub_interfaces (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_state (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_unnumbered (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_hw_class (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tvnet_interface_cli_init (vlib_main_t *vm)
 
static clib_error_trenumber_interface_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tpromiscuous_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tmtu_cmd (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_interface_mac_address (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_tag (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tclear_tag (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_ip_directed_broadcast (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tset_hw_interface_rx_mode (vnet_main_t *vnm, u32 hw_if_index, u32 queue_id, vnet_hw_interface_rx_mode mode)
 
clib_error_tset_hw_interface_change_rx_mode (vnet_main_t *vnm, u32 hw_if_index, u8 queue_id_valid, u32 queue_id, vnet_hw_interface_rx_mode mode)
 
static clib_error_tset_interface_rx_mode (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tshow_interface_rx_placement_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
clib_error_tset_hw_interface_rx_placement (u32 hw_if_index, u32 queue_id, u32 thread_index, u8 is_main)
 
static clib_error_tset_interface_rx_placement (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static vlib_cli_command_t show_hw_interfaces_command
 (constructor) VLIB_CLI_COMMAND (show_hw_interfaces_command) More...
 
static vlib_cli_command_t clear_hw_interface_counters_command
 (constructor) VLIB_CLI_COMMAND (clear_hw_interface_counters_command) More...
 
static vlib_cli_command_t show_sw_interfaces_command
 (constructor) VLIB_CLI_COMMAND (show_sw_interfaces_command) More...
 
static vlib_cli_command_t vnet_cli_interface_command
 (constructor) VLIB_CLI_COMMAND (vnet_cli_interface_command) More...
 
static vlib_cli_command_t vnet_cli_set_interface_command
 (constructor) VLIB_CLI_COMMAND (vnet_cli_set_interface_command) More...
 
static vlib_cli_command_t clear_interface_counters_command
 (constructor) VLIB_CLI_COMMAND (clear_interface_counters_command) More...
 
static vlib_cli_command_t create_sub_interfaces_command
 (constructor) VLIB_CLI_COMMAND (create_sub_interfaces_command) More...
 
static vlib_cli_command_t set_state_command
 (constructor) VLIB_CLI_COMMAND (set_state_command) More...
 
static vlib_cli_command_t set_unnumbered_command
 (constructor) VLIB_CLI_COMMAND (set_unnumbered_command) More...
 
static vlib_cli_command_t set_hw_class_command
 (constructor) VLIB_CLI_COMMAND (set_hw_class_command) More...
 
static vlib_cli_command_t renumber_interface_command
 (constructor) VLIB_CLI_COMMAND (renumber_interface_command) More...
 
static vlib_cli_command_t set_interface_promiscuous_cmd
 (constructor) VLIB_CLI_COMMAND (set_interface_promiscuous_cmd) More...
 
static vlib_cli_command_t set_interface_mtu_cmd
 (constructor) VLIB_CLI_COMMAND (set_interface_mtu_cmd) More...
 
static vlib_cli_command_t set_interface_mac_address_cmd
 (constructor) VLIB_CLI_COMMAND (set_interface_mac_address_cmd) More...
 
static vlib_cli_command_t set_tag_command
 (constructor) VLIB_CLI_COMMAND (set_tag_command) More...
 
static vlib_cli_command_t clear_tag_command
 (constructor) VLIB_CLI_COMMAND (clear_tag_command) More...
 
static vlib_cli_command_t set_ip_directed_broadcast_command
 (constructor) VLIB_CLI_COMMAND (set_ip_directed_broadcast_command) More...
 
static vlib_cli_command_t cmd_set_if_rx_mode
 (constructor) VLIB_CLI_COMMAND (cmd_set_if_rx_mode) More...
 
static vlib_cli_command_t show_interface_rx_placement
 (constructor) VLIB_CLI_COMMAND (show_interface_rx_placement) More...
 
static vlib_cli_command_t cmd_set_if_rx_placement
 (constructor) VLIB_CLI_COMMAND (cmd_set_if_rx_placement) More...
 

Detailed Description

Interface CLI.

Source code for several CLI interface commands.

Definition in file interface_cli.c.

Function Documentation

static clib_error_t* clear_interface_counters ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 492 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* clear_tag ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1254 of file interface_cli.c.

+ Here is the call graph for this function:

static int compare_interface_names ( void *  a1,
void *  a2 
)
static

Definition at line 57 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* create_sub_interfaces ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 673 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* mtu_cmd ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1115 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* parse_vlan_sub_interfaces ( unformat_input_t input,
vnet_sw_interface_t template 
)
static

Parse subinterface names.

The following subinterface syntax is supported. The first two are for backwards compatability:

<intf-name> <id>

  • a subinterface with the name <intf-name>.<id>. The subinterface is a single dot1q vlan with vlan id <id> and exact-match semantics.

<intf-name> <min_id>-<max_id>

  • a set of the above subinterfaces, repeating for each id in the range <min_id> to <max_id>

In the following, exact-match semantics (i.e. the number of vlan tags on the packet must match the number of tags in the configuration) are used only if the keyword exact-match is present. Non-exact match is the default.

<intf-name> <id> dot1q <outer_id> [exact-match]

  • a subinterface with the name <intf-name>.<id>. The subinterface is a single dot1q vlan with vlan id <outer_id>.

<intf-name> <id> dot1q any [exact-match]

  • a subinterface with the name <intf-name>.<id>. The subinterface is a single dot1q vlan with any vlan id.

<intf-name> <id> dot1q <outer_id> inner-dot1q <inner_id> [exact-match]

  • a subinterface with the name <intf-name>.<id>. The subinterface is a double dot1q vlan with outer vlan id <outer_id> and inner vlan id <inner_id>.

<intf-name> <id> dot1q <outer_id> inner-dot1q any [exact-match]

  • a subinterface with the name <intf-name>.<id>. The subinterface is a double dot1q vlan with outer vlan id <id> and any inner vlan id.

<intf-name> <id> dot1q any inner-dot1q any [exact-match]

- a subinterface with the name <intf-name>.<id>. The subinterface
  is a double dot1q vlan with any outer vlan id and any inner vlan id.

For each of the above CLI, there is a duplicate that uses the keyword "dot1ad" in place of the first "dot1q". These interfaces use ethertype 0x88ad in place of 0x8100 for the outer ethertype. Note that for double- tagged packets the inner ethertype is always 0x8100. Also note that the dot1q and dot1ad naming spaces are independent, so it is legal to have both "Gig3/0/0.1 dot1q 100" and "Gig3/0/0.2 dot1ad 100". For example:

<intf-name> <id> dot1ad <outer_id> inner-dot1q <inner_id> [exact-match]

  • a subinterface with the name <intf-name>.<id>. The subinterface is a double dot1ad vlan with outer vlan id <outer_id> and inner vlan id <inner_id>.

<intf-name> <id> untagged

  • a subinterface with the name <intf-name>.<id>. The subinterface has no vlan tags. Only one can be specified per interface.

<intf-name> <id> default

  • a subinterface with the name <intf-name>.<id>. This is associated with a packet that did not match any other configured subinterface on this interface. Only one can be specified per interface.

Definition at line 619 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* promiscuous_cmd ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1079 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* renumber_interface_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1037 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_hw_class ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 988 of file interface_cli.c.

+ Here is the call graph for this function:

clib_error_t* set_hw_interface_change_rx_mode ( vnet_main_t vnm,
u32  hw_if_index,
u8  queue_id_valid,
u32  queue_id,
vnet_hw_interface_rx_mode  mode 
)

Definition at line 1373 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* set_hw_interface_rx_mode ( vnet_main_t vnm,
u32  hw_if_index,
u32  queue_id,
vnet_hw_interface_rx_mode  mode 
)
static

Definition at line 1318 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* set_hw_interface_rx_placement ( u32  hw_if_index,
u32  queue_id,
u32  thread_index,
u8  is_main 
)

Definition at line 1570 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* set_interface_mac_address ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1179 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_interface_rx_mode ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1400 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_interface_rx_placement ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1606 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_ip_directed_broadcast ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1278 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_state ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 891 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_tag ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1229 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* set_unnumbered ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 945 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* show_interface_rx_placement_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1492 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* show_or_clear_hw_interfaces ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 66 of file interface_cli.c.

+ Here is the call graph for this function:

static clib_error_t* show_sw_interfaces ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 268 of file interface_cli.c.

+ Here is the call graph for this function:

static int sw_interface_name_compare ( void *  a1,
void *  a2 
)
static

Definition at line 258 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vnet_interface_cli_init ( vlib_main_t vm)
static

Definition at line 1029 of file interface_cli.c.

+ Here is the caller graph for this function:

Variable Documentation

vlib_cli_command_t clear_hw_interface_counters_command
static
Initial value:
= {
.path = "clear hardware-interfaces",
.short_help = "clear hardware-interfaces "
"[<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]]",
}
static clib_error_t * show_or_clear_hw_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface_cli.c:66

(constructor) VLIB_CLI_COMMAND (clear_hw_interface_counters_command)

Definition at line 249 of file interface_cli.c.

vlib_cli_command_t clear_interface_counters_command
static
Initial value:
= {
.path = "clear interfaces",
.short_help = "clear interfaces",
}
static clib_error_t * clear_interface_counters(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (clear_interface_counters_command)

Definition at line 549 of file interface_cli.c.

vlib_cli_command_t clear_tag_command
static
Initial value:
= {
.path = "clear interface tag",
.short_help = "clear interface tag <interface>",
.function = clear_tag,
}
static clib_error_t * clear_tag(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (clear_tag_command)

Definition at line 1270 of file interface_cli.c.

vlib_cli_command_t cmd_set_if_rx_mode
static
Initial value:
= {
.path = "set interface rx-mode",
.short_help = "set interface rx-mode <interface> [queue <n>] [polling | interrupt | adaptive]",
.function = set_interface_rx_mode,
}
static clib_error_t * set_interface_rx_mode(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (cmd_set_if_rx_mode)

Definition at line 1484 of file interface_cli.c.

vlib_cli_command_t cmd_set_if_rx_placement
static
Initial value:
= {
.path = "set interface rx-placement",
.short_help = "set interface rx-placement <interface> [queue <n>] "
"[worker <n> | main]",
.is_mp_safe = 1,
}
static clib_error_t * set_interface_rx_placement(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (cmd_set_if_rx_placement)

Definition at line 1700 of file interface_cli.c.

vlib_cli_command_t create_sub_interfaces_command
static
Initial value:
= {
.path = "create sub-interfaces",
.short_help = "create sub-interfaces <interface> "
"{<subId> [default|untagged]} | "
"{<subId>-<subId>} | "
"{<subId> dot1q|dot1ad <vlanId>|any [inner-dot1q <vlanId>|any] [exact-match]}",
.function = create_sub_interfaces,
}
static clib_error_t * create_sub_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (create_sub_interfaces_command)

Definition at line 880 of file interface_cli.c.

vlib_cli_command_t renumber_interface_command
static
Initial value:
= {
.path = "renumber interface",
.short_help = "renumber interface <interface> <new-dev-instance>",
}
static clib_error_t * renumber_interface_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (renumber_interface_command)

Definition at line 1071 of file interface_cli.c.

vlib_cli_command_t set_hw_class_command
static
Initial value:
= {
.path = "set interface hw-class",
.short_help = "Set interface hardware class",
.function = set_hw_class,
}
static clib_error_t * set_hw_class(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_hw_class_command)

Definition at line 1021 of file interface_cli.c.

vlib_cli_command_t set_interface_mac_address_cmd
static
Initial value:
= {
.path = "set interface mac address",
.short_help = "set interface mac address <interface> <mac-address>",
}
static clib_error_t * set_interface_mac_address(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_interface_mac_address_cmd)

Definition at line 1221 of file interface_cli.c.

vlib_cli_command_t set_interface_mtu_cmd
static
Initial value:
= {
.path = "set interface mtu",
.short_help = "set interface mtu [packet|ip4|ip6|mpls] <value> <interface>",
.function = mtu_cmd,
}
static clib_error_t * mtu_cmd(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_interface_mtu_cmd)

Definition at line 1171 of file interface_cli.c.

vlib_cli_command_t set_interface_promiscuous_cmd
static
Initial value:
= {
.path = "set interface promiscuous",
.short_help = "set interface promiscuous [on|off] <interface>",
.function = promiscuous_cmd,
}
static clib_error_t * promiscuous_cmd(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_interface_promiscuous_cmd)

Definition at line 1107 of file interface_cli.c.

vlib_cli_command_t set_ip_directed_broadcast_command
static
Initial value:
= {
.path = "set interface ip directed-broadcast",
.short_help = "set interface enable <interface> <enable|disable>",
}
static clib_error_t * set_ip_directed_broadcast(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_ip_directed_broadcast_command)

Definition at line 1310 of file interface_cli.c.

vlib_cli_command_t set_state_command
static
Initial value:
= {
.path = "set interface state",
.short_help = "set interface state <interface> [up|down|punt|enable]",
.function = set_state,
}
static clib_error_t * set_state(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_state_command)

Definition at line 937 of file interface_cli.c.

vlib_cli_command_t set_tag_command
static
Initial value:
= {
.path = "set interface tag",
.short_help = "set interface tag <interface> <tag>",
.function = set_tag,
}
static clib_error_t * set_tag(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_tag_command)

Definition at line 1246 of file interface_cli.c.

vlib_cli_command_t set_unnumbered_command
static
Initial value:
= {
.path = "set interface unnumbered",
.short_help = "set interface unnumbered [<interface> use <interface> | del <interface>]",
.function = set_unnumbered,
}
static clib_error_t * set_unnumbered(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (set_unnumbered_command)

Definition at line 978 of file interface_cli.c.

vlib_cli_command_t show_hw_interfaces_command
static
Initial value:
= {
.path = "show hardware-interfaces",
.short_help = "show hardware-interfaces [brief|verbose|detail] [bond] "
"[<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]]",
}
static clib_error_t * show_or_clear_hw_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface_cli.c:66

(constructor) VLIB_CLI_COMMAND (show_hw_interfaces_command)

Definition at line 228 of file interface_cli.c.

vlib_cli_command_t show_interface_rx_placement
static
Initial value:
= {
.path = "show interface rx-placement",
.short_help = "show interface rx-placement",
}
static clib_error_t * show_interface_rx_placement_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (show_interface_rx_placement)

Definition at line 1562 of file interface_cli.c.

vlib_cli_command_t show_sw_interfaces_command
static
Initial value:
= {
.path = "show interface",
.short_help = "show interface [address|addr|features|feat] [<interface> [<interface> [..]]] [verbose]",
.function = show_sw_interfaces,
.is_mp_safe = 1,
}
static clib_error_t * show_sw_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (show_sw_interfaces_command)

Definition at line 468 of file interface_cli.c.

vlib_cli_command_t vnet_cli_interface_command
static
Initial value:
= {
.path = "interface",
.short_help = "Interface commands",
}

(constructor) VLIB_CLI_COMMAND (vnet_cli_interface_command)

Definition at line 478 of file interface_cli.c.

vlib_cli_command_t vnet_cli_set_interface_command
static
Initial value:
= {
.path = "set interface",
.short_help = "Interface commands",
}

(constructor) VLIB_CLI_COMMAND (vnet_cli_set_interface_command)

Definition at line 485 of file interface_cli.c.