diff options
author | Cheeze_It <none@none.com> | 2020-11-04 15:43:36 -0700 |
---|---|---|
committer | Cheeze_It <none@none.com> | 2020-11-04 15:43:36 -0700 |
commit | f0ba15aadbfca4ecb7f438a8f92f634e333b7976 (patch) | |
tree | 98f7d07e6fe357249807d44fbc5235c90c016762 | |
parent | 84c7ed21629db338b207dfb11320b49fffda3b3d (diff) | |
download | vyos-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.tmpl | 8 | ||||
-rw-r--r-- | interface-definitions/protocols-mpls.xml.in | 12 | ||||
-rwxr-xr-x | 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 @@ </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 |