2021-07-16 09:31:05 -05:00
|
|
|
{# Append DHCPv4 agents #}
|
|
|
|
{% if VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length > 0 %}
|
|
|
|
{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %}
|
|
|
|
{% if dhcp_server | ipv4 %}
|
|
|
|
{% set _dummy = relay_for_ipv4.update({'flag': True}) %}
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% if relay_for_ipv4.flag %}
|
|
|
|
{% set _dummy = relay_for_ipv4.update({'flag': False}) %}
|
|
|
|
[program:isc-dhcpv4-relay-{{ vlan_name }}]
|
|
|
|
{# We treat this VLAN as a downstream interface (-id), as we only want to listen for requests #}
|
|
|
|
command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -id {{ vlan_name }}
|
|
|
|
{#- Dual ToR Option #}
|
|
|
|
{% if 'subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' %} -U Loopback0 -dt{% endif -%}
|
|
|
|
{#- si option to use intf addr in relay #}
|
|
|
|
{% if DEVICE_METADATA['localhost']['deployment_id'] == '8' %} -si{% endif -%}
|
|
|
|
{#- We treat all other interfaces as upstream interfaces (-iu), as we only want to listen for replies #}
|
|
|
|
{% for (name, prefix) in VLAN_INTERFACE|pfx_filter %}
|
|
|
|
{% if prefix | ipv4 and name != vlan_name %} -iu {{ name }}{% endif -%}
|
|
|
|
{% endfor %}
|
|
|
|
{% for (name, prefix) in INTERFACE|pfx_filter %}
|
|
|
|
{% if prefix | ipv4 %} -iu {{ name }}{% endif -%}
|
|
|
|
{% endfor %}
|
|
|
|
{% for (name, prefix) in PORTCHANNEL_INTERFACE|pfx_filter %}
|
|
|
|
{% if prefix | ipv4 %} -iu {{ name }}{% endif -%}
|
|
|
|
{% endfor %}
|
2023-11-22 17:05:32 -06:00
|
|
|
{% for (name, gateway) in VLAN_INTERFACE|get_primary_addr %}
|
|
|
|
{% if gateway | ipv4 and name == vlan_name %} -pg {{ gateway }}{% endif -%}
|
|
|
|
{% endfor %}
|
2021-07-16 09:31:05 -05:00
|
|
|
{% for dhcp_server in VLAN[vlan_name]['dhcp_servers'] %}
|
|
|
|
{%- if dhcp_server | ipv4 %} {{ dhcp_server }}{% endif -%}
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
priority=3
|
|
|
|
autostart=false
|
|
|
|
autorestart=false
|
|
|
|
stdout_logfile=syslog
|
|
|
|
stderr_logfile=syslog
|
|
|
|
dependent_startup=true
|
|
|
|
dependent_startup_wait_for=start:exited
|
|
|
|
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|