![]() |
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Include dependency graph for interface_output.c:Go to the source code of this file.
Data Structures | |
| struct | interface_output_trace_t |
| struct | vnet_error_trace_t_ |
Typedefs | |
| typedef struct vnet_error_trace_t_ | vnet_error_trace_t |
Enumerations | |
| enum | vnet_error_disposition_t { VNET_ERROR_DISPOSITION_DROP, VNET_ERROR_DISPOSITION_PUNT, VNET_ERROR_N_DISPOSITION } |
| typedef struct vnet_error_trace_t_ vnet_error_trace_t |
| Enumerator | |
|---|---|
| VNET_ERROR_DISPOSITION_DROP | |
| VNET_ERROR_DISPOSITION_PUNT | |
| VNET_ERROR_N_DISPOSITION | |
Definition at line 715 of file interface_output.c.
| clib_mask_compare_u32 | ( | swif | , |
| sw_if_indices | , | ||
| mask | , | ||
| frame-> | n_vectors | ||
| ) |
|
static |
Definition at line 723 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline void enqueu_to_tx_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vnet_hw_interface_t * | hi, | ||
| u32 * | from, | ||
| u32 | n_vectors | ||
| ) |
Definition at line 63 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| if | ( | ! | si->flags &VNET_SW_INTERFACE_FLAG_ADMIN_UP)||!(hi->flags &VNET_HW_INTERFACE_FLAG_LINK_UP | ) |
| if | ( | f-> | n_vectors, |
| 0 && | r==0||r->frame.queue_id==tf->queue_id | ||
| ) |
Definition at line 473 of file interface_output.c.
| if | ( | hi-> | output_node_thread_runtimes | ) |
| if | ( | n_left | ) |
Definition at line 1202 of file interface_output.c.
| if | ( | PREDICT_FALSE(vnet_have_features(arc, sw_if_index)) | ) |
| if | ( | rt-> | is_deleted | ) |
| VLIB_NODE_FN() interface_drop | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame | ||
| ) |
| static_always_inline uword interface_drop_punt | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame, | ||
| vnet_error_disposition_t | disposition | ||
| ) |
Definition at line 773 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VLIB_NODE_FN() interface_punt | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame | ||
| ) |
|
static |
Definition at line 651 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 901 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline void store_tx_frame_scalar_data | ( | vnet_hw_if_output_node_runtime_t * | r, |
| vnet_hw_if_tx_frame_t * | tf | ||
| ) |
Definition at line 346 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| vlib_increment_combined_counter | ( | ccm | , |
| ti | , | ||
| sw_if_index | , | ||
| n_buffers | , | ||
| n_bytes | |||
| ) |
| vlib_put_next_frame | ( | vm | , |
| node | , | ||
| next_index | , | ||
| 0 | |||
| ) |
| vlib_put_next_frame | ( | vm | , |
| node | , | ||
| next_index | , | ||
| VLIB_FRAME_SIZE - | n_frame2 | ||
| ) |
| VNET_FEATURE_ARC_INIT | ( | interface_output | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | interface_output_arc_end | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ipsec_if_tx | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | span_tx | , |
| static | |||
| ) |
| VNET_HW_INTERFACE_ADD_DEL_FUNCTION | ( | vnet_per_buffer_interface_output_hw_interface_add_del | ) |
| static_always_inline void vnet_interface_output_handle_offload | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | b | ||
| ) |
Definition at line 168 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline uword vnet_interface_output_node_inline | ( | vlib_main_t * | vm, |
| u32 | sw_if_index, | ||
| vlib_combined_counter_main_t * | ccm, | ||
| vlib_buffer_t ** | b, | ||
| u32 | config_index, | ||
| u8 | arc, | ||
| u32 | n_left, | ||
| int | do_tx_offloads, | ||
| int | arc_or_subif | ||
| ) |
|
static |
| static_always_inline void vnet_interface_pcap_tx_trace | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame, | ||
| int | in_interface_ouput | ||
| ) |
Definition at line 289 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void vnet_pcap_drop_trace_filter_add_del | ( | u32 | error_index, |
| int | is_add | ||
| ) |
| clib_error_t* vnet_per_buffer_interface_output_hw_interface_add_del | ( | vnet_main_t * | vnm, |
| u32 | hw_if_index, | ||
| u32 | is_create | ||
| ) |
| VLIB_NODE_FN() vnet_per_buffer_interface_output_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame | ||
| ) |
| void vnet_set_interface_output_node | ( | vnet_main_t * | vnm, |
| u32 | hw_if_index, | ||
| u32 | node_index | ||
| ) |
Set interface output node - for interface registered without its output/tx nodes created because its VNET_DEVICE_CLASS did not specify any tx_function.
This is typically the case for tunnel interfaces.
Definition at line 1278 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| while | ( | n_left >= | 8 | ) |
Definition at line 1104 of file interface_output.c.
| while | ( | n_left | ) |
Definition at line 1120 of file interface_output.c.
Definition at line 426 of file interface_output.c.
| int arc_or_subif = 0 |
Definition at line 427 of file interface_output.c.
| vlib_buffer_t ** b = bufs |
Definition at line 1092 of file interface_output.c.
| vlib_buffer_t* bufs[VLIB_FRAME_SIZE] |
Definition at line 420 of file interface_output.c.
Definition at line 416 of file interface_output.c.
| u32 config_index = ~0 |
Definition at line 422 of file interface_output.c.
| int do_tx_offloads = 0 |
Definition at line 428 of file interface_output.c.
| else |
Definition at line 500 of file interface_output.c.
| f = vlib_get_next_frame_internal (vm, node, next_index, 0) |
Definition at line 1098 of file interface_output.c.
Definition at line 413 of file interface_output.c.
| from = vlib_frame_vector_args (frame) |
Definition at line 429 of file interface_output.c.
| hi = vnet_get_sup_hw_interface (vnm, sw_if_index) |
Definition at line 417 of file interface_output.c.
| vnet_interface_main_t * im = &vnm->interface_main |
Definition at line 415 of file interface_output.c.
| vlib_node_registration_t interface_drop |
(constructor) VLIB_REGISTER_NODE (interface_drop)
Definition at line 1054 of file interface_output.c.
| vlib_node_registration_t interface_punt |
(constructor) VLIB_REGISTER_NODE (interface_punt)
Definition at line 1067 of file interface_output.c.
| u64 mask[VLIB_FRAME_SIZE/64] = {} |
Definition at line 1095 of file interface_output.c.
Definition at line 421 of file interface_output.c.
| u32 n_bytes |
Definition at line 421 of file interface_output.c.
Definition at line 1096 of file interface_output.c.
Definition at line 1192 of file interface_output.c.
| n_free = VLIB_FRAME_SIZE |
Definition at line 1096 of file interface_output.c.
Definition at line 1096 of file interface_output.c.
| return frame n_vectors |
Definition at line 1217 of file interface_output.c.
| u16 next_index = VNET_INTERFACE_OUTPUT_NEXT_TX |
Definition at line 424 of file interface_output.c.
Definition at line 412 of file interface_output.c.
| node node_index |
Definition at line 440 of file interface_output.c.
| off = 0 |
Definition at line 1096 of file interface_output.c.
Definition at line 1089 of file interface_output.c.
| vnet_interface_output_runtime_t* rt = (void *) node->runtime_data |
Definition at line 419 of file interface_output.c.
| si = vnet_get_sw_interface (vnm, sw_if_index) |
Definition at line 418 of file interface_output.c.
Definition at line 423 of file interface_output.c.
| u32 sw_if_indices[VLIB_FRAME_SIZE] |
Definition at line 1093 of file interface_output.c.
| more swif = sw_if_indices[0] |
Definition at line 1096 of file interface_output.c.
| tf = vlib_frame_scalar_args (f) |
Definition at line 1091 of file interface_output.c.
| u32 ti = vm->thread_index |
Definition at line 425 of file interface_output.c.
Definition at line 1096 of file interface_output.c.
| to = vlib_frame_vector_args (f) |
Definition at line 1096 of file interface_output.c.
| u64 used_elts[VLIB_FRAME_SIZE/64] = {} |
Definition at line 1094 of file interface_output.c.
| vlib_main_t* vm |
Definition at line 412 of file interface_output.c.
| vlib_node_registration_t vnet_interface_output_arc_end_node |
(constructor) VLIB_REGISTER_NODE (vnet_interface_output_arc_end_node)
Definition at line 1220 of file interface_output.c.
| node VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DELETED |
Definition at line 440 of file interface_output.c.
| VNET_INTERFACE_OUTPUT_NEXT_DROP |
Definition at line 439 of file interface_output.c.
| vlib_node_registration_t vnet_interface_output_node |
(constructor) VLIB_REGISTER_NODE (vnet_interface_output_node)
Definition at line 510 of file interface_output.c.
| vlib_node_registration_t vnet_per_buffer_interface_output_node |
(constructor) VLIB_REGISTER_NODE (vnet_per_buffer_interface_output_node)
Definition at line 1079 of file interface_output.c.