diff options
author | guozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com> | 2024-12-27 05:16:17 +0100 |
---|---|---|
committer | guozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com> | 2024-12-27 05:16:17 +0100 |
commit | c2f0206c3c81c500614650aafa7566e0ee587a88 (patch) | |
tree | 60fa7c7168b0702698a8874149b08e5426609a27 /staticd | |
parent | Merge pull request #17525 from famfo/podman-tests (diff) | |
download | frr-c2f0206c3c81c500614650aafa7566e0ee587a88.tar.xz frr-c2f0206c3c81c500614650aafa7566e0ee587a88.zip |
staticd: Reduce the frequency of adding routes
Signed-off-by: guozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>
Diffstat (limited to 'staticd')
-rw-r--r-- | staticd/static_nht.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/staticd/static_nht.c b/staticd/static_nht.c index 6be598434..06d27c6f5 100644 --- a/staticd/static_nht.c +++ b/staticd/static_nht.c @@ -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, |