]> git.puffer.fish Git - mirror/frr.git/commitdiff
staticd: Reduce the frequency of adding routes 17726/head
authorguozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>
Fri, 27 Dec 2024 04:16:17 +0000 (12:16 +0800)
committerguozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>
Fri, 27 Dec 2024 04:16:17 +0000 (12:16 +0800)
Signed-off-by: guozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>
staticd/static_nht.c

index 6be598434d42af12ca439d5824c9798dbafc3b3c..06d27c6f598b8ce1cab337cece7be6faa9481e2f 100644 (file)
@@ -21,6 +21,7 @@ static void static_nht_update_path(struct static_path *pn, struct prefix *nhp,
                                   uint32_t nh_num, vrf_id_t nh_vrf_id)
 {
        struct static_nexthop *nh;
+       bool route_changed = false;
 
        frr_each(static_nexthop_list, &pn->nexthop_list, nh) {
                if (nh->nh_vrf_id != nh_vrf_id)
@@ -42,8 +43,10 @@ static void static_nht_update_path(struct static_path *pn, struct prefix *nhp,
                        nh->nh_valid = !!nh_num;
 
                if (nh->state == STATIC_START)
-                       static_zebra_route_add(pn, true);
+                       route_changed = true;
        }
+       if (route_changed)
+               static_zebra_route_add(pn, true);
 }
 
 static void static_nht_update_safi(struct prefix *sp, struct prefix *nhp,