FD.io VPP
v20.05.1-5-g09f167997
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | ethernet_input_frame_t |
struct | ethernet_max_header_t |
struct | ethernet_interface |
struct | ethernet_type_info_t |
struct | subint_config_t |
struct | main_intf_t |
struct | vlan_intf_t |
struct | vlan_table_t |
struct | qinq_intf_t |
struct | qinq_table_t |
struct | next_by_ethertype_t |
struct | ethernet_address_change_ctx_t |
struct | ethernet_main_t_ |
Macros | |
#define | ETH_INPUT_FRAME_F_SINGLE_SW_IF_IDX (1 << 0) |
#define | ETH_INPUT_FRAME_F_IP4_CKSUM_OK (1 << 1) |
#define | ETHERNET_MIN_PACKET_BYTES 64 |
#define | ETHERNET_MAX_PACKET_BYTES 9216 |
#define | ETHERNET_INTERFACE_FLAGS_STATUS_MASK (0xffff0000) |
#define | ETHERNET_INTERFACE_FLAGS_SET_OPN_MASK (0x0000ffff) |
#define | ETHERNET_INTERFACE_FLAG_STATUS_L3 (1 << 16) |
#define | ETHERNET_INTERFACE_FLAG_DEFAULT_L3 0 |
#define | ETHERNET_INTERFACE_FLAG_ACCEPT_ALL 1 |
#define | ETHERNET_INTERFACE_FLAG_MTU 2 |
#define | ethernet_error(n, c, s) ETHERNET_ERROR_##n, |
#define | SUBINT_CONFIG_MATCH_0_TAG (1<<0) |
#define | SUBINT_CONFIG_MATCH_1_TAG (1<<1) |
#define | SUBINT_CONFIG_MATCH_2_TAG (1<<2) |
#define | SUBINT_CONFIG_MATCH_3_TAG (1<<3) |
#define | SUBINT_CONFIG_VALID (1<<4) |
#define | SUBINT_CONFIG_L2 (1<<5) |
#define | SUBINT_CONFIG_P2P (1<<6) |
#define | ethernet_buffer_get_vlan_count(b) |
Returns the number of VLAN headers in the current Ethernet frame in the buffer. More... | |
#define | ethernet_buffer_set_vlan_count(b, v) |
Sets the number of VLAN headers in the current Ethernet frame in the buffer. More... | |
#define | ethernet_buffer_adjust_vlan_count(b, v) |
Adjusts the vlan count by the delta in 'v'. More... | |
#define | ethernet_buffer_adjust_vlan_count_by_bytes(b, v) |
Adjusts the vlan count by the header size byte delta in 'v'. More... | |
#define | ethernet_buffer_header_size(b) |
Determine the size of the Ethernet headers of the current frame in the buffer. More... | |
Typedefs | |
typedef u32() | ethernet_flag_change_function_t(vnet_main_t *vnm, struct vnet_hw_interface_t *hi, u32 flags) |
typedef struct ethernet_interface | ethernet_interface_t |
typedef void() | ethernet_address_change_function_t(struct ethernet_main_t_ *im, u32 sw_if_index, uword opaque) |
typedef struct ethernet_main_t_ | ethernet_main_t |
Enumerations | |
enum | ethernet_error_t { ETHERNET_N_ERROR } |
Variables | |
vnet_hw_interface_class_t | ethernet_hw_interface_class |
ethernet_main_t | ethernet_main |
vlib_node_registration_t | ethernet_input_node |
(constructor) VLIB_REGISTER_NODE (ethernet_input_node) More... | |
#define ETH_INPUT_FRAME_F_IP4_CKSUM_OK (1 << 1) |
Definition at line 55 of file ethernet.h.
#define ETH_INPUT_FRAME_F_SINGLE_SW_IF_IDX (1 << 0) |
Definition at line 52 of file ethernet.h.
#define ethernet_buffer_adjust_vlan_count | ( | b, | |
v | |||
) |
Adjusts the vlan count by the delta in 'v'.
Definition at line 431 of file ethernet.h.
#define ethernet_buffer_adjust_vlan_count_by_bytes | ( | b, | |
v | |||
) |
Adjusts the vlan count by the header size byte delta in 'v'.
Definition at line 437 of file ethernet.h.
#define ethernet_buffer_get_vlan_count | ( | b | ) |
Returns the number of VLAN headers in the current Ethernet frame in the buffer.
Returns 0, 1, 2 for the known header count. The value 3 indicates the number of headers is not known.
Definition at line 417 of file ethernet.h.
#define ethernet_buffer_header_size | ( | b | ) |
Determine the size of the Ethernet headers of the current frame in the buffer.
This uses the VLAN depth flags that are set by ethernet-input. Because these flags are stored in the vlib_buffer_t "flags" field this count is valid regardless of the node so long as it's checked downstream of ethernet-input; That is, the value is not stored in the opaque space.
Definition at line 452 of file ethernet.h.
#define ethernet_buffer_set_vlan_count | ( | b, | |
v | |||
) |
Sets the number of VLAN headers in the current Ethernet frame in the buffer.
Values 0, 1, 2 indicate the header count. The value 3 indicates the number of headers is not known.
Definition at line 425 of file ethernet.h.
#define ethernet_error | ( | n, | |
c, | |||
s | |||
) | ETHERNET_ERROR_##n, |
Definition at line 188 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_ACCEPT_ALL 1 |
Definition at line 152 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_DEFAULT_L3 0 |
Definition at line 149 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_MTU 2 |
Definition at line 155 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_STATUS_L3 (1 << 16) |
Definition at line 146 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAGS_SET_OPN_MASK (0x0000ffff) |
Definition at line 142 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAGS_STATUS_MASK (0xffff0000) |
Definition at line 141 of file ethernet.h.
#define ETHERNET_MAX_PACKET_BYTES 9216 |
Definition at line 133 of file ethernet.h.
#define ETHERNET_MIN_PACKET_BYTES 64 |
Definition at line 132 of file ethernet.h.
#define SUBINT_CONFIG_L2 (1<<5) |
Definition at line 209 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_0_TAG (1<<0) |
Definition at line 204 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_1_TAG (1<<1) |
Definition at line 205 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_2_TAG (1<<2) |
Definition at line 206 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_3_TAG (1<<3) |
Definition at line 207 of file ethernet.h.
#define SUBINT_CONFIG_P2P (1<<6) |
Definition at line 210 of file ethernet.h.
#define SUBINT_CONFIG_VALID (1<<4) |
Definition at line 208 of file ethernet.h.
typedef void() ethernet_address_change_function_t(struct ethernet_main_t_ *im, u32 sw_if_index, uword opaque) |
Definition at line 270 of file ethernet.h.
typedef u32() ethernet_flag_change_function_t(vnet_main_t *vnm, struct vnet_hw_interface_t *hi, u32 flags) |
Definition at line 130 of file ethernet.h.
typedef struct ethernet_interface ethernet_interface_t |
typedef struct ethernet_main_t_ ethernet_main_t |
enum ethernet_error_t |
Enumerator | |
---|---|
ETHERNET_N_ERROR |
Definition at line 186 of file ethernet.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 482 of file ethernet.h.
|
inlinestatic |
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 83 of file interface.c.
void ethernet_delete_interface | ( | vnet_main_t * | vnm, |
u32 | hw_if_index | ||
) |
Definition at line 378 of file interface.c.
static_always_inline int ethernet_frame_is_any_tagged_x2 | ( | u16 | type0, |
u16 | type1 | ||
) |
Definition at line 92 of file ethernet.h.
static_always_inline int ethernet_frame_is_any_tagged_x4 | ( | u16 | type0, |
u16 | type1, | ||
u16 | type2, | ||
u16 | type3 | ||
) |
static_always_inline int ethernet_frame_is_tagged | ( | u16 | type | ) |
ethernet_interface_t* ethernet_get_interface | ( | ethernet_main_t * | em, |
u32 | hw_if_index | ||
) |
Definition at line 967 of file interface.c.
ethernet_main_t* ethernet_get_main | ( | vlib_main_t * | vm | ) |
|
inlinestatic |
Definition at line 333 of file ethernet.h.
void ethernet_input_init | ( | vlib_main_t * | vm, |
ethernet_main_t * | em | ||
) |
mac_address_t* ethernet_interface_add_del_address | ( | ethernet_main_t * | em, |
u32 | hw_if_index, | ||
const u8 * | address, | ||
u8 | is_add | ||
) |
Definition at line 977 of file interface.c.
void ethernet_register_input_type | ( | vlib_main_t * | vm, |
ethernet_type_t | type, | ||
u32 | node_index | ||
) |
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 331 of file interface.c.
void ethernet_register_l2_input | ( | vlib_main_t * | vm, |
u32 | node_index | ||
) |
void ethernet_register_l3_redirect | ( | vlib_main_t * | vm, |
u32 | node_index | ||
) |
u32 ethernet_set_flags | ( | vnet_main_t * | vnm, |
u32 | hw_if_index, | ||
u32 | flags | ||
) |
Definition at line 426 of file interface.c.
void ethernet_set_rx_redirect | ( | vnet_main_t * | vnm, |
vnet_hw_interface_t * | hi, | ||
u32 | enable | ||
) |
|
inlinestatic |
Definition at line 397 of file ethernet.h.
void ethernet_sw_interface_set_l2_mode | ( | vnet_main_t * | vnm, |
u32 | sw_if_index, | ||
u32 | l2 | ||
) |
void ethernet_sw_interface_set_l2_mode_noport | ( | vnet_main_t * | vnm, |
u32 | sw_if_index, | ||
u32 | l2 | ||
) |
void ethernet_update_adjacency | ( | vnet_main_t * | vnm, |
u32 | sw_if_index, | ||
u32 | ai | ||
) |
Definition at line 198 of file interface.c.
clib_error_t* next_by_ethertype_init | ( | next_by_ethertype_t * | l3_next | ) |
clib_error_t* next_by_ethertype_register | ( | next_by_ethertype_t * | l3_next, |
u32 | ethertype, | ||
u32 | next_index | ||
) |
uword unformat_ethernet_address | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
uword unformat_ethernet_header | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
uword unformat_ethernet_interface | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
Definition at line 310 of file interface.c.
uword unformat_ethernet_type_host_byte_order | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
uword unformat_ethernet_type_net_byte_order | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
uword unformat_mac_address | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
uword unformat_pg_ethernet_header | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
int vnet_create_loopback_interface | ( | u32 * | sw_if_indexp, |
u8 * | mac_address, | ||
u8 | is_specified, | ||
u32 | user_instance | ||
) |
Definition at line 816 of file interface.c.
int vnet_create_sub_interface | ( | u32 | sw_if_index, |
u32 | id, | ||
u32 | flags, | ||
u16 | inner_vlan_id, | ||
u16 | outer_vlan_id, | ||
u32 * | sub_sw_if_index | ||
) |
Definition at line 1044 of file interface.c.
int vnet_delete_loopback_interface | ( | u32 | sw_if_index | ) |
Definition at line 1024 of file interface.c.
int vnet_delete_sub_interface | ( | u32 | sw_if_index | ) |
Definition at line 1086 of file interface.c.
|
inlinestatic |
Definition at line 571 of file ethernet.h.
vnet_hw_interface_class_t ethernet_hw_interface_class |
vlib_node_registration_t ethernet_input_node |
(constructor) VLIB_REGISTER_NODE (ethernet_input_node)
ethernet_main_t ethernet_main |