40 #ifndef included_vnet_config_h 41 #define included_vnet_config_h 126 n =
round_pow2 (n_data_bytes,
sizeof (d[0])) /
sizeof (d[0]);
132 *config_index = (i + n + 1);
140 char * start_node_names[],
141 int n_start_node_names,
142 char * feature_node_names[],
143 int n_feature_node_names);
150 void * feature_config,
151 u32 n_feature_config_bytes);
157 void * feature_config,
158 u32 n_feature_config_bytes);
always_inline uword round_pow2(uword x, uword pow2)
u32 vnet_config_add_feature(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_id, u32 feature_index, void *feature_config, u32 n_feature_config_bytes)
sll srl srl sll sra u16x4 i
vnet_config_feature_t * features
#define heap_elt_at_index(v, index)
u32 config_string_heap_handle
void vnet_config_init(vlib_main_t *vm, vnet_config_main_t *cm, char *start_node_names[], int n_start_node_names, char *feature_node_names[], int n_feature_node_names)
u32 * config_string_vector
u32 * node_index_by_feature_index
always_inline void vnet_config_free(vnet_config_main_t *cm, vnet_config_t *c)
u32 vnet_config_del_feature(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_id, u32 feature_index, void *feature_config, u32 n_feature_config_bytes)
#define vec_free(V)
Free vector's memory (no header).
always_inline void vnet_config_feature_free(vnet_config_feature_t *f)
void heap_dealloc(void *v, uword handle)
vnet_config_t * config_pool
#define vec_foreach(var, vec)
Vector iterator.
always_inline void * vnet_get_config_data(vnet_config_main_t *cm, u32 *config_index, u32 *next_index, u32 n_data_bytes)
uword * config_string_hash
u32 config_string_heap_index