### Autogenerated by interfaces_pppoe.py ###
{{ '# ' ~ description if description is vyos_defined else '' }}

# Require peer to provide the local IP address if it is not
# specified explicitly in the config file.
noipdefault

# Don't show the password in logfiles:
hide-password

# Standard Link Control Protocol (LCP) parameters:
lcp-echo-interval 20
lcp-echo-failure 3

# RFC 2516, paragraph 7 mandates that the following options MUST NOT be
# requested and MUST be rejected if requested by the peer:
# Address-and-Control-Field-Compression (ACFC)
noaccomp

# Asynchronous-Control-Character-Map (ACCM)
default-asyncmap

# Override any connect script that may have been set in /etc/ppp/options.
connect /bin/true

# Don't try to authenticate the remote node
noauth

# Don't try to proxy ARP for the remote endpoint. User can set proxy
# arp entries up manually if they wish. More importantly, having
# the "proxyarp" parameter set disables the "defaultroute" option.
noproxyarp

# Unlimited connection attempts
maxfail 0

plugin rp-pppoe.so {{ source_interface }}
{% if access_concentrator is vyos_defined %}
pppoe-ac "{{ access_concentrator }}"
{% endif %}
{% if service_name is vyos_defined %}
pppoe-service "{{ service_name }}"
{% endif %}
{% if host_uniq is vyos_defined %}
pppoe-host-uniq "{{ host_uniq }}"
{% endif %}

persist
ifname {{ ifname }}
ipparam {{ ifname }}
debug
mtu {{ mtu }}
mru {{ mru }}

{% if authentication is vyos_defined %}
{{ 'user "' + authentication.username + '"' if authentication.username is vyos_defined }}
{{ 'password "' + authentication.password + '"' if authentication.password is vyos_defined }}
{% endif %}

{{ "usepeerdns" if no_peer_dns is not vyos_defined }}

{% if ipv6 is vyos_defined %}
+ipv6 {{ 'ipv6cp-use-ipaddr' if ipv6.address.autoconf is vyos_defined }}
{% else %}
noipv6
{% endif %}

{% if holdoff is vyos_defined %}
holdoff {{ holdoff }}
{% endif %}

{% if connect_on_demand is vyos_defined %}
demand
# See T2249. PPP default route options should only be set when in on-demand
# mode. As soon as we are not in on-demand mode the default-route handling is
# passed to the ip-up.d/ip-down.s scripts which is required for VRF support.
{%     if 'auto' in default_route %}
defaultroute
{{ 'defaultroute6' if ipv6 is vyos_defined }}
{%     elif 'force' in default_route %}
defaultroute
replacedefaultroute
{{ 'defaultroute6' if ipv6 is vyos_defined }}
{%     endif %}
{% else %}
nodefaultroute
noreplacedefaultroute
{{ 'nodefaultroute6' if ipv6 is vyos_defined }}
{% endif %}