summaryrefslogtreecommitdiffstats
path: root/staticd
diff options
context:
space:
mode:
authorguozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>2024-12-27 05:16:17 +0100
committerguozhongfeng.gzf <guozhongfeng.gzf@alibaba-inc.com>2024-12-27 05:16:17 +0100
commitc2f0206c3c81c500614650aafa7566e0ee587a88 (patch)
tree60fa7c7168b0702698a8874149b08e5426609a27 /staticd
parentMerge pull request #17525 from famfo/podman-tests (diff)
downloadfrr-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.c5
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,