From 26bd685a87cd95b0a864580c5d8696eee203d929 Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Thu, 18 Jan 2024 23:39:32 +0200 Subject: [PATCH] lib: make affinity-map value unique in the yang model It allows us to remove the code that does the same thing manually. Signed-off-by: Igor Ryzhov --- lib/affinitymap.c | 15 --------------- lib/affinitymap.h | 1 - lib/affinitymap_northbound.c | 8 -------- yang/frr-affinity-map.yang | 1 + 4 files changed, 1 insertion(+), 24 deletions(-) diff --git a/lib/affinitymap.c b/lib/affinitymap.c index b748e74884..00f23c1ca3 100644 --- a/lib/affinitymap.c +++ b/lib/affinitymap.c @@ -106,21 +106,6 @@ struct affinity_map *affinity_map_get(const char *name) return NULL; } - -char *affinity_map_name_get(int pos) -{ - struct listnode *node; - struct affinity_map *map; - - if (!affinity_map_master.maps) - return NULL; - - for (ALL_LIST_ELEMENTS_RO(affinity_map_master.maps, node, map)) - if (map->bit_position == pos) - return map->name; - return NULL; -} - bool affinity_map_check_update_hook(const char *affmap_name, uint16_t new_pos) { if (affinity_map_master.check_update_hook) diff --git a/lib/affinitymap.h b/lib/affinitymap.h index 5ce233404f..8e0a798040 100644 --- a/lib/affinitymap.h +++ b/lib/affinitymap.h @@ -63,7 +63,6 @@ extern const struct frr_yang_module_info frr_affinity_map_info; void affinity_map_set(const char *name, int pos); void affinity_map_unset(const char *name); struct affinity_map *affinity_map_get(const char *name); -char *affinity_map_name_get(const int pos); bool affinity_map_check_update_hook(const char *affmap_name, uint16_t new_pos); void affinity_map_update_hook(const char *affmap_name, uint16_t new_pos); diff --git a/lib/affinitymap_northbound.c b/lib/affinitymap_northbound.c index bee2ebe861..1a1ff5f465 100644 --- a/lib/affinitymap_northbound.c +++ b/lib/affinitymap_northbound.c @@ -63,7 +63,6 @@ static int lib_affinity_map_destroy(struct nb_cb_destroy_args *args) static int lib_affinity_map_value_modify(struct nb_cb_modify_args *args) { const char *name; - char *map_name; uint16_t pos; name = yang_dnode_get_string( @@ -74,13 +73,6 @@ static int lib_affinity_map_value_modify(struct nb_cb_modify_args *args) switch (args->event) { case NB_EV_VALIDATE: - map_name = affinity_map_name_get(pos); - if (map_name && - strncmp(map_name, name, AFFINITY_NAME_SIZE) != 0) { - snprintf(args->errmsg, args->errmsg_len, - "bit-position is used by %s.", map_name); - return NB_ERR_VALIDATION; - } if (!affinity_map_check_update_hook(name, pos)) { snprintf( args->errmsg, args->errmsg_len, diff --git a/yang/frr-affinity-map.yang b/yang/frr-affinity-map.yang index 992f5c7535..91b70ff22a 100644 --- a/yang/frr-affinity-map.yang +++ b/yang/frr-affinity-map.yang @@ -68,6 +68,7 @@ module frr-affinity-map { "Affinity Mapping Table"; list affinity-map { key "name"; + unique "value"; description "Affinity Mapping configuration"; leaf name { -- 2.39.5