### generated by accel_pppoe.py ### [modules] log_syslog pppoe shaper {# Common authentication backend definitions #} {% include 'accel-ppp/config_modules_auth_mode.j2' %} ippool {# Common IPv6 definitions #} {% include 'accel-ppp/config_modules_ipv6.j2' %} {# Common authentication protocols (pap, chap ...) #} {% include 'accel-ppp/config_modules_auth_protocols.j2' %} {% if snmp is defined %} net-snmp {% endif %} {% if limits is defined %} connlimit {% endif %} {% if extended_scripts is defined %} sigchld pppd_compat {% endif %} [core] thread-count={{ thread_count }} [log] syslog=accel-pppoe,daemon copy=1 level=5 {% if snmp is defined and snmp.master_agent is defined %} [snmp] master=1 {% endif %} [client-ip-range] disable {# Common IP pool definitions #} {% include 'accel-ppp/config_ip_pool.j2' %} {# Common IPv6 pool definitions #} {% include 'accel-ppp/config_ipv6_pool.j2' %} {# Common DNS name-server definition #} {% include 'accel-ppp/config_name_server.j2' %} {% if wins_server is defined and wins_server is not none %} [wins] {% for server in wins_server %} wins{{ loop.index }}={{ server }} {% endfor %} {% endif %} {# Common chap-secrets and RADIUS server/option definitions #} {% include 'accel-ppp/config_chap_secrets_radius.j2' %} {% if session_control is defined and session_control != 'disable' %} [common] single-session={{ session_control }} {% endif %} [ppp] verbose=1 check-ip=1 ccp={{ "1" if ppp_options.ccp is defined else "0" }} unit-preallocate={{ "1" if authentication.radius.preallocate_vif is defined else "0" }} {% if ppp_options.min_mtu is defined and ppp_options.min_mtu is not none %} min-mtu={{ ppp_options.min_mtu }} {% endif %} {% if ppp_options.mru is defined and ppp_options.mru is not none %} mru={{ ppp_options.mru }} {% endif %} mppe={{ ppp_options.mppe }} lcp-echo-interval={{ ppp_options.lcp_echo_interval }} lcp-echo-timeout={{ ppp_options.lcp_echo_timeout }} lcp-echo-failure={{ ppp_options.lcp_echo_failure }} {% if ppp_options.ipv4 is defined and ppp_options.ipv4 is not none %} ipv4={{ ppp_options.ipv4 }} {% endif %} {# IPv6 #} {% if ppp_options.ipv6 is defined and ppp_options.ipv6 is not none %} ipv6={{ ppp_options.ipv6 }} {% if ppp_options.ipv6_intf_id is defined and ppp_options.ipv6_intf_id is not none %} ipv6-intf-id={{ ppp_options.ipv6_intf_id }} {% endif %} {% if ppp_options.ipv6_peer_intf_id is defined and ppp_options.ipv6_peer_intf_id is not none %} ipv6-peer-intf-id={{ ppp_options.ipv6_peer_intf_id }} {% endif %} ipv6-accept-peer-intf-id={{ "1" if ppp_options.ipv6_accept_peer_intf_id is defined else "0" }} {% endif %} {# MTU #} mtu={{ mtu }} {% if ppp_options.interface_cache is defined and ppp_options.interface_cache is not none %} unit-cache={{ ppp_options.interface_cache }} {% endif %} [pppoe] verbose=1 ac-name={{ access_concentrator }} {% if interface is defined and interface is not none %} {% for iface, iface_config in interface.items() %} {% if iface_config.vlan_id is not defined and iface_config.vlan_range is not defined %} interface={{ iface }} {% endif %} {% if iface_config.vlan_range is defined %} {% for regex in iface_config.regex %} interface=re:^{{ iface | replace('.', '\\.') }}\.({{ regex }})$ {% endfor %} vlan-mon={{ iface }},{{ iface_config.vlan_range | join(',') }} {% endif %} {% if iface_config.vlan_id is defined %} {% for vlan in iface_config.vlan_id %} vlan-mon={{ iface }},{{ vlan }} interface=re:^{{ iface | replace('.', '\\.') }}\.{{ vlan }}$ {% endfor %} {% endif %} {% endfor %} {% endif %} {% if service_name %} service-name={{ service_name | join(',') }} {% endif %} {% if pado_delay %} {% set delay_without_sessions = pado_delay.delays_without_sessions[0] | default('0') %} {% set pado_delay_param = namespace(value=delay_without_sessions) %} {% for delay, sessions in pado_delay.delays_with_sessions | sort(attribute='1') %} {% if not loop.last %} {% set pado_delay_param.value = pado_delay_param.value + ',' + delay + ':' + sessions | string %} {% else %} {% set pado_delay_param.value = pado_delay_param.value + ',-1:' + sessions | string %} {% endif %} {% endfor %} pado-delay={{ pado_delay_param.value }} {% endif %} {% if authentication.radius.called_sid_format is defined and authentication.radius.called_sid_format is not none %} called-sid={{ authentication.radius.called_sid_format }} {% endif %} {% if authentication is defined and authentication.mode is defined and authentication.mode == 'local' %} {% if client_ip_pool is defined and client_ip_pool is not none %} {% if client_ip_pool.name is defined and client_ip_pool.name is not none %} {% for pool, pool_config in client_ip_pool.name.items() %} {% if pool_config.subnet is defined and pool_config.subnet is not none %} ip-pool={{ pool }} {% if pool_config.gateway_address is defined and pool_config.gateway_address is not none %} gw-ip-address={{ pool_config.gateway_address }}/{{ pool_config.subnet.split('/')[1] }} {% endif %} {% endif %} {% endfor %} {% endif %} {% endif %} {% endif %} {% if limits is defined %} [connlimit] {% if limits.connection_limit is defined and limits.connection_limit is not none %} limit={{ limits.connection_limit }} {% endif %} {% if limits.burst is defined and limits.burst %} burst={{ limits.burst }} {% endif %} {% if limits.timeout is defined and limits.timeout is not none %} timeout={{ limits.timeout }} {% endif %} {% endif %} {# Common RADIUS shaper configuration #} {% include 'accel-ppp/config_shaper_radius.j2' %} {% if extended_scripts is defined %} [pppd-compat] verbose=1 radattr-prefix=/run/accel-pppd/radattr {% set script_name = {'on_up': 'ip-up', 'on_down': 'ip-down', 'on_change':'ip-change', 'on_pre_up':'ip-pre-up'} %} {% for script in extended_scripts %} {{ script_name[script] }}={{ extended_scripts[script] }} {% endfor %} {% endif %} [cli] tcp=127.0.0.1:2001