summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheeze_It <none@none.com>2020-11-04 15:43:36 -0700
committerCheeze_It <none@none.com>2020-11-04 15:43:36 -0700
commitf0ba15aadbfca4ecb7f438a8f92f634e333b7976 (patch)
tree98f7d07e6fe357249807d44fbc5235c90c016762
parent84c7ed21629db338b207dfb11320b49fffda3b3d (diff)
downloadvyos-1x-f0ba15aadbfca4ecb7f438a8f92f634e333b7976.tar.gz
vyos-1x-f0ba15aadbfca4ecb7f438a8f92f634e333b7976.zip
mpls-conf: T915: Add session hold time adjustment for static LDP neighbors
The commit has to do with the addition of session hold time parameter for LDP neighbors. This allows for being able to change said hold time on a static neighbor. The way that this works is to have it either delegated to a value (15-65535), or to just be default to whatever FRR stipulates or per the other session configuration values. I opted to remove the "-ipv4-" only because we know it's an IPv4 session that one has to create first. I figure it's redundant to add it there so I removed it.
-rw-r--r--data/templates/frr/ldpd.frr.tmpl8
-rw-r--r--interface-definitions/protocols-mpls.xml.in12
-rwxr-xr-xsrc/conf_mode/protocols_mpls.py4
3 files changed, 22 insertions, 2 deletions
diff --git a/data/templates/frr/ldpd.frr.tmpl b/data/templates/frr/ldpd.frr.tmpl
index 3cdce8c70..4736adeb0 100644
--- a/data/templates/frr/ldpd.frr.tmpl
+++ b/data/templates/frr/ldpd.frr.tmpl
@@ -16,6 +16,9 @@ no neighbor {{neighbor_id}} ttl-security disable
no neighbor {{neighbor_id}} ttl-security hops {{old_ldp.neighbors[neighbor_id].ttl_security}}
{% endif -%}
{% endif -%}
+{% if 'session_holdtime' is defined -%}
+no neighbor {{neighbor_id}} session holdtime {{old_ldp.neighbors[neighbor_id].session_holdtime}}
+{% endif -%}
{% endfor -%}
{% for neighbor_id in ldp.neighbors -%}
neighbor {{neighbor_id}} password {{ldp.neighbors[neighbor_id].password}}
@@ -26,6 +29,9 @@ neighbor {{neighbor_id}} ttl-security disable
neighbor {{neighbor_id}} ttl-security hops {{ldp.neighbors[neighbor_id].ttl_security}}
{% endif -%}
{% endif -%}
+{% if 'session_holdtime' is defined -%}
+neighbor {{neighbor_id}} session holdtime {{ldp.neighbors[neighbor_id].session_holdtime}}
+{% endif -%}
{% endfor -%}
!
address-family ipv4
@@ -118,4 +124,4 @@ no address-family ipv6
{% else -%}
no mpls ldp
{% endif -%}
-!
+! \ No newline at end of file
diff --git a/interface-definitions/protocols-mpls.xml.in b/interface-definitions/protocols-mpls.xml.in
index 38c553489..0255b1275 100644
--- a/interface-definitions/protocols-mpls.xml.in
+++ b/interface-definitions/protocols-mpls.xml.in
@@ -59,6 +59,18 @@
</valueHelp>
</properties>
</leafNode>
+ <leafNode name="session-holdtime">
+ <properties>
+ <help>Session ipv4 holdtime</help>
+ <valueHelp>
+ <format>15-65535</format>
+ <description>Time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 15-65535"/>
+ </constraint>
+ </properties>
+ </leafNode>
</children>
</tagNode>
<node name="discovery">
diff --git a/src/conf_mode/protocols_mpls.py b/src/conf_mode/protocols_mpls.py
index d90c208ad..177fd265c 100755
--- a/src/conf_mode/protocols_mpls.py
+++ b/src/conf_mode/protocols_mpls.py
@@ -163,6 +163,7 @@ def get_config(config=None):
neighbor : {
'password' : conf.return_effective_value('neighbor {0} password'.format(neighbor), default=''),
'ttl_security' : conf.return_effective_value('neighbor {0} ttl-security'.format(neighbor), default=''),
+ 'session_holdtime' : conf.return_effective_value('neighbor {0} session-holdtime'.format(neighbor), default='')
}
})
@@ -171,6 +172,7 @@ def get_config(config=None):
neighbor : {
'password' : conf.return_value('neighbor {0} password'.format(neighbor), default=''),
'ttl_security' : conf.return_value('neighbor {0} ttl-security'.format(neighbor), default=''),
+ 'session_holdtime' : conf.return_value('neighbor {0} session-holdtime'.format(neighbor), default='')
}
})
@@ -243,4 +245,4 @@ if __name__ == '__main__':
apply(c)
except ConfigError as e:
print(e)
- exit(1)
+ exit(1) \ No newline at end of file