diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/service_pppoe-server.py | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/src/conf_mode/service_pppoe-server.py b/src/conf_mode/service_pppoe-server.py index 5a59df372..a58634b95 100755 --- a/src/conf_mode/service_pppoe-server.py +++ b/src/conf_mode/service_pppoe-server.py @@ -47,11 +47,15 @@ iid_secret_max_len = 128 def _is_safe_ascii_secret(value): # Restrict to ASCII printable non-whitespace characters. - return value.isascii() and all(ch.isprintable() and not ch.isspace() for ch in value) + return value.isascii() and all( + ch.isprintable() and not ch.isspace() for ch in value + ) def _is_valid_iid_secret(value): - return iid_secret_min_len <= len(value) <= iid_secret_max_len and _is_safe_ascii_secret(value) + return iid_secret_min_len <= len( + value + ) <= iid_secret_max_len and _is_safe_ascii_secret(value) def base_ifname(ifname): @@ -60,15 +64,17 @@ def base_ifname(ifname): def convert_pado_delay(pado_delay): - new_pado_delay = {'delays_without_sessions': [], - 'delays_with_sessions': []} + new_pado_delay = {'delays_without_sessions': [], 'delays_with_sessions': []} for delay, sessions in pado_delay.items(): if not sessions: new_pado_delay['delays_without_sessions'].append(delay) else: - new_pado_delay['delays_with_sessions'].append((delay, int(sessions['sessions']))) + new_pado_delay['delays_with_sessions'].append( + (delay, int(sessions['sessions'])) + ) return new_pado_delay + def get_config(config=None): if config: conf = config @@ -112,7 +118,9 @@ def get_config(config=None): if dict_search('client_ip_pool', pppoe): # Multiple named pools require ordered values T5099 - pppoe['ordered_named_pools'] = get_pools_in_order(dict_search('client_ip_pool', pppoe)) + pppoe['ordered_named_pools'] = get_pools_in_order( + dict_search('client_ip_pool', pppoe) + ) if dict_search('pado_delay', pppoe): pado_delay = dict_search('pado_delay', pppoe) @@ -138,7 +146,6 @@ def get_config(config=None): is_node_changed(conf, base + ['authentication', 'radius']), is_node_changed(conf, base + ['authentication', 'mode']), is_node_changed(conf, base + ['authentication', 'protocols']), - # IPv6 peer IID mode/secret affect negotiated session state. # Restart is required to force existing sessions to re-negotiate. is_node_changed(conf, base + ['ppp-options', 'ipv6-peer-interface-id']), @@ -153,6 +160,7 @@ def get_config(config=None): pppoe['server_type'] = 'pppoe' return pppoe + def verify_pado_delay(pppoe): if 'pado_delay' in pppoe: pado_delay = pppoe['pado_delay'] @@ -172,7 +180,9 @@ def verify_pado_delay(pppoe): if 'disable' in [delay[0] for delay in pado_delay['delays_with_sessions']]: # need to sort delays by sessions to verify if there is no delay # for sessions after disabling - sorted_pado_delay = sorted(pado_delay['delays_with_sessions'], key=lambda k_v: k_v[1]) + sorted_pado_delay = sorted( + pado_delay['delays_with_sessions'], key=lambda k_v: k_v[1] + ) last_delay = sorted_pado_delay[-1] if last_delay[0] != 'disable': @@ -181,6 +191,7 @@ def verify_pado_delay(pppoe): f'"pado-delay {last_delay[0]} sessions {last_delay[1]}" was set' ) + def verify(pppoe): if 'remove' in pppoe: return None @@ -195,7 +206,9 @@ def verify(pppoe): peer_id_secret = dict_search('ppp_options.ipv6_peer_interface_id_secret', pppoe) if peer_id_mode == 'calling-sid': if not peer_id_secret: - raise ConfigError('ppp-options ipv6-peer-interface-id calling-sid requires ipv6-peer-interface-id-secret') + raise ConfigError( + 'ppp-options ipv6-peer-interface-id calling-sid requires ipv6-peer-interface-id-secret' + ) if not _is_valid_iid_secret(peer_id_secret): raise ConfigError( f'ppp-options ipv6-peer-interface-id-secret must be {iid_secret_min_len} to ' @@ -235,8 +248,12 @@ def generate(pppoe): render(pppoe_conf, 'accel-ppp/pppoe.config.j2', pppoe) if dict_search('authentication.mode', pppoe) == 'local': - render(pppoe_chap_secrets, 'accel-ppp/chap-secrets.config_dict.j2', - pppoe, permission=0o640) + render( + pppoe_chap_secrets, + 'accel-ppp/chap-secrets.config_dict.j2', + pppoe, + permission=0o640, + ) return None |
