summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-12-30 17:12:53 +0100
committerGitHub <noreply@github.com>2025-12-30 17:12:53 +0100
commit2efe3e56d8a255b0193e721334d1947273908403 (patch)
treefa78324740a6fea073c5f70089ff87b15121fc9e
parent348e26aa40c8a0fbc921fc2153715e48fcd28f71 (diff)
parentfed84261267a6e760ba9cfe1da807eae36125c10 (diff)
downloadvyos-1x-2efe3e56d8a255b0193e721334d1947273908403.tar.gz
vyos-1x-2efe3e56d8a255b0193e721334d1947273908403.zip
Merge pull request #4922 from sever-sever/T8133
T8133: BGP add local-rib feature for BMP
-rw-r--r--data/templates/frr/bgpd.frr.j26
-rw-r--r--interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i6
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_bgp.py4
3 files changed, 16 insertions, 0 deletions
diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2
index e5a75090f..c952fb0ec 100644
--- a/data/templates/frr/bgpd.frr.j2
+++ b/data/templates/frr/bgpd.frr.j2
@@ -510,12 +510,18 @@ router bgp {{ system_as }} {{ 'vrf ' ~ vrf if vrf is vyos_defined }}
{% if bmp_config.monitor.ipv4_unicast.post_policy is vyos_defined %}
bmp monitor ipv4 unicast post-policy
{% endif %}
+{% if bmp_config.monitor.ipv4_unicast.local_rib is vyos_defined %}
+ bmp monitor ipv4 unicast loc-rib
+{% endif %}
{% if bmp_config.monitor.ipv6_unicast.pre_policy is vyos_defined %}
bmp monitor ipv6 unicast pre-policy
{% endif %}
{% if bmp_config.monitor.ipv6_unicast.post_policy is vyos_defined %}
bmp monitor ipv6 unicast post-policy
{% endif %}
+{% if bmp_config.monitor.ipv6_unicast.local_rib is vyos_defined %}
+ bmp monitor ipv6 unicast loc-rib
+{% endif %}
{% endif %}
{% if bmp_config.address is vyos_defined %}
bmp connect {{ bmp_config.address }} port {{ bmp_config.port }} min-retry {{ bmp_config.min_retry }} max-retry {{ bmp_config.max_retry }}
diff --git a/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i b/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
index 261d60232..d4bb0093e 100644
--- a/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
+++ b/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
@@ -1,4 +1,10 @@
<!-- include start from bgp/bmp-monitor-afi-policy.xml.i -->
+<leafNode name="local-rib">
+ <properties>
+ <help>Enable BMP monitoring of local RIB</help>
+ <valueless/>
+ </properties>
+</leafNode>
<leafNode name="pre-policy">
<properties>
<help>Send state before policy and filter processing</help>
diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py
index 23c2bf592..d7c2a924f 100755
--- a/smoketest/scripts/cli/test_protocols_bgp.py
+++ b/smoketest/scripts/cli/test_protocols_bgp.py
@@ -1674,7 +1674,9 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
self.cli_set(target_path + ['max-retry', max_retry])
self.cli_set(target_path + ['mirror'])
self.cli_set(target_path + ['monitor', 'ipv4-unicast', monitor_ipv4])
+ self.cli_set(target_path + ['monitor', 'ipv4-unicast', 'local-rib'])
self.cli_set(target_path + ['monitor', 'ipv6-unicast', monitor_ipv6])
+ self.cli_set(target_path + ['monitor', 'ipv6-unicast', 'local-rib'])
self.cli_commit()
# Verify bgpd bmp configuration
@@ -1684,6 +1686,8 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'bmp mirror', frrconfig)
self.assertIn(f'bmp monitor ipv4 unicast {monitor_ipv4}', frrconfig)
self.assertIn(f'bmp monitor ipv6 unicast {monitor_ipv6}', frrconfig)
+ self.assertIn(f'bmp monitor ipv4 unicast loc-rib', frrconfig)
+ self.assertIn(f'bmp monitor ipv6 unicast loc-rib', frrconfig)
self.assertIn(f'bmp connect {target_address} port {target_port} min-retry {min_retry} max-retry {max_retry}', frrconfig)
if __name__ == '__main__':