FD.io VPP
v16.06
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
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_main_t |
Macros | |
#define | ETHERNET_MIN_PACKET_BYTES 64 |
#define | ETHERNET_MAX_PACKET_BYTES 9216 |
#define | ETHERNET_INTERFACE_FLAG_ACCEPT_ALL (1 << 0) |
#define | ETHERNET_INTERFACE_FLAG_CONFIG_PROMISC(flags) (((flags) & ~ETHERNET_INTERFACE_FLAG_ACCEPT_ALL) == 0) |
#define | ETHERNET_INTERFACE_FLAG_MTU (1 << 1) |
#define | ETHERNET_INTERFACE_FLAG_CONFIG_MTU(flags) ((flags) & ETHERNET_INTERFACE_FLAG_MTU) |
#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 | 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 |
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 ethernet_buffer_adjust_vlan_count | ( | b, | |
v | |||
) |
Adjusts the vlan count by the delta in 'v'.
Definition at line 329 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 335 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 315 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 350 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 323 of file ethernet.h.
#define ethernet_error | ( | n, | |
c, | |||
s | |||
) | ETHERNET_ERROR_##n, |
Definition at line 116 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_ACCEPT_ALL (1 << 0) |
Definition at line 81 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_CONFIG_MTU | ( | flags | ) | ((flags) & ETHERNET_INTERFACE_FLAG_MTU) |
Definition at line 87 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_CONFIG_PROMISC | ( | flags | ) | (((flags) & ~ETHERNET_INTERFACE_FLAG_ACCEPT_ALL) == 0) |
Definition at line 82 of file ethernet.h.
#define ETHERNET_INTERFACE_FLAG_MTU (1 << 1) |
Definition at line 86 of file ethernet.h.
#define ETHERNET_MAX_PACKET_BYTES 9216 |
Definition at line 75 of file ethernet.h.
#define ETHERNET_MIN_PACKET_BYTES 64 |
Definition at line 74 of file ethernet.h.
#define SUBINT_CONFIG_L2 (1<<5) |
Definition at line 136 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_0_TAG (1<<0) |
Definition at line 131 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_1_TAG (1<<1) |
Definition at line 132 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_2_TAG (1<<2) |
Definition at line 133 of file ethernet.h.
#define SUBINT_CONFIG_MATCH_3_TAG (1<<3) |
Definition at line 134 of file ethernet.h.
#define SUBINT_CONFIG_VALID (1<<4) |
Definition at line 135 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 72 of file ethernet.h.
typedef struct ethernet_interface ethernet_interface_t |
enum ethernet_error_t |
Enumerator | |
---|---|
ETHERNET_N_ERROR |
Definition at line 115 of file ethernet.h.
always_inline u32 eth_create_valid_subint_match_flags | ( | u32 | num_tags | ) |
always_inline u32 eth_identify_subint | ( | vnet_hw_interface_t * | hi, |
vlib_buffer_t * | b0, | ||
u32 | match_flags, | ||
main_intf_t * | main_intf, | ||
vlan_intf_t * | vlan_intf, | ||
qinq_intf_t * | qinq_intf, | ||
u32 * | new_sw_if_index, | ||
u8 * | error0, | ||
u32 * | is_l2 | ||
) |
always_inline u32 eth_mac_equal | ( | u8 * | mac1, |
u8 * | mac2 | ||
) |
always_inline void eth_vlan_table_lookups | ( | ethernet_main_t * | em, |
vnet_main_t * | vnm, | ||
u32 | port_sw_if_index0, | ||
u16 | first_ethertype, | ||
u16 | outer_id, | ||
u16 | inner_id, | ||
vnet_hw_interface_t ** | hi, | ||
main_intf_t ** | main_intf, | ||
vlan_intf_t ** | vlan_intf, | ||
qinq_intf_t ** | qinq_intf | ||
) |
Definition at line 387 of file ethernet.h.
always_inline ethernet_header_t* ethernet_buffer_get_header | ( | vlib_buffer_t * | b | ) |
void ethernet_delete_interface | ( | vnet_main_t * | vnm, |
u32 | hw_if_index | ||
) |
Definition at line 205 of file interface.c.
ethernet_interface_t* ethernet_get_interface | ( | ethernet_main_t * | em, |
u32 | hw_if_index | ||
) |
Definition at line 451 of file interface.c.
ethernet_main_t* ethernet_get_main | ( | vlib_main_t * | vm | ) |
always_inline ethernet_type_info_t* ethernet_get_type_info | ( | ethernet_main_t * | em, |
ethernet_type_t | type | ||
) |
Definition at line 229 of file ethernet.h.
|
inlinestatic |
Definition at line 56 of file ethernet.h.
always_inline u64 ethernet_mac_address_u64 | ( | u8 * | a | ) |
Definition at line 48 of file ethernet.h.
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, | ||
u8 * | address, | ||
u32 * | hw_if_index_return, | ||
ethernet_flag_change_function_t | flag_change | ||
) |
Definition at line 157 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 243 of file interface.c.
void ethernet_set_rx_redirect | ( | vnet_main_t * | vnm, |
vnet_hw_interface_t * | hi, | ||
u32 | enable | ||
) |
always_inline void ethernet_setup_node | ( | vlib_main_t * | vm, |
u32 | node_index | ||
) |
Definition at line 293 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 | ||
) |
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 136 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_pg_ethernet_header | ( | unformat_input_t * | input, |
va_list * | args | ||
) |
int vnet_arp_set_ip4_over_ethernet | ( | vnet_main_t * | vnm, |
u32 | sw_if_index, | ||
u32 | fib_index, | ||
void * | a_arg, | ||
int | is_static | ||
) |
int vnet_arp_unset_ip4_over_ethernet | ( | vnet_main_t * | vnm, |
u32 | sw_if_index, | ||
u32 | fib_index, | ||
void * | a_arg | ||
) |
Definition at line 349 of file interface.c.
int vnet_delete_loopback_interface | ( | u32 | sw_if_index | ) |
Definition at line 459 of file interface.c.
always_inline ethernet_main_t* vnet_get_ethernet_main | ( | void | ) |
int vnet_proxy_arp_fib_reset | ( | u32 | fib_id | ) |
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 |
Definition at line 226 of file ethernet.h.