]> git.puffer.fish Git - mirror/frr.git/commitdiff
Revert "lib : fix duplicate prefix list delete"
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 22 Sep 2023 15:24:16 +0000 (12:24 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 22 Sep 2023 15:24:16 +0000 (12:24 -0300)
This reverts commit 394ed767e7207805a6d916b01b1f1d4743c03dd1.

lib/plist.c

index d8ce83d219ead532a474fce9c1078f2d120a4433..e286a32f9212ba1b699fba7a5a9eaf4df8f0ac0b 100644 (file)
@@ -336,22 +336,6 @@ prefix_list_entry_lookup(struct prefix_list *plist, struct prefix *prefix,
        return NULL;
 }
 
-static bool
-prefix_list_entry_lookup_prefix(struct prefix_list *plist,
-                               struct prefix_list_entry *plist_entry)
-{
-       struct prefix_list_entry *pentry = NULL;
-
-       for (pentry = plist->head; pentry; pentry = pentry->next) {
-               if (pentry == plist_entry)
-                       continue;
-               if (prefix_same(&pentry->prefix, &plist_entry->prefix))
-                       return true;
-       }
-
-       return false;
-}
-
 static void trie_walk_affected(size_t validbits, struct pltrie_table *table,
                               uint8_t byte, struct prefix_list_entry *object,
                               void (*fn)(struct prefix_list_entry *object,
@@ -420,16 +404,12 @@ static void prefix_list_trie_del(struct prefix_list *plist,
 
 
 void prefix_list_entry_delete(struct prefix_list *plist,
-                             struct prefix_list_entry *pentry, int update_list)
+                             struct prefix_list_entry *pentry,
+                             int update_list)
 {
-       bool duplicate = false;
-
        if (plist == NULL || pentry == NULL)
                return;
 
-       if (prefix_list_entry_lookup_prefix(plist, pentry))
-               duplicate = true;
-
        prefix_list_trie_del(plist, pentry);
 
        if (pentry->prev)
@@ -441,10 +421,8 @@ void prefix_list_entry_delete(struct prefix_list *plist,
        else
                plist->tail = pentry->prev;
 
-       if (!duplicate)
-               route_map_notify_pentry_dependencies(plist->name, pentry,
-                                                    RMAP_EVENT_PLIST_DELETED);
-
+       route_map_notify_pentry_dependencies(plist->name, pentry,
+                                            RMAP_EVENT_PLIST_DELETED);
        prefix_list_entry_free(pentry);
 
        plist->count--;
@@ -579,15 +557,11 @@ static void prefix_list_entry_add(struct prefix_list *plist,
 void prefix_list_entry_update_start(struct prefix_list_entry *ple)
 {
        struct prefix_list *pl = ple->pl;
-       bool duplicate = false;
 
        /* Not installed, nothing to do. */
        if (!ple->installed)
                return;
 
-       if (prefix_list_entry_lookup_prefix(pl, ple))
-               duplicate = true;
-
        prefix_list_trie_del(pl, ple);
 
        /* List manipulation: shameless copy from `prefix_list_entry_delete`. */
@@ -600,9 +574,8 @@ void prefix_list_entry_update_start(struct prefix_list_entry *ple)
        else
                pl->tail = ple->prev;
 
-       if (!duplicate)
-               route_map_notify_pentry_dependencies(pl->name, ple,
-                                                    RMAP_EVENT_PLIST_DELETED);
+       route_map_notify_pentry_dependencies(pl->name, ple,
+                                            RMAP_EVENT_PLIST_DELETED);
        pl->count--;
 
        route_map_notify_dependencies(pl->name, RMAP_EVENT_PLIST_DELETED);