40 #ifndef included_vnet_config_h 41 #define included_vnet_config_h 123 u32 * config_index,
u32 * next_index,
u32 n_data_bytes)
131 n =
round_pow2 (n_data_bytes,
sizeof (d[0])) /
sizeof (d[0]);
137 *config_index = (i + n + 1);
145 char *start_node_names[],
146 int n_start_node_names,
147 char *feature_node_names[],
int n_feature_node_names);
154 void *feature_config,
155 u32 n_feature_config_bytes);
161 void *feature_config,
162 u32 n_feature_config_bytes);
166 u32 config_index,
u8 * s);
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
#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
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)
#define vec_free(V)
Free vector's memory (no header).
static uword round_pow2(uword x, uword pow2)
void heap_dealloc(void *v, uword handle)
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