summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoranderbak <bjanderson7583@gmail.com>2026-05-12 14:41:35 +0000
committerGitHub <noreply@github.com>2026-05-12 17:41:35 +0300
commit1dd997d724449e941c6bf42be98529372d9f1530 (patch)
tree5ca8e037e5e6f395152eb24579cd32fd34cb3edb
parentab28ff732ca159438ef911cd91fd86ddd5000970 (diff)
downloadvyos-1x-1dd997d724449e941c6bf42be98529372d9f1530.tar.gz
vyos-1x-1dd997d724449e941c6bf42be98529372d9f1530.zip
frr: T8606: add watchfrr timeout option (#5165)
Co-authored-by: Christian Breunig <christian@breunig.cc>
-rw-r--r--data/templates/frr/daemons.frr.tmpl2
-rw-r--r--interface-definitions/system_frr.xml.in14
-rwxr-xr-xsmoketest/scripts/cli/test_system_frr.py24
3 files changed, 39 insertions, 1 deletions
diff --git a/data/templates/frr/daemons.frr.tmpl b/data/templates/frr/daemons.frr.tmpl
index 32ef1079b..b1159217f 100644
--- a/data/templates/frr/daemons.frr.tmpl
+++ b/data/templates/frr/daemons.frr.tmpl
@@ -103,7 +103,7 @@ vtysh_enable=yes
watchfrr_enable=yes
valgrind_enable=no
-#watchfrr_options=""
+watchfrr_options="--timeout={{ watchfrr_timeout }}"
frr_profile="{{ profile }}"
diff --git a/interface-definitions/system_frr.xml.in b/interface-definitions/system_frr.xml.in
index 9bd190268..28b6b93e5 100644
--- a/interface-definitions/system_frr.xml.in
+++ b/interface-definitions/system_frr.xml.in
@@ -35,6 +35,20 @@
<valueless/>
</properties>
</leafNode>
+ <leafNode name="watchfrr-timeout">
+ <properties>
+ <help>Set watchfrr daemon timeout</help>
+ <valueHelp>
+ <format>u32:60-600</format>
+ <description>Timeout in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 60-600"/>
+ </constraint>
+ <constraintErrorMessage>Timeout must be in range 60 to 600 seconds</constraintErrorMessage>
+ </properties>
+ <defaultValue>90</defaultValue>
+ </leafNode>
<leafNode name="profile">
<properties>
<help>Select configuration profile to adapt different defaults</help>
diff --git a/smoketest/scripts/cli/test_system_frr.py b/smoketest/scripts/cli/test_system_frr.py
index 9217f2b27..ea280dd27 100755
--- a/smoketest/scripts/cli/test_system_frr.py
+++ b/smoketest/scripts/cli/test_system_frr.py
@@ -196,5 +196,29 @@ class TestSystemFRR(VyOSUnitTestSHIM.TestCase):
daemons_config = read_file(config_file)
self.assertIn(f'MAX_FDS={default_descriptors}', daemons_config)
+ def test_frr_watchfrr_timeout(self):
+ default_watchfrr_timeout = default_value(base_path + ['watchfrr-timeout'])
+ watchfrr_timeout = '120'
+
+ self.cli_set(base_path + ['watchfrr-timeout', watchfrr_timeout])
+ self.cli_commit()
+
+ # read the config file and check content
+ daemons_config = read_file(config_file)
+ self.assertIn(
+ f'watchfrr_options="--timeout={watchfrr_timeout}"', daemons_config
+ )
+
+ # test remove of watchfrr-timeout
+ self.cli_delete(base_path)
+ self.cli_commit()
+
+ # read the config file and check content
+ daemons_config = read_file(config_file)
+ self.assertIn(
+ f'watchfrr_options="--timeout={default_watchfrr_timeout}"', daemons_config
+ )
+
+
if __name__ == '__main__':
unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on())