summaryrefslogtreecommitdiff
path: root/data/templates/accel-ppp/pppoe.config.j2
blob: e1ae3660e7ebcdc547e23b40b464b0c53d8f0c92 (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
### 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 vyos_defined %}
net-snmp
{% endif %}
{% if limits is vyos_defined %}
connlimit
{% endif %}
{% if extended_scripts is vyos_defined %}
sigchld
pppd_compat
{% endif %}

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

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

{% if authentication.mode is vyos_defined("noauth") %}
[auth]
noauth=1
{% endif %}

{% if snmp.master_agent is vyos_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 vyos_defined %}
[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' %}

[common]
{% if session_control is vyos_defined and session_control is not vyos_defined('disable') %}
single-session={{ session_control }}
{% endif %}
{% if max_concurrent_sessions is vyos_defined %}
max-starting={{ max_concurrent_sessions }}
{% endif %}

[ppp]
verbose=1
check-ip=1
ccp={{ "1" if ppp_options.ccp is vyos_defined else "0" }}
unit-preallocate={{ "1" if authentication.radius.preallocate_vif is vyos_defined else "0" }}
{% if ppp_options.min_mtu is vyos_defined %}
min-mtu={{ ppp_options.min_mtu }}
{% endif %}
{% if ppp_options.mru is vyos_defined %}
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 vyos_defined %}
ipv4={{ ppp_options.ipv4 }}
{% endif %}
{# IPv6 #}
{% if ppp_options.ipv6 is vyos_defined %}
ipv6={{ ppp_options.ipv6 }}
{%     if ppp_options.ipv6_intf_id is vyos_defined %}
ipv6-intf-id={{ ppp_options.ipv6_intf_id }}
{%     endif %}
{%     if ppp_options.ipv6_peer_intf_id is vyos_defined %}
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 vyos_defined else "0" }}
{% endif %}
{# MTU #}
mtu={{ mtu }}
{% if ppp_options.interface_cache is vyos_defined %}
unit-cache={{ ppp_options.interface_cache }}
{% endif %}

[pppoe]
verbose=1
ac-name={{ access_concentrator }}

{% if interface is vyos_defined %}
{%     for iface, iface_config in interface.items() %}
{%         if iface_config.vlan is not vyos_defined %}
interface={{ iface }}
{%         else %}
{%             for vlan in iface_config.vlan %}
interface=re:^{{ iface }}\.{{ vlan | range_to_regex }}$
{%             endfor %}
vlan-mon={{ iface }},{{ iface_config.vlan | join(',') }}
{%         endif %}
{%     endfor %}
{% endif %}

{% if service_name %}
service-name={{ service_name | join(',') }}
{% endif %}

{% if pado_delay %}
{%     set pado_delay_param = namespace(value='0') %}
{%     for delay in pado_delay | sort(attribute='0') %}
{%         if not loop.last %}
{%             set pado_delay_param.value = pado_delay_param.value + ',' + delay + ':' + pado_delay[delay].sessions %}
{%         else %}
{%             set pado_delay_param.value = pado_delay_param.value + ',-1:' + pado_delay[delay].sessions %}
{%         endif %}
{%     endfor %}
pado-delay={{ pado_delay_param.value }}
{% endif %}
{% if authentication.radius.called_sid_format is vyos_defined %}
called-sid={{ authentication.radius.called_sid_format }}
{% endif %}

{% if authentication.mode is vyos_defined("local") or authentication.mode is vyos_defined("noauth") %}
{%     if authentication.mode is vyos_defined("noauth") %}
noauth=1
{%     endif %}
{%     if client_ip_pool.name is vyos_defined %}
{%         for pool, pool_config in client_ip_pool.name.items() %}
{%             if pool_config.subnet is vyos_defined %}
ip-pool={{ pool }}
{%             endif %}
{%             if pool_config.gateway_address is vyos_defined %}
gw-ip-address={{ pool_config.gateway_address }}/{{ pool_config.subnet.split('/')[1] }}
{%             endif %}
{%         endfor %}
{%     endif %}
{% endif %}

{% if limits is vyos_defined %}
[connlimit]
{%     if limits.connection_limit is vyos_defined %}
limit={{ limits.connection_limit }}
{%     endif %}
{%     if limits.burst is vyos_defined %}
burst={{ limits.burst }}
{%     endif %}
{%     if limits.timeout is vyos_defined %}
timeout={{ limits.timeout }}
{%     endif %}
{% endif %}

{# Common RADIUS shaper configuration #}
{% include 'accel-ppp/config_shaper_radius.j2' %}

{% if extended_scripts is vyos_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