diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-06-25 22:10:04 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-06-29 17:10:13 +0200 |
| commit | 1ba7fc62556ff3ef99280d876c92e38d24dc0bfc (patch) | |
| tree | 73a3f30fa4241423b96e105d57871518c945dd77 | |
| parent | 772ccb06548fb1a65d8623ea545facb0bcabb97c (diff) | |
| download | vyos-1x-1ba7fc62556ff3ef99280d876c92e38d24dc0bfc.tar.gz vyos-1x-1ba7fc62556ff3ef99280d876c92e38d24dc0bfc.zip | |
bgp: T6573: add input/output queue limit CLI commands
Add input-queue-limit and output-queue-limit CLI nodes to expose global FRR
"bgp input-queue-limit" and "bgp output-queue-limit" commands via our CLI.
Parameters control the maximum number of queued messages for all BGP peers
during message parsing. FRR default is 10000 which we honor.
Note that this is a global option and can only be set for the global/default
BGP instance.
| -rw-r--r-- | data/templates/frr/bgpd.frr.j2 | 7 | ||||
| -rw-r--r-- | interface-definitions/protocols_bgp.xml.in | 30 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_protocols_bgp.py | 11 |
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' |
