]> git.proxmox.com Git - mirror_frr.git/blobdiff - pbrd/pbr_nht.c
Merge pull request #4765 from opensourcerouting/defaults-v2
[mirror_frr.git] / pbrd / pbr_nht.c
index 67a1fe2ffe86d386572e5c4686578c5f3eaf0d86..5ab714e617d458cd131a53516af1b62ec9ebaae6 100644 (file)
@@ -548,20 +548,10 @@ void pbr_nht_delete_individual_nexthop(struct pbr_map_sequence *pbrms)
        struct pbr_nexthop_group_cache find;
        struct pbr_nexthop_cache *pnhc;
        struct pbr_nexthop_cache lup;
-       struct pbr_map *pbrm = pbrms->parent;
-       struct listnode *node;
-       struct pbr_map_interface *pmi;
        struct nexthop *nh;
        enum nexthop_types_t nh_type = 0;
 
-       if (pbrm->valid && pbrms->nhs_installed && pbrm->incoming->count) {
-               for (ALL_LIST_ELEMENTS_RO(pbrm->incoming, node, pmi))
-                       pbr_send_pbr_map(pbrms, pmi, false);
-       }
-
-       pbrm->valid = false;
-       pbrms->nhs_installed = false;
-       pbrms->reason |= PBR_MAP_INVALID_NO_NEXTHOPS;
+       pbr_map_delete_nexthops(pbrms);
 
        memset(&find, 0, sizeof(find));
        snprintf(find.name, sizeof(find.name), "%s", pbrms->internal_nhg_name);
@@ -578,8 +568,6 @@ void pbr_nht_delete_individual_nexthop(struct pbr_map_sequence *pbrms)
 
        hash_release(pbr_nhg_hash, pnhgc);
 
-       _nexthop_del(pbrms->nhg, nh);
-       nexthop_free(nh);
        nexthop_group_delete(&pbrms->nhg);
        XFREE(MTYPE_TMP, pbrms->internal_nhg_name);
 }
@@ -639,7 +627,6 @@ void pbr_nht_delete_group(const char *name)
                        if (pbrms->nhgrp_name
                            && strmatch(pbrms->nhgrp_name, name)) {
                                pbrms->reason |= PBR_MAP_INVALID_NO_NEXTHOPS;
-                               nexthop_group_delete(&pbrms->nhg);
                                pbrms->nhg = NULL;
                                pbrms->internal_nhg_name = NULL;
                                pbrm->valid = false;