From 51fdb57668073d16f5f4795ab9ebdee5b3b853c2 Mon Sep 17 00:00:00 2001 From: sever-sever Date: Fri, 23 Oct 2020 15:26:41 +0000 Subject: isis: T1316: October steps --- data/templates/frr/isis.frr.tmpl | 158 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 data/templates/frr/isis.frr.tmpl (limited to 'data/templates/frr') diff --git a/data/templates/frr/isis.frr.tmpl b/data/templates/frr/isis.frr.tmpl new file mode 100644 index 000000000..70444d0c3 --- /dev/null +++ b/data/templates/frr/isis.frr.tmpl @@ -0,0 +1,158 @@ +{% for dname in isis -%} +! +router isis {{dname}} +{% if isis[dname]['net'] is string -%} + net {{ isis[dname]['net'] }} +{% else -%} +{% for net_iso in isis[dname]['net'] -%} + net {{ net_iso }} +{% endfor -%} +{% endif -%} +{#- end isis net -#} +{% if 'dynamic_hostname' in isis[dname] -%} + hostname dynamic +{% endif -%} +{% if 'purge_originator' in isis[dname] -%} + purge-originator +{% endif -%} +{% if 'set_attached_bit' in isis[dname] -%} + set-attached-bit +{% endif -%} +{% if 'set_overload_bit' in isis[dname] -%} + set-overload-bit +{% endif -%} +{% if isis[dname].domain_password is defined -%} +{% if isis[dname].domain_password.plaintext_password is defined -%} + domain-password clear {{ isis[dname].domain_password.plaintext_password }} +{% endif -%} +{% endif -%} +{#- end isis domain-password -#} +{% if isis[dname]['lsp_gen_interval'] -%} + lsp-gen-interval {{ isis[dname]['lsp_gen_interval'] }} +{% endif -%} +{% if isis[dname]['lsp_mtu'] -%} + lsp-mtu {{ isis[dname]['lsp_mtu'] }} +{% endif -%} +{% if isis[dname]['lsp_refresh_interval'] -%} + lsp-mtu {{ isis[dname]['lsp_refresh_interval'] }} +{% endif -%} +{% if isis[dname]['max_lsp_lifetime'] -%} + lsp-mtu {{ isis[dname]['max_lsp_lifetime'] }} +{% endif -%} +{% if isis[dname]['spf_interval'] -%} + spf-interval {{ isis[dname]['spf_interval'] }} +{% endif -%} +{% for t in isis[dname]['spf_delay_ietf'] -%} +{% if t == "holddown" -%} + spf-delay-ietf holddown {{ isis[dname]['spf_delay_ietf'][t] }} +{% endif -%} +{% endfor -%} +{#- end lsp timers and intervals -#} +{% if isis[dname]['area_password'] is defined -%} +{% for password in isis[dname]['area_password'] -%} +{% if password == "md5" -%} + area-password md5 {{ isis[dname]['area_password'][password] }} +{% endif -%} +{% if password == "plaintext_password" -%} + area-password clear {{ isis[dname]['area_password'][password] }} +{% endif -%} +{% endfor -%} +{% endif -%} +{#- end isis area-password -#} +{% if 'originate' in isis[dname]['default_information'] -%} +{% for ipv in isis[dname]['default_information']['originate'] -%} +{% for lvl in isis[dname]['default_information']['originate'][ipv] -%} +{% if ipv == 'ipv4' -%} + default-information originate {{ ipv }} {{ lvl | replace('_', '-') }} +{% elif ipv == 'ipv6' -%} + default-information originate {{ ipv }} {{ lvl | replace('_', '-') }} always +{% endif -%} +{% endfor -%} +{% endfor -%} +{% endif -%} +{#- end isis default-information originate -#} +{% if isis[dname]['redistribute'] is defined -%} +{% for protocol in isis[dname]['redistribute']['ipv4'] -%} +{% for lvl in isis[dname]['redistribute']['ipv4'][protocol] -%} +{% if isis[dname]['redistribute']['ipv4'][protocol][lvl]['metric'] is defined -%} + redistribute ipv4 {{ protocol }} {{ lvl | replace('_', '-') }} metric {{ isis[dname]['redistribute']['ipv4'][protocol][lvl]['metric'] }} +{% elif isis[dname]['redistribute']['ipv4'][protocol][lvl]['route_map'] is defined -%} + redistribute ipv4 {{ protocol }} {{ lvl | replace('_', '-') }} route-map {{ isis[dname]['redistribute']['ipv4'][protocol][lvl]['route_map'] }} +{% else -%} + redistribute ipv4 {{ protocol }} {{ lvl | replace('_', '-') }} +{% endif -%} +{% endfor -%} +{% endfor -%} +{% endif -%} +{#- end isis redistribute -#} +{% if isis[dname]['level'] -%} +{% if isis[dname]['level'] == 'level-1' -%} + is-type level-1 +{% elif isis[dname]['level'] == 'level-2' -%} + is-type level-2-only +{% elif isis[dname]['level'] == 'level-1-2' -%} + is-type level-1-2 +{% endif -%} +{% endif -%} +{#- end isis level -#} +{% if isis[dname]['spf_delay_ietf'] is defined -%} +{% if isis[dname]['spf_delay_ietf']['init_delay'] or isis[dname]['spf_delay_ietf']['short_delay'] or isis[dname]['spf_delay_ietf']['long_delay'] or isis[dname]['spf_delay_ietf']['holddown'] or isis[dname]['spf_delay_ietf']['time_to_learn'] -%} + init-delay {{ isis[dname]['spf_delay_ietf']['init_delay'] }} short-delay {{ isis[dname]['spf_delay_ietf']['short_delay'] }} long-delay {{ isis[dname]['spf_delay_ietf']['long_delay'] }} holddown {{ isis[dname]['spf_delay_ietf']['holddown'] }} time-to-learn {{ isis[dname]['spf_delay_ietf']['time_to_learn'] }} +{% endif -%} +{% endif -%} +! +{% set isis_iface = isis[dname]['interface'] -%} +{% if isis_iface is string -%} +interface {{ isis_iface }} +ip router isis {{ dname }} +{% else -%} +{% for value in isis_iface -%} +interface {{ value }} +ip router isis {{ dname }} +{% if 'bfd' in isis_iface[value] -%} + isis bfd +{% endif -%} +{% if 'point_to_point' in isis_iface[value]['network'] -%} + isis network point-to-point +{% endif -%} +{% if isis_iface[value]['circuit_type'] == 'level-1' -%} + isis circuit-type level-1 +{% elif isis_iface[value]['circuit_type'] == 'level-2-only' -%} + isis circuit-type level-2-only +{% elif isis_iface[value]['circuit_type'] == 'level-1-2' -%} + isis circuit-type level-1-2 +{% endif -%} +{% if isis_iface[value]['hello_interval'] -%} + isis hello-interval {{ isis_iface[value]['hello_interval'] }} +{% endif -%} +{% if isis_iface[value]['hello_multiplier'] -%} + isis hello-multiplier {{ isis_iface[value]['hello_multiplier'] }} +{% endif -%} +{% if 'hello_padding' in isis_iface[value] -%} + isis hello padding +{% endif -%} +{% if isis_iface[value]['metric'] -%} + isis metric {{ isis_iface[value]['metric'] }} +{% endif -%} +{% if 'passive' in isis_iface[value] -%} + isis passive +{% endif -%} +{% if isis_iface[value]['password'] is defined -%} +{% if isis_iface[value]['password']['plaintext_password'] is defined -%} + isis password clear {{ isis_iface[value]['password']['plaintext_password'] }} +{% endif -%} +{% endif -%} +{% if isis_iface[value]['priority'] -%} + isis priority {{ isis_iface[value]['priority'] }} +{% endif -%} +{% if isis_iface[value]['psnp_interval'] -%} + isis psnp-interval {{ isis_iface[value]['psnp_interval'] }} +{% endif -%} +{% if 'three_way_handshake' in isis_iface[value] -%} + isis three-way-handshake +{% endif -%} +{% endfor -%} +{% endif -%} +{#- end isis interface -#} +! +{% endfor -%} -- cgit v1.2.3