FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
interface.c File Reference

Loopback Interfaces. More...

+ Include dependency graph for interface.c:

Go to the source code of this file.

Macros

#define LOOPBACK_MAX_INSTANCE   (16 * 1024)
 

Functions

const u8ethernet_ip4_mcast_dst_addr (void)
 
const u8ethernet_ip6_mcast_dst_addr (void)
 
u8ethernet_build_rewrite (vnet_main_t *vnm, u32 sw_if_index, vnet_link_t link_type, const void *dst_address)
 build a rewrite string to use for sending packets of type 'link_type' to 'dst_address' More...
 
void ethernet_update_adjacency (vnet_main_t *vnm, u32 sw_if_index, u32 ai)
 
static clib_error_tethernet_mac_change (vnet_hw_interface_t *hi, const u8 *old_address, const u8 *mac_address)
 
 VNET_HW_INTERFACE_CLASS (ethernet_hw_interface_class)
 
uword unformat_ethernet_interface (unformat_input_t *input, va_list *args)
 
clib_error_tethernet_register_interface (vnet_main_t *vnm, u32 dev_class_index, u32 dev_instance, const u8 *address, u32 *hw_if_index_return, ethernet_flag_change_function_t flag_change)
 
void ethernet_delete_interface (vnet_main_t *vnm, u32 hw_if_index)
 
