From f0ba15aadbfca4ecb7f438a8f92f634e333b7976 Mon Sep 17 00:00:00 2001 From: Cheeze_It Date: Wed, 4 Nov 2020 15:43:36 -0700 Subject: 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. --- data/templates/frr/ldpd.frr.tmpl | 8 +++++++- interface-definitions/protocols-mpls.xml.in | 12 ++++++++++++ src/conf_mode/protocols_mpls.py | 4 +++- 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 @@ + + + Session ipv4 holdtime + + 15-65535 + Time in seconds + + + + + + 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 -- cgit v1.2.3