![]() |
FD.io VPP
v21.06-1-gbb7418cf9
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 697 of file interface_output.c.
| clib_mask_compare_u32 | ( | swif | , |
| sw_if_indices | , | ||
| mask | , | ||
| frame-> | n_vectors | ||
| ) |
Here is the caller graph for this function:
|
static |
Definition at line 705 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 62 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| if | ( | rt-> | is_deleted | ) |
| if | ( | ! | si->flags &VNET_SW_INTERFACE_FLAG_ADMIN_UP)||!(hi->flags &VNET_HW_INTERFACE_FLAG_LINK_UP | ) |
| if | ( | PREDICT_FALSE(vnet_have_features(arc, sw_if_index)) | ) |
Definition at line 454 of file interface_output.c.
| if | ( | hi-> | output_node_thread_runtimes | ) |
| if | ( | f-> | n_vectors, |
| 0 && | r==0||r->frame.queue_id==tf->queue_id | ||
| ) |
| if | ( | n_left | ) |
Definition at line 1184 of file interface_output.c.
| 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 755 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 633 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 883 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 326 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 | ( | span_tx | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ipsec_if_tx | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | interface_output_arc_end | , |
| static | |||
| ) |
| VNET_HW_INTERFACE_ADD_DEL_FUNCTION | ( | vnet_per_buffer_interface_output_hw_interface_add_del | ) |
Here is the caller graph for this function:| static_always_inline void vnet_interface_output_handle_offload | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | b | ||
| ) |
Definition at line 167 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 | sw_if_index_from_buffer | ||
| ) |
Definition at line 288 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 | ||
| ) |
Definition at line 1000 of file interface_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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 1260 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 1086 of file interface_output.c.
| while | ( | n_left | ) |
Definition at line 406 of file interface_output.c.
| int arc_or_subif = 0 |
Definition at line 407 of file interface_output.c.
| vlib_buffer_t ** b = bufs |
Definition at line 1074 of file interface_output.c.
| vlib_buffer_t* bufs[VLIB_FRAME_SIZE] |
Definition at line 400 of file interface_output.c.
Definition at line 396 of file interface_output.c.
| u32 config_index = ~0 |
Definition at line 402 of file interface_output.c.
| int do_tx_offloads = 0 |
Definition at line 408 of file interface_output.c.
| else |
Definition at line 481 of file interface_output.c.
| f = vlib_get_next_frame_internal (vm, node, next_index, 0) |
Definition at line 1080 of file interface_output.c.
Definition at line 393 of file interface_output.c.
| from = vlib_frame_vector_args (frame) |
Definition at line 409 of file interface_output.c.
| hi = vnet_get_sup_hw_interface (vnm, sw_if_index) |
Definition at line 397 of file interface_output.c.
| vnet_interface_main_t * im = &vnm->interface_main |
Definition at line 395 of file interface_output.c.
| vlib_node_registration_t interface_drop |
(constructor) VLIB_REGISTER_NODE (interface_drop)
Definition at line 1036 of file interface_output.c.
| vlib_node_registration_t interface_punt |
(constructor) VLIB_REGISTER_NODE (interface_punt)
Definition at line 1049 of file interface_output.c.
| u64 mask[VLIB_FRAME_SIZE/64] = {} |
Definition at line 1077 of file interface_output.c.
Definition at line 401 of file interface_output.c.
| u32 n_bytes |
Definition at line 401 of file interface_output.c.
Definition at line 1078 of file interface_output.c.
Definition at line 1174 of file interface_output.c.
| n_free = VLIB_FRAME_SIZE |
Definition at line 1078 of file interface_output.c.
Definition at line 1078 of file interface_output.c.
| return frame n_vectors |
Definition at line 1199 of file interface_output.c.
| u16 next_index = VNET_INTERFACE_OUTPUT_NEXT_TX |
Definition at line 404 of file interface_output.c.
Definition at line 392 of file interface_output.c.
| node node_index |
Definition at line 418 of file interface_output.c.
| off = 0 |
Definition at line 1078 of file interface_output.c.
Definition at line 1071 of file interface_output.c.
| vnet_interface_output_runtime_t* rt = (void *) node->runtime_data |
Definition at line 399 of file interface_output.c.
| si = vnet_get_sw_interface (vnm, sw_if_index) |
Definition at line 398 of file interface_output.c.
Definition at line 403 of file interface_output.c.
| u32 sw_if_indices[VLIB_FRAME_SIZE] |
Definition at line 1075 of file interface_output.c.
| more swif = sw_if_indices[0] |
Definition at line 1078 of file interface_output.c.
| tf = vlib_frame_scalar_args (f) |
Definition at line 1073 of file interface_output.c.
| u32 ti = vm->thread_index |
Definition at line 405 of file interface_output.c.
Definition at line 1078 of file interface_output.c.
| to = vlib_frame_vector_args (f) |
Definition at line 1078 of file interface_output.c.
| u64 used_elts[VLIB_FRAME_SIZE/64] = {} |
Definition at line 1076 of file interface_output.c.
| vlib_main_t* vm |
Definition at line 392 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 1202 of file interface_output.c.
| node VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DELETED |
Definition at line 418 of file interface_output.c.
| VNET_INTERFACE_OUTPUT_NEXT_DROP |
Definition at line 418 of file interface_output.c.
| vlib_node_registration_t vnet_interface_output_node |
(constructor) VLIB_REGISTER_NODE (vnet_interface_output_node)
Definition at line 491 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 1061 of file interface_output.c.