u32 ethernet_set_flags (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static uword simulated_ethernet_interface_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 Echo packets back to ethernet/l2-input. More...
 
static u8format_simulated_ethernet_name (u8 *s, va_list *args)
 
static clib_error_tsimulated_ethernet_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static clib_error_tsimulated_ethernet_mac_change (vnet_hw_interface_t *hi, const u8 *old_address, const u8 *mac_address)
 
 VNET_DEVICE_CLASS (ethernet_simulated_device_class)
 
static u32 loopback_instance_alloc (u8 is_specified, u32 want)
 
static int loopback_instance_free (u32 instance)
 
int vnet_create_loopback_interface (u32 *sw_if_indexp, u8 *mac_address, u8 is_specified, u32 user_instance)
 
static clib_error_tcreate_simulated_ethernet_interfaces (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
ethernet_interface_tethernet_get_interface (ethernet_main_t *em, u32 hw_if_index)
 
int vnet_delete_loopback_interface (u32 sw_if_index)
 
int vnet_delete_sub_interface (u32 sw_if_index)
 
static clib_error_tdelete_simulated_ethernet_interfaces (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tdelete_sub_interface (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static vlib_cli_command_t create_simulated_ethernet_interface_command
 (constructor) VLIB_CLI_COMMAND (create_simulated_ethernet_interface_command) More...
 
static vlib_cli_command_t create_loopback_interface_command
 (constructor) VLIB_CLI_COMMAND (create_loopback_interface_command) More...
 
static vlib_cli_command_t delete_simulated_ethernet_interface_command
 (constructor) VLIB_CLI_COMMAND (delete_simulated_ethernet_interface_command) More...
 
static vlib_cli_command_t delete_loopback_interface_command
 (constructor) VLIB_CLI_COMMAND (delete_loopback_interface_command) More...
 
static vlib_cli_command_t delete_sub_interface_command
 (constructor) VLIB_CLI_COMMAND (delete_sub_interface_command) More...
 

Detailed Description

Loopback Interfaces.

This file contains code to manage loopback interfaces.

Definition in file interface.c.

Macro Definition Documentation

◆ LOOPBACK_MAX_INSTANCE

#define LOOPBACK_MAX_INSTANCE   (16 * 1024)

Definition at line 665 of file interface.c.

Function Documentation

◆ create_simulated_ethernet_interfaces()

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

Definition at line 814 of file interface.c.

+ Here is the call graph for this function:

◆ delete_simulated_ethernet_interfaces()

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

Definition at line 945 of file interface.c.

+ Here is the call graph for this function:

◆ delete_sub_interface()

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

Definition at line 974 of file interface.c.

+ Here is the call graph for this function:

◆ ethernet_build_rewrite()

u8* ethernet_build_rewrite ( vnet_main_t vnm,
u32  sw_if_index,
vnet_link_t  link_type,
const void *  dst_address 
)

build a rewrite string to use for sending packets of type 'link_type' to 'dst_address'

Definition at line 81 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ethernet_delete_interface()

void ethernet_delete_interface ( vnet_main_t vnm,
u32  hw_if_index 
)

Definition at line 324 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ethernet_get_interface()

ethernet_interface_t* ethernet_get_interface ( ethernet_main_t em,
u32  hw_if_index 
)

Definition at line 886 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ethernet_ip4_mcast_dst_addr()

const u8* ethernet_ip4_mcast_dst_addr ( void  )

Definition at line 57 of file interface.c.

+ Here is the caller graph for this function:

◆ ethernet_ip6_mcast_dst_addr()

const u8* ethernet_ip6_mcast_dst_addr ( void  )

Definition at line 67 of file interface.c.

+ Here is the caller graph for this function:

◆ ethernet_mac_change()

static clib_error_t* ethernet_mac_change ( vnet_hw_interface_t hi,
const u8 old_address,
const u8 mac_address 
)
static

Definition at line 223 of file interface.c.

+ Here is the call graph for this function:

◆ ethernet_register_interface()

clib_error_t* ethernet_register_interface ( vnet_main_t vnm,
u32  dev_class_index,
u32  dev_instance,
const u8 address,
u32 hw_if_index_return,
ethernet_flag_change_function_t  flag_change 
)

Definition at line 278 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ethernet_set_flags()

u32 ethernet_set_flags ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)

Definition at line 372 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ethernet_update_adjacency()

void ethernet_update_adjacency ( vnet_main_t vnm,
u32  sw_if_index,
u32  ai 
)

Definition at line 196 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_simulated_ethernet_name()

static u8* format_simulated_ethernet_name ( u8 s,
va_list *  args 
)
static

Definition at line 626 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loopback_instance_alloc()

static u32 loopback_instance_alloc ( u8  is_specified,
u32  want 
)
static

Definition at line 668 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ loopback_instance_free()

static int loopback_instance_free ( u32  instance)
static

Definition at line 715 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simulated_ethernet_admin_up_down()

static clib_error_t* simulated_ethernet_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 633 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simulated_ethernet_interface_tx()

static uword simulated_ethernet_interface_tx ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Echo packets back to ethernet/l2-input.

Definition at line 393 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ simulated_ethernet_mac_change()

static clib_error_t* simulated_ethernet_mac_change ( vnet_hw_interface_t hi,
const u8 old_address,
const u8 mac_address 
)
static

Definition at line 643 of file interface.c.

+ Here is the call graph for this function:

◆ unformat_ethernet_interface()

uword unformat_ethernet_interface ( unformat_input_t input,
va_list *  args 
)

Definition at line 257 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_create_loopback_interface()

int vnet_create_loopback_interface ( u32 sw_if_indexp,
u8 mac_address,
u8  is_specified,
u32  user_instance 
)

Definition at line 735 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_delete_loopback_interface()

int vnet_delete_loopback_interface ( u32  sw_if_index)

Definition at line 896 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_delete_sub_interface()

int vnet_delete_sub_interface ( u32  sw_if_index)

Definition at line 916 of file interface.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VNET_DEVICE_CLASS()

VNET_DEVICE_CLASS ( ethernet_simulated_device_class  )
+ Here is the caller graph for this function:

◆ VNET_HW_INTERFACE_CLASS()

VNET_HW_INTERFACE_CLASS ( ethernet_hw_interface_class  )
+ Here is the caller graph for this function:

Variable Documentation

◆ create_loopback_interface_command

vlib_cli_command_t create_loopback_interface_command
static
Initial value:
= {
.path = "create loopback interface",
.short_help = "create loopback interface [mac <mac-addr>] [instance <instance>]",
}
static clib_error_t * create_simulated_ethernet_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface.c:814

(constructor) VLIB_CLI_COMMAND (create_loopback_interface_command)

Definition at line 878 of file interface.c.

◆ create_simulated_ethernet_interface_command

vlib_cli_command_t create_simulated_ethernet_interface_command
static
Initial value:
= {
.path = "loopback create-interface",
.short_help = "loopback create-interface [mac <mac-addr>] [instance <instance>]",
}
static clib_error_t * create_simulated_ethernet_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface.c:814

(constructor) VLIB_CLI_COMMAND (create_simulated_ethernet_interface_command)

Definition at line 859 of file interface.c.

◆ delete_loopback_interface_command

vlib_cli_command_t delete_loopback_interface_command
static
Initial value:
= {
.path = "delete loopback interface",
.short_help = "delete loopback interface intfc <interface>",
}
static clib_error_t * delete_simulated_ethernet_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface.c:945

(constructor) VLIB_CLI_COMMAND (delete_loopback_interface_command)

Definition at line 1030 of file interface.c.

◆ delete_simulated_ethernet_interface_command

vlib_cli_command_t delete_simulated_ethernet_interface_command
static
Initial value:
= {
.path = "loopback delete-interface",
.short_help = "loopback delete-interface intfc <interface>",
}
static clib_error_t * delete_simulated_ethernet_interfaces(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface.c:945

(constructor) VLIB_CLI_COMMAND (delete_simulated_ethernet_interface_command)

Definition at line 1012 of file interface.c.

◆ delete_sub_interface_command

vlib_cli_command_t delete_sub_interface_command
static
Initial value:
= {
.path = "delete sub-interface",
.short_help = "delete sub-interface <interface>",
.function = delete_sub_interface,
}
static clib_error_t * delete_sub_interface(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: interface.c:974

(constructor) VLIB_CLI_COMMAND (delete_sub_interface_command)

Definition at line 1045 of file interface.c.