FD.io VPP  v18.11-rc0-18-g2a3fb1a
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, char *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, 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)
 
 VNET_DEVICE_CLASS (ethernet_simulated_device_class)
 
 VLIB_DEVICE_TX_FUNCTION_MULTIARCH (ethernet_simulated_device_class, simulated_ethernet_interface_tx)
 
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

#define LOOPBACK_MAX_INSTANCE   (16 * 1024)

Definition at line 607 of file interface.c.

Function Documentation

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 756 of file interface.c.

+ Here is the call graph for this function:

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 887 of file interface.c.

+ Here is the call graph for this function:

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

Definition at line 916 of file interface.c.

+ Here is the call graph for this function:

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 79 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ethernet_delete_interface ( vnet_main_t vnm,
u32  hw_if_index 
)

Definition at line 321 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ethernet_interface_t* ethernet_get_interface ( ethernet_main_t em,
u32  hw_if_index 
)

Definition at line 828 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const u8* ethernet_ip4_mcast_dst_addr ( void  )

Definition at line 55 of file interface.c.

+ Here is the caller graph for this function:

const u8* ethernet_ip6_mcast_dst_addr ( void  )

Definition at line 65 of file interface.c.

+ Here is the caller graph for this function:

static clib_error_t* ethernet_mac_change ( vnet_hw_interface_t hi,
char *  mac_address 
)
static

Definition at line 221 of file interface.c.

+ Here is the call graph for this function:

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

Definition at line 275 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 367 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 194 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 576 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 loopback_instance_alloc ( u8  is_specified,
u32  want 
)
static

Definition at line 610 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int loopback_instance_free ( u32  instance)
static

Definition at line 657 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 583 of file interface.c.

+ Here is the call graph for this function:

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.

This node is "special." We know, for example, that all of the vnet_buffer (bX)->sw_if_index[VLIB_TX] values [had better!] match.

Please do not copy the code first and ask questions later.

"These are not the droids we're looking. You can go about your business. Move along..."

Definition at line 397 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_ethernet_interface ( unformat_input_t input,
va_list *  args 
)

Definition at line 254 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VLIB_DEVICE_TX_FUNCTION_MULTIARCH ( ethernet_simulated_device_class  ,
simulated_ethernet_interface_tx   
)

+ Here is the caller graph for this function:

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

Definition at line 677 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_delete_loopback_interface ( u32  sw_if_index)

Definition at line 838 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_delete_sub_interface ( u32  sw_if_index)

Definition at line 858 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_DEVICE_CLASS ( ethernet_simulated_device_class  )

+ Here is the caller graph for this function:

VNET_HW_INTERFACE_CLASS ( ethernet_hw_interface_class  )

+ Here is the caller graph for this function:

Variable Documentation

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:756

(constructor) VLIB_CLI_COMMAND (create_loopback_interface_command)

Definition at line 820 of file interface.c.

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:756

(constructor) VLIB_CLI_COMMAND (create_simulated_ethernet_interface_command)

Definition at line 801 of file interface.c.

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:887

(constructor) VLIB_CLI_COMMAND (delete_loopback_interface_command)

Definition at line 972 of file interface.c.

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:887

(constructor) VLIB_CLI_COMMAND (delete_simulated_ethernet_interface_command)

Definition at line 954 of file interface.c.

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:916

(constructor) VLIB_CLI_COMMAND (delete_sub_interface_command)

Definition at line 987 of file interface.c.