{# j2lint: disable=operator-enclosed-by-spaces #}
### generated by ipoe.py ###
[modules]
log_syslog
ipoe
shaper
ipv6pool
ipv6_nd
ipv6_dhcp
ippool
{% if auth_mode == 'radius' %}
radius
{% elif auth_mode == 'local' %}
chap-secrets
{% endif %}

[core]
thread-count={{ thread_cnt }}

[log]
syslog=accel-ipoe,daemon
copy=1
level=5

[ipoe]
verbose=1
{% for interface in interfaces %}
{%     set tmp = 'interface=' %}
{%     if interface.vlan_mon %}
{%         set tmp = tmp ~ 're:' ~ interface.name ~ '\.\d+' %}
{%     else %}
{%         set tmp = tmp ~ interface.name %}
{%     endif %}
{{ tmp }},shared={{ interface.shared }},mode={{ interface.mode }},ifcfg={{ interface.ifcfg }}{{ ',range=' ~ interface.range if interface.range is defined and interface.range is not none }},start={{ interface.sess_start }},ipv6=1
{% endfor %}
{% if auth_mode == 'noauth' %}
noauth=1
{%     if client_named_ip_pool %}
{%         for pool in client_named_ip_pool %}
{%             if pool.subnet is defined  %}
ip-pool={{ pool.name }}
{%             endif %}
{%             if pool.gateway_address is defined %}
gw-ip-address={{ pool.gateway_address }}/{{ pool.subnet.split('/')[1] }}
{%             endif %}
{%         endfor %}
{%     endif %}
{% elif auth_mode == 'local' %}
username=ifname
password=csid
{% endif %}
proxy-arp=1

{% for interface in interfaces %}
{%     if (interface.shared == '0') and (interface.vlan_mon) %}
vlan-mon={{ interface.name }},{{ interface.vlan_mon | join(',') }}
{%     endif %}
{% endfor %}

{% if dnsv4 %}
[dns]
{%     for dns in dnsv4 %}
dns{{ loop.index }}={{ dns }}
{%     endfor %}
{% endif %}

{% if dnsv6 %}
[ipv6-dns]
{%     for dns in dnsv6 %}
{{ dns }}
{%     endfor %}
{% endif %}

[ipv6-nd]
verbose=1

[ipv6-dhcp]
verbose=1

{% if client_named_ip_pool %}
[ip-pool]
{%     for pool in client_named_ip_pool %}
{%         if pool.subnet is defined  %}
{{ pool.subnet }},name={{ pool.name }}
{%         endif %}
{%         if pool.gateway_address is defined %}
gw-ip-address={{ pool.gateway_address }}/{{ pool.subnet.split('/')[1] }}
{%         endif %}
{%     endfor %}
{% endif %}

{% if client_ipv6_pool %}
[ipv6-pool]
{%     for p in client_ipv6_pool %}
{{ p.prefix }},{{ p.mask }}
{%     endfor %}
{%     for p in client_ipv6_delegate_prefix %}
delegate={{ p.prefix }},{{ p.mask }}
{%     endfor %}
{% endif %}

{% if auth_mode == 'local' %}
[chap-secrets]
chap-secrets={{ chap_secrets_file }}
{% elif auth_mode == 'radius' %}
[radius]
verbose=1
{%     for r in radius_server %}
server={{ r.server }},{{ r.key }},auth-port={{ r.port }},acct-port={{ r.acct_port }},req-limit=0,fail-time={{ r.fail_time }}
{%     endfor %}

{%     if radius_acct_inter_jitter %}
acct-interim-jitter={{ radius_acct_inter_jitter }}
{%     endif %}

acct-timeout={{ radius_acct_tmo }}
timeout={{ radius_timeout }}
max-try={{ radius_max_try }}
{%     if radius_nas_id %}
nas-identifier={{ radius_nas_id }}
{%     endif %}
{%     if radius_nas_ip %}
nas-ip-address={{ radius_nas_ip }}
{%     endif %}
{%     if radius_source_address %}
bind={{ radius_source_address }}
{%     endif %}
{%     if radius_dynamic_author %}
dae-server={{ radius_dynamic_author.server }}:{{ radius_dynamic_author.port }},{{ radius_dynamic_author.key }}
{%     endif %}
{%     if radius_shaper_attr %}
[shaper]
verbose=1
attr={{ radius_shaper_attr }}
{%         if radius_shaper_vendor %}
vendor={{ radius_shaper_vendor }}
{%         endif %}
{%     endif %}
{% endif %}

[cli]
tcp=127.0.0.1:2002