diff options
author | Daniil Baturin <daniil@vyos.io> | 2024-05-01 17:34:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 17:34:00 +0200 |
commit | 6872b3f1a3f3765e0f32fdc9e701aa9b1c490e7f (patch) | |
tree | ca88715f2439ebc818039dc9897ce9ed4a910f24 /src/conf_mode/service_pppoe-server.py | |
parent | e80e54cbece711d93895d3c7b78689bd282b8fd9 (diff) | |
parent | 107ee099e82397b31fca8cf1ac3860cbf76f0596 (diff) | |
download | vyos-1x-6872b3f1a3f3765e0f32fdc9e701aa9b1c490e7f.tar.gz vyos-1x-6872b3f1a3f3765e0f32fdc9e701aa9b1c490e7f.zip |
Merge pull request #3364 from natali-rs1985/T6234-current
pppoe-server: T6234: PPPoE-server pado-delay refactoring
Diffstat (limited to 'src/conf_mode/service_pppoe-server.py')
-rwxr-xr-x | src/conf_mode/service_pppoe-server.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/conf_mode/service_pppoe-server.py b/src/conf_mode/service_pppoe-server.py index 328487985..c95f976d3 100755 --- a/src/conf_mode/service_pppoe-server.py +++ b/src/conf_mode/service_pppoe-server.py @@ -84,12 +84,29 @@ def verify_pado_delay(pppoe): pado_delay = pppoe['pado_delay'] delays_without_sessions = pado_delay['delays_without_sessions'] + if 'disable' in delays_without_sessions: + raise ConfigError( + 'Number of sessions must be specified for "pado-delay disable"' + ) + if len(delays_without_sessions) > 1: raise ConfigError( f'Cannot add more then ONE pado-delay without sessions, ' f'but {len(delays_without_sessions)} were set' ) + 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]) + last_delay = sorted_pado_delay[-1] + + if last_delay[0] != 'disable': + raise ConfigError( + f'Cannot add pado-delay after disabled sessions, but ' + f'"pado-delay {last_delay[0]} sessions {last_delay[1]}" was set' + ) + def verify(pppoe): if not pppoe: return None |