40 #ifndef included_vnet_config_h 41 #define included_vnet_config_h 99 default_end_node_index;
132 n =
round_pow2 (n_data_bytes,
sizeof (d[0])) /
sizeof (d[0]);
138 *config_index = (i + n + 1);
146 char *start_node_names[],
147 int n_start_node_names,
148 char *feature_node_names[],
int n_feature_node_names);
157 void *feature_config,
158 u32 n_feature_config_bytes);
164 void *feature_config,
165 u32 n_feature_config_bytes);
169 u32 config_string_heap_index,
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)
vnet_config_feature_t * features
__clib_export void heap_dealloc(void *v, uword handle)
#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 vnet_config_modify_end_node(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_string_heap_index, u32 end_node_index)
u32 * node_index_by_feature_index
void vnet_config_del(vnet_config_main_t *cm, u32 config_id)
static void vnet_config_feature_free(vnet_config_feature_t *f)
static void * vnet_get_config_data(vnet_config_main_t *cm, u32 *config_index, u32 *next_index, u32 n_data_bytes)
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)
u32 * config_pool_index_by_user_index
static void vnet_config_free(vnet_config_main_t *cm, vnet_config_t *c)
sll srl srl sll sra u16x4 i
#define vec_free(V)
Free vector's memory (no header).
static uword round_pow2(uword x, uword pow2)
nat44_ei_hairpin_src_next_t next_index
u8 * vnet_config_format_features(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_index, u8 *s)
vnet_config_t * config_pool
#define vec_foreach(var, vec)
Vector iterator.
uword * config_string_hash
u32 config_string_heap_index