diff options
author | Daniil Baturin <daniil@vyos.io> | 2024-04-01 16:39:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-01 16:39:47 +0200 |
commit | ae96118ec38c4064552889aea5e50023a66aac1e (patch) | |
tree | ca81032cfa054a2b26d198ce2a5ce5b5a761f399 /src/conf_mode | |
parent | 4999f605b024d041cdc18e69ea6cef48403a924e (diff) | |
parent | 9d34c488251c0d5111b4a3c880f2291548645db3 (diff) | |
download | vyos-1x-ae96118ec38c4064552889aea5e50023a66aac1e.tar.gz vyos-1x-ae96118ec38c4064552889aea5e50023a66aac1e.zip |
Merge pull request #3167 from aapostoliuk/T6150-equuleus
T6150: Fixed setting a static IP address by Radius in IPoE
Diffstat (limited to 'src/conf_mode')
-rwxr-xr-x | src/conf_mode/service_ipoe-server.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/conf_mode/service_ipoe-server.py b/src/conf_mode/service_ipoe-server.py index 42cfd0f12..86185f37f 100755 --- a/src/conf_mode/service_ipoe-server.py +++ b/src/conf_mode/service_ipoe-server.py @@ -44,6 +44,7 @@ default_config_data = { 'client_named_ip_pool': [], 'client_ipv6_pool': [], 'client_ipv6_delegate_prefix': [], + 'gateway_address':[], 'radius_server': [], 'radius_acct_inter_jitter': '', 'radius_acct_tmo': '3', @@ -275,9 +276,14 @@ def get_config(config=None): ipoe['client_ipv6_delegate_prefix'].append(tmp) + if conf.exists(['gateway-address']): + for gw in conf.return_values(['gateway-address']): + ipoe['gateway_address'].append(gw) + return ipoe + def verify(ipoe): if not ipoe: return None @@ -303,6 +309,13 @@ def verify(ipoe): if ipoe['client_ipv6_delegate_prefix'] and not ipoe['client_ipv6_pool']: raise ConfigError('IPoE IPv6 deletate-prefix requires IPv6 prefix to be configured!') + if ipoe['gateway_address']: + if ipoe['client_named_ip_pool']: + ipoe_gateways = ' '.join(ipoe['gateway_address']) + for pool in ipoe['client_named_ip_pool']: + if f'{pool["gateway_address"]}/' in ipoe_gateways: + raise ConfigError( + 'IPoE "gateway-address" exists in IPoE "client-ip-pool"!') return None |