summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-01-11 17:27:54 +0100
committerGitHub <noreply@github.com>2026-01-11 17:27:54 +0100
commit7fea6b6dbbd786bf6a32c496fc70ca9e9b5f8b1f (patch)
tree43ad3c08f3b62bacdbc1e17d40f53b1ff2a18bdc
parent014ef8bc62a241c2cd278d859dc24a0740e08099 (diff)
parent5310713bf116b8ad65f9e86346a7c02b2922212e (diff)
downloadvyos-1x-7fea6b6dbbd786bf6a32c496fc70ca9e9b5f8b1f.tar.gz
vyos-1x-7fea6b6dbbd786bf6a32c496fc70ca9e9b5f8b1f.zip
Merge pull request #4938 from hedrok/T8158-fix-lsp-timers
isis: T8158: fix lsp-timers
-rw-r--r--data/templates/frr/isisd.frr.j210
-rw-r--r--interface-definitions/include/isis/protocol-common-config.xml.i7
-rwxr-xr-xsrc/conf_mode/protocols_isis.py9
3 files changed, 15 insertions, 11 deletions
diff --git a/data/templates/frr/isisd.frr.j2 b/data/templates/frr/isisd.frr.j2
index a7e614e3e..8df8e90d1 100644
--- a/data/templates/frr/isisd.frr.j2
+++ b/data/templates/frr/isisd.frr.j2
@@ -114,18 +114,10 @@ advertise-passive-only
{% if log_adjacency_changes is vyos_defined %}
log-adjacency-changes
{% endif %}
-{% if lsp_gen_interval is vyos_defined %}
- lsp-gen-interval {{ lsp_gen_interval }}
-{% endif %}
+ lsp-timers gen-interval {{ lsp_gen_interval }} refresh-interval {{ lsp_refresh_interval }} max-lifetime {{ max_lsp_lifetime }}
{% if lsp_mtu is vyos_defined %}
lsp-mtu {{ lsp_mtu }}
{% endif %}
-{% if lsp_refresh_interval is vyos_defined %}
- lsp-refresh-interval {{ lsp_refresh_interval }}
-{% endif %}
-{% if max_lsp_lifetime is vyos_defined %}
- max-lsp-lifetime {{ max_lsp_lifetime }}
-{% endif %}
{% if ldp_sync.holddown is vyos_defined %}
mpls ldp-sync holddown {{ ldp_sync.holddown }}
{% elif ldp_sync is vyos_defined %}
diff --git a/interface-definitions/include/isis/protocol-common-config.xml.i b/interface-definitions/include/isis/protocol-common-config.xml.i
index 359dbc3ce..1b5b41ad2 100644
--- a/interface-definitions/include/isis/protocol-common-config.xml.i
+++ b/interface-definitions/include/isis/protocol-common-config.xml.i
@@ -98,6 +98,7 @@
<validator name="numeric" argument="--range 1-120"/>
</constraint>
</properties>
+ <defaultValue>30</defaultValue>
</leafNode>
<leafNode name="lsp-mtu">
<properties>
@@ -116,13 +117,14 @@
<properties>
<help>LSP refresh interval</help>
<valueHelp>
- <format>u32:1-65235</format>
+ <format>u32:2-65235</format>
<description>LSP refresh interval in seconds</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 1-65235"/>
+ <validator name="numeric" argument="--range 2-65235"/>
</constraint>
</properties>
+ <defaultValue>900</defaultValue>
</leafNode>
<leafNode name="max-lsp-lifetime">
<properties>
@@ -135,6 +137,7 @@
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
+ <defaultValue>1200</defaultValue>
</leafNode>
<leafNode name="metric-style">
<properties>
diff --git a/src/conf_mode/protocols_isis.py b/src/conf_mode/protocols_isis.py
index 4444a8e44..151c5450a 100755
--- a/src/conf_mode/protocols_isis.py
+++ b/src/conf_mode/protocols_isis.py
@@ -252,6 +252,15 @@ def verify(config_dict):
if int(len(isis['fast_reroute']['lfa']['remote']['prefix_list'].items())) > 1:
raise ConfigError(f'LFA remote prefix-list has more than one configured. Cannot have more than one configured.')
+ # Check for lsp-timers violations
+ # Must be in sync with FRR yang limitations in yang/frr-isisd.yang
+ if int(isis['lsp_gen_interval']) >= int(isis['lsp_refresh_interval']):
+ raise ConfigError(f'lsp-gen-interval must be less then lsp-refresh-interval')
+ if int(isis['max_lsp_lifetime']) < int(isis['lsp_refresh_interval']) + 300:
+ raise ConfigError(
+ f'max-lsp-lifetime must be greater or equal to lsp-refresh-interval + 300'
+ )
+
return None
def generate(config_dict):