From df22720c7af9fab801f2f7b3b69afd05e6e511e9 Mon Sep 17 00:00:00 2001
From: Alex Kudentsov <43482574+alexk37@users.noreply.github.com>
Date: Tue, 6 Oct 2026 13:25:22 +0700
Subject: bgp: T9404: do not render "bgp default local-preference" when the
value is 100
FRR does not print "bgp default local-preference 100" in show
running-config because 100 is its default, so frr-reload never finds the
line in the running config and sends it again on every reload. The
command handler calls bgp_clear_star_soft_in() whether or not the value
changed, so every reload ran "clear bgp * soft in" (once in pass 0 and
twice in pass 1), a full inbound re-evaluation of every peer.
Add the default (100) to the XML definition of parameters default
local-pref. Templates cannot query the XML definition while rendering,
so frrender takes the value from the config defaults of "parameters
default" (conf.get_config_defaults) and adds it to the BGP dict as the
key xml_default_local_pref, for the global instance and for every VRF
instance. bgpd.frr.j2 renders the line only when the configured value
differs from xml_default_local_pref, so the value 100 is not hardcoded
in the template. A real value change (100 to 200, or 200 to 100) is
still sent: frr-reload sees the difference between the rendered file and
the running config.
---
interface-definitions/include/bgp/protocol-common-config.xml.i | 1 +
1 file changed, 1 insertion(+)
(limited to 'interface-definitions')
diff --git a/interface-definitions/include/bgp/protocol-common-config.xml.i b/interface-definitions/include/bgp/protocol-common-config.xml.i
index 44aa7f6f9..d4b46a731 100644
--- a/interface-definitions/include/bgp/protocol-common-config.xml.i
+++ b/interface-definitions/include/bgp/protocol-common-config.xml.i
@@ -1427,6 +1427,7 @@
+ 100
--
cgit v1.2.3