summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/frr/bgpd.frr.j27
-rw-r--r--interface-definitions/protocols_bgp.xml.in30
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_bgp.py11
3 files changed, 48 insertions, 0 deletions
diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2
index 3035262a6..f2f0fcc45 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) %}
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'