-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathndfc_interface_trunk.j2
More file actions
74 lines (73 loc) · 5.01 KB
/
Copy pathndfc_interface_trunk.j2
File metadata and controls
74 lines (73 loc) · 5.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{% from 'macros/convert_ranges.j2' import convert_ranges as convert_ranges %}
---
# This NDFC trunk interface data structure is auto-generated
# DO NOT EDIT MANUALLY
#
{% for switch in data_model_extended.vxlan.topology.switches %}
{% if switch.interfaces is defined %}
{% for interface in switch['interfaces'] %}
{% set interface_name = interface['name']|lower %}
{% if interface_name.startswith('e') %}
{% if interface['mode'] == 'trunk' %}
- name: {{ interface['name'] }}
type: eth
switch:
{% if switch.management.management_ipv4_address is defined %}
- {{ switch.management.management_ipv4_address}}
{% elif (switch.management.management_ipv4_address is not defined) and (switch.management.management_ipv6_address is defined) %}
- {{ switch.management.management_ipv6_address}}
{% endif %}
deploy: false
profile:
admin_state: {{ interface['enabled'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enabled) | lower }}
enable_cdp: {{ interface['enable_cdp'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_cdp) | lower }}
mode: 'trunk'
description: "{{ interface['description'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.description) }}"
mtu: {{ interface['mtu'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.mtu) }}
speed: {{ interface['speed'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.speed) }}
port_type_fast: {{ interface['spanning_tree_portfast'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.spanning_tree_portfast) | lower }}
bpdu_guard: {{ interface['enable_bpdu_guard'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_bpdu_guard) | lower }}
allowed_vlans: "{{ convert_ranges(interface['trunk_allowed_vlans'], defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.trunk_allowed_vlans) | trim }}"
duplex: {{ interface['duplex'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.duplex) }}
{% if interface['orphan_port'] | default(false) %}
orphan_port: {{ interface['orphan_port'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.orphan_port) | lower }}
{% endif %}
native_vlan: "{{ interface['native_vlan'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.native_vlan) }}"
enable_qos: {{ interface['enable_qos'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_qos) | lower }}
{% if interface['enable_qos'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_qos) %}
qos_policy: {{ interface['qos_policy'] | default("") }}
queuing_policy: {{ interface['queuing_policy'] | default("") }}
{% endif %}
enable_monitor: {{ interface['monitor'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.monitor) | lower }}
{% if ndfc_version | cisco.nac_dc_vxlan.version_compare('12.4.1', '>=') %}
fec: "{{ interface['fec'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.fec) }}"
enable_storm_control: {{ interface['enable_storm_control'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_storm_control) | lower }}
{% if interface['enable_storm_control'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.enable_storm_control) %}
storm_control_action: {{ interface['storm_control_action'] | default(defaults.vxlan.topology.switches.interfaces.topology_switch_trunk_interface.storm_control_action) | lower }}
{% if interface['storm_control_broadcast_level_percent'] is defined %}
storm_control_broadcast_level_percent: "{{ '%0.2f' % interface['storm_control_broadcast_level_percent'] }}"
{% endif %}
{% if interface['storm_control_multicast_level_percent'] is defined %}
storm_control_multicast_level_percent: "{{ '%0.2f' % interface['storm_control_multicast_level_percent'] }}"
{% endif %}
{% if interface['storm_control_unicast_level_percent'] is defined %}
storm_control_unicast_level_percent: "{{ '%0.2f' % interface['storm_control_unicast_level_percent'] }}"
{% endif %}
{% if interface['storm_control_broadcast_level_pps'] is defined %}
storm_control_broadcast_level_pps: {{ interface['storm_control_broadcast_level_pps'] }}
{% endif %}
{% if interface['storm_control_multicast_level_pps'] is defined %}
storm_control_multicast_level_pps: {{ interface['storm_control_multicast_level_pps'] }}
{% endif %}
{% if interface['storm_control_unicast_level_pps'] is defined %}
storm_control_unicast_level_pps: {{ interface['storm_control_unicast_level_pps'] }}
{% endif %}
{% endif %}
{% endif %}
cmds: |2-
{{ interface['freeform_config'] | default('') | indent(6, false) }}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}