![]() |
FD.io VPP
v17.01.1-3-gc6833f8
Vector Packet Processing
|
Include dependency graph for feature.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | vnet_feature_config_main_t_ |
| struct | vnet_feature_main_t |
Macros | |
| #define | VNET_FEATURE_ARC_INIT(x, ...) |
| #define | VNET_FEATURE_INIT(x, ...) |
| #define | VNET_FEATURES(...) (char*[]) { __VA_ARGS__, 0} |
Typedefs | |
| typedef struct _vnet_feature_arc_registration | vnet_feature_arc_registration_t |
| feature registration object More... | |
| typedef clib_error_t *( | vnet_feature_enable_disable_function_t) (u32 sw_if_index, int enable_disable) |
| typedef struct _vnet_feature_registration | vnet_feature_registration_t |
| feature registration object More... | |
| typedef struct vnet_feature_config_main_t_ | vnet_feature_config_main_t |
Functions | |
| void | vnet_config_update_feature_count (vnet_feature_main_t *fm, u8 arc, u32 sw_if_index, int is_add) |
| u32 | vnet_get_feature_index (u8 arc, const char *s) |
| u8 | vnet_get_feature_arc_index (const char *s) |
| vnet_feature_registration_t * | vnet_get_feature_reg (const char *arc_name, const char *node_name) |
| int | vnet_feature_enable_disable_with_index (u8 arc_index, u32 feature_index, u32 sw_if_index, int enable_disable, void *feature_config, u32 n_feature_config_bytes) |
| int | vnet_feature_enable_disable (const char *arc_name, const char *node_name, u32 sw_if_index, int enable_disable, void *feature_config, u32 n_feature_config_bytes) |
| static vnet_feature_config_main_t * | vnet_get_feature_arc_config_main (u8 arc_index) |
| static_always_inline vnet_feature_config_main_t * | vnet_feature_get_config_main (u16 arc) |
| static_always_inline int | vnet_have_features (u8 arc, u32 sw_if_index) |
| static_always_inline u32 | vnet_get_feature_config_index (u8 arc, u32 sw_if_index) |
| static_always_inline void * | vnet_feature_arc_start_with_data (u8 arc, u32 sw_if_index, u32 *next, vlib_buffer_t *b, u32 n_data_bytes) |
| static_always_inline void | vnet_feature_arc_start (u8 arc, u32 sw_if_index, u32 *next0, vlib_buffer_t *b0) |
| static_always_inline void * | vnet_feature_next_with_data (u32 sw_if_index, u32 *next0, vlib_buffer_t *b0, u32 n_data_bytes) |
| static_always_inline void | vnet_feature_next (u32 sw_if_index, u32 *next0, vlib_buffer_t *b0) |
| static_always_inline void | vnet_feature_start_device_input_x1 (u32 sw_if_index, u32 *next0, vlib_buffer_t *b0, u16 buffer_advanced0) |
| static_always_inline void | vnet_feature_start_device_input_x2 (u32 sw_if_index, u32 *next0, u32 *next1, vlib_buffer_t *b0, vlib_buffer_t *b1, u16 buffer_advanced0, u16 buffer_advanced1) |
| static_always_inline void | vnet_feature_start_device_input_x4 (u32 sw_if_index, u32 *next0, u32 *next1, u32 *next2, u32 *next3, vlib_buffer_t *b0, vlib_buffer_t *b1, vlib_buffer_t *b2, vlib_buffer_t *b3, u16 buffer_advanced0, u16 buffer_advanced1, u16 buffer_advanced2, u16 buffer_advanced3) |
| clib_error_t * | vnet_feature_arc_init (vlib_main_t *vm, vnet_config_main_t *vcm, char **feature_start_nodes, int num_feature_start_nodes, vnet_feature_registration_t *first_reg, char ***feature_nodes) |
| Initialize a feature graph arc. More... | |
| void | vnet_interface_features_show (vlib_main_t *vm, u32 sw_if_index) |
| Display the set of driver features configured on a specific interface Called by "show interface" handler. More... | |
Variables | |
| vnet_feature_main_t | feature_main |
| #define VNET_FEATURE_ARC_INIT | ( | x, | |
| ... | |||
| ) |
| #define VNET_FEATURE_INIT | ( | x, | |
| ... | |||
| ) |
| typedef struct _vnet_feature_arc_registration vnet_feature_arc_registration_t |
feature registration object
| typedef struct vnet_feature_config_main_t_ vnet_feature_config_main_t |
| typedef clib_error_t*( vnet_feature_enable_disable_function_t) (u32 sw_if_index, int enable_disable) |
| typedef struct _vnet_feature_registration vnet_feature_registration_t |
feature registration object
| void vnet_config_update_feature_count | ( | vnet_feature_main_t * | fm, |
| u8 | arc, | ||
| u32 | sw_if_index, | ||
| int | is_add | ||
| ) |
| clib_error_t* vnet_feature_arc_init | ( | vlib_main_t * | vm, |
| vnet_config_main_t * | vcm, | ||
| char ** | feature_start_nodes, | ||
| int | num_feature_start_nodes, | ||
| vnet_feature_registration_t * | first_reg, | ||
| char *** | in_feature_nodes | ||
| ) |
Initialize a feature graph arc.
| vm | vlib main structure pointer | |
| vcm | vnet config main structure pointer | |
| feature_start_nodes | names of start-nodes which use this feature graph arc | |
| num_feature_start_nodes | number of start-nodes | |
| first_reg | first element in [an attribute((constructor)) function built, or otherwise created] singly-linked list of feature registrations | |
| [out] | in_feature_nodes | returned vector of topologically-sorted feature node names, for use in show commands |
Definition at line 118 of file registration.c.
Here is the call graph for this function:
Here is the caller graph for this function:| static_always_inline void vnet_feature_arc_start | ( | u8 | arc, |
| u32 | sw_if_index, | ||
| u32 * | next0, | ||
| vlib_buffer_t * | b0 | ||
| ) |
| static_always_inline void* vnet_feature_arc_start_with_data | ( | u8 | arc, |
| u32 | sw_if_index, | ||
| u32 * | next, | ||
| vlib_buffer_t * | b, | ||
| u32 | n_data_bytes | ||
| ) |
| static_always_inline vnet_feature_config_main_t* vnet_feature_get_config_main | ( | u16 | arc | ) |
| static_always_inline void vnet_feature_next | ( | u32 | sw_if_index, |
| u32 * | next0, | ||
| vlib_buffer_t * | b0 | ||
| ) |
| static_always_inline void* vnet_feature_next_with_data | ( | u32 | sw_if_index, |
| u32 * | next0, | ||
| vlib_buffer_t * | b0, | ||
| u32 | n_data_bytes | ||
| ) |
| static_always_inline void vnet_feature_start_device_input_x1 | ( | u32 | sw_if_index, |
| u32 * | next0, | ||
| vlib_buffer_t * | b0, | ||
| u16 | buffer_advanced0 | ||
| ) |
| static_always_inline void vnet_feature_start_device_input_x2 | ( | u32 | sw_if_index, |
| u32 * | next0, | ||
| u32 * | next1, | ||
| vlib_buffer_t * | b0, | ||
| vlib_buffer_t * | b1, | ||
| u16 | buffer_advanced0, | ||
| u16 | buffer_advanced1 | ||
| ) |
| static_always_inline void vnet_feature_start_device_input_x4 | ( | u32 | sw_if_index, |
| u32 * | next0, | ||
| u32 * | next1, | ||
| u32 * | next2, | ||
| u32 * | next3, | ||
| vlib_buffer_t * | b0, | ||
| vlib_buffer_t * | b1, | ||
| vlib_buffer_t * | b2, | ||
| vlib_buffer_t * | b3, | ||
| u16 | buffer_advanced0, | ||
| u16 | buffer_advanced1, | ||
| u16 | buffer_advanced2, | ||
| u16 | buffer_advanced3 | ||
| ) |
|
inlinestatic |
| u8 vnet_get_feature_arc_index | ( | const char * | s | ) |
| static_always_inline u32 vnet_get_feature_config_index | ( | u8 | arc, |
| u32 | sw_if_index | ||
| ) |
| vnet_feature_registration_t* vnet_get_feature_reg | ( | const char * | arc_name, |
| const char * | node_name | ||
| ) |
| static_always_inline int vnet_have_features | ( | u8 | arc, |
| u32 | sw_if_index | ||
| ) |
| void vnet_interface_features_show | ( | vlib_main_t * | vm, |
| u32 | sw_if_index | ||
| ) |
| vnet_feature_main_t feature_main |