summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-06-29 18:57:49 +0200
committerGitHub <noreply@github.com>2026-06-29 18:57:49 +0200
commit0b13a48a08559a48a7a5389de6abc874e2182c5f (patch)
tree3b2b5d48751b2c5602ca7a383e9175bd00441977
parent0aafa5b25527e5c5d8064ec05c0ed33cc2724fd6 (diff)
parent130f2ce23c639eb1f5ca799799a4eb95923da23a (diff)
downloadvyos-1x-0b13a48a08559a48a7a5389de6abc874e2182c5f.tar.gz
vyos-1x-0b13a48a08559a48a7a5389de6abc874e2182c5f.zip
Merge pull request #5295 from c-po/bgp-limit
bgp: T6573: add input/output queue limit CLI commands
-rw-r--r--data/templates/frr/bgpd.frr.j29
-rw-r--r--interface-definitions/include/bgp/afi-route-server-client.xml.i2
-rw-r--r--interface-definitions/protocols_bgp.xml.in30
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_bgp.py11
4 files changed, 50 insertions, 2 deletions
diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2
index 3035262a6..fea806c23 100644
--- a/data/templates/frr/bgpd.frr.j2
+++ b/data/templates/frr/bgpd.frr.j2
@@ -1,3 +1,10 @@
+!
+{% if parameters.input_queue_limit is vyos_defined %}
+ bgp input-queue-limit {{ parameters.input_queue_limit }}
+{% endif %}
+{% if parameters.output_queue_limit is vyos_defined %}
+ bgp output-queue-limit {{ parameters.output_queue_limit }}
+{% endif %}
{### MACRO definition for recurring peer patter, this can be either fed by a ###}
{### peer-group or an individual BGP neighbor ###}
{% macro bgp_neighbor(neighbor, config, peer_group=false) %}
@@ -650,7 +657,7 @@ router bgp {{ system_as }} {{ 'vrf ' ~ vrf if vrf is vyos_defined }} {{ 'as-nota
bgp network import-check
{% endif %}
{% if parameters.route_reflector_allow_outbound_policy is vyos_defined %}
-bgp route-reflector allow-outbound-policy
+ bgp route-reflector allow-outbound-policy
{% endif %}
{% if parameters.no_client_to_client_reflection is vyos_defined %}
no bgp client-to-client reflection
diff --git a/interface-definitions/include/bgp/afi-route-server-client.xml.i b/interface-definitions/include/bgp/afi-route-server-client.xml.i
index 9bb628ee2..5c10e9a51 100644
--- a/interface-definitions/include/bgp/afi-route-server-client.xml.i
+++ b/interface-definitions/include/bgp/afi-route-server-client.xml.i
@@ -5,4 +5,4 @@
<valueless/>
</properties>
</leafNode>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/protocols_bgp.xml.in b/interface-definitions/protocols_bgp.xml.in
index e1a822999..261055e92 100644
--- a/interface-definitions/protocols_bgp.xml.in
+++ b/interface-definitions/protocols_bgp.xml.in
@@ -9,6 +9,36 @@
</properties>
<children>
#include <include/bgp/protocol-common-config.xml.i>
+ <node name="parameters">
+ <children>
+ <leafNode name="input-queue-limit">
+ <properties>
+ <help>Input queue limit for all peers when messaging parsing</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Queue limit, increase only if you have the memory to handle large queues</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ <defaultValue>10000</defaultValue>
+ </leafNode>
+ <leafNode name="output-queue-limit">
+ <properties>
+ <help>Output queue limit for all peers when messaging parsing</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Queue limit, increase only if you have the memory to handle large queues</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ <defaultValue>10000</defaultValue>
+ </leafNode>
+ </children>
+ </node>
</children>
</node>
</children>
diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py
index ab0fa216f..cf6dd2ab8 100755
--- a/smoketest/scripts/cli/test_protocols_bgp.py
+++ b/smoketest/scripts/cli/test_protocols_bgp.py
@@ -1942,6 +1942,17 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):
f' neighbor {interface} interface peer-group {peer_group}', frrconfig
)
+ def test_bgp_35_queue_limit(self):
+ input_queue = '20000'
+ output_queue = '30000'
+ self.cli_set(base_path + ['parameters', 'input-queue-limit', input_queue])
+ self.cli_set(base_path + ['parameters', 'output-queue-limit', output_queue])
+ self.cli_commit()
+
+ frrconfig = self.getFRRconfig('bgp', end_marker='')
+ self.assertIn(f'bgp input-queue-limit {input_queue}', frrconfig)
+ self.assertIn(f'bgp output-queue-limit {output_queue}', frrconfig)
+
def test_bgp_99_bmp(self):
target_name = 'instance-bmp'
target_address = '127.0.0.1'