mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
isisd: move flex_algo_delete into flex_algo_destroy
Move flex_algo_delete() content into isis_instance_flex_algo_destroy() because it is called only once. Rename _flex_algo_delete to flex_algo_free() Cosmetic change. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
67e2718e1c
commit
9c0e668050
|
@ -2875,6 +2875,8 @@ int isis_instance_flex_algo_create(struct nb_cb_create_args *args)
|
||||||
|
|
||||||
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
|
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
|
||||||
{
|
{
|
||||||
|
struct listnode *node, *nnode;
|
||||||
|
struct flex_algo *fa;
|
||||||
struct isis_area *area;
|
struct isis_area *area;
|
||||||
uint32_t algorithm;
|
uint32_t algorithm;
|
||||||
|
|
||||||
|
@ -2883,7 +2885,11 @@ int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
|
||||||
|
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
flex_algo_delete(area->flex_algos, algorithm);
|
for (ALL_LIST_ELEMENTS(area->flex_algos->flex_algos, node,
|
||||||
|
nnode, fa)) {
|
||||||
|
if (fa->algorithm == algorithm)
|
||||||
|
flex_algo_free(area->flex_algos, fa);
|
||||||
|
}
|
||||||
lsp_regenerate_schedule(area, area->is_type, 0);
|
lsp_regenerate_schedule(area, area->is_type, 0);
|
||||||
break;
|
break;
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
|
|
|
@ -20,9 +20,6 @@
|
||||||
DEFINE_MTYPE_STATIC(LIB, FLEX_ALGO_DATABASE, "Flex-Algo database");
|
DEFINE_MTYPE_STATIC(LIB, FLEX_ALGO_DATABASE, "Flex-Algo database");
|
||||||
DEFINE_MTYPE_STATIC(LIB, FLEX_ALGO, "Flex-Algo algorithm information");
|
DEFINE_MTYPE_STATIC(LIB, FLEX_ALGO, "Flex-Algo algorithm information");
|
||||||
|
|
||||||
static void _flex_algo_delete(struct flex_algos *flex_algos,
|
|
||||||
struct flex_algo *fa);
|
|
||||||
|
|
||||||
struct flex_algos *flex_algos_alloc(flex_algo_allocator_t allocator,
|
struct flex_algos *flex_algos_alloc(flex_algo_allocator_t allocator,
|
||||||
flex_algo_releaser_t releaser)
|
flex_algo_releaser_t releaser)
|
||||||
{
|
{
|
||||||
|
@ -42,7 +39,7 @@ void flex_algos_free(struct flex_algos *flex_algos)
|
||||||
struct flex_algo *fa;
|
struct flex_algo *fa;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(flex_algos->flex_algos, node, nnode, fa))
|
for (ALL_LIST_ELEMENTS(flex_algos->flex_algos, node, nnode, fa))
|
||||||
_flex_algo_delete(flex_algos, fa);
|
flex_algo_free(flex_algos, fa);
|
||||||
list_delete(&flex_algos->flex_algos);
|
list_delete(&flex_algos->flex_algos);
|
||||||
XFREE(MTYPE_FLEX_ALGO_DATABASE, flex_algos);
|
XFREE(MTYPE_FLEX_ALGO_DATABASE, flex_algos);
|
||||||
}
|
}
|
||||||
|
@ -63,8 +60,7 @@ struct flex_algo *flex_algo_alloc(struct flex_algos *flex_algos,
|
||||||
return fa;
|
return fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _flex_algo_delete(struct flex_algos *flex_algos,
|
void flex_algo_free(struct flex_algos *flex_algos, struct flex_algo *fa)
|
||||||
struct flex_algo *fa)
|
|
||||||
{
|
{
|
||||||
if (flex_algos->releaser)
|
if (flex_algos->releaser)
|
||||||
flex_algos->releaser(fa->data);
|
flex_algos->releaser(fa->data);
|
||||||
|
@ -75,19 +71,6 @@ static void _flex_algo_delete(struct flex_algos *flex_algos,
|
||||||
XFREE(MTYPE_FLEX_ALGO, fa);
|
XFREE(MTYPE_FLEX_ALGO, fa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void flex_algo_delete(struct flex_algos *flex_algos, uint8_t algorithm)
|
|
||||||
{
|
|
||||||
struct listnode *node, *nnode;
|
|
||||||
struct flex_algo *fa;
|
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(flex_algos->flex_algos, node, nnode, fa)) {
|
|
||||||
if (fa->algorithm != algorithm)
|
|
||||||
continue;
|
|
||||||
_flex_algo_delete(flex_algos, fa);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Look up the local flex-algo object by its algorithm number.
|
* @brief Look up the local flex-algo object by its algorithm number.
|
||||||
* @param algorithm flex-algo algorithm number
|
* @param algorithm flex-algo algorithm number
|
||||||
|
|
|
@ -115,10 +115,10 @@ struct flex_algos *flex_algos_alloc(flex_algo_allocator_t allocator,
|
||||||
void flex_algos_free(struct flex_algos *flex_algos);
|
void flex_algos_free(struct flex_algos *flex_algos);
|
||||||
struct flex_algo *flex_algo_alloc(struct flex_algos *flex_algos,
|
struct flex_algo *flex_algo_alloc(struct flex_algos *flex_algos,
|
||||||
uint8_t algorithm, void *arg);
|
uint8_t algorithm, void *arg);
|
||||||
|
void flex_algo_free(struct flex_algos *flex_algos, struct flex_algo *fa);
|
||||||
struct flex_algo *flex_algo_lookup(struct flex_algos *flex_algos,
|
struct flex_algo *flex_algo_lookup(struct flex_algos *flex_algos,
|
||||||
uint8_t algorithm);
|
uint8_t algorithm);
|
||||||
bool flex_algo_definition_cmp(struct flex_algo *fa1, struct flex_algo *fa2);
|
bool flex_algo_definition_cmp(struct flex_algo *fa1, struct flex_algo *fa2);
|
||||||
void flex_algo_delete(struct flex_algos *flex_algos, uint8_t algorithm);
|
|
||||||
bool flex_algo_id_valid(uint16_t algorithm);
|
bool flex_algo_id_valid(uint16_t algorithm);
|
||||||
char *flex_algo_metric_type_print(char *type_str, size_t sz,
|
char *flex_algo_metric_type_print(char *type_str, size_t sz,
|
||||||
enum flex_algo_metric_type metric_type);
|
enum flex_algo_metric_type metric_type);
|
||||||
|
|
Loading…
Reference in a new issue