diff options
author | Daniil Baturin <daniil@vyos.io> | 2025-06-12 15:14:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-12 15:14:13 +0100 |
commit | 71f4f8c55ae660ae39113981a44bd1cd7ef77394 (patch) | |
tree | 62447325e30679f85e2c3808073d32d9d5d2fe55 /src | |
parent | b0caf4541d7017dbb8cf13fe32f1c287c3c403bd (diff) | |
parent | 906ad30fd30f78f5e4c0dac575d4b3f7c64e30b0 (diff) | |
download | vyos-1x-71f4f8c55ae660ae39113981a44bd1cd7ef77394.tar.gz vyos-1x-71f4f8c55ae660ae39113981a44bd1cd7ef77394.zip |
Merge pull request #4546 from sarthurdev/T7056
openvpn: T7056: Raise error if non-TAP device is bridged
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/interfaces_bridge.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/conf_mode/interfaces_bridge.py b/src/conf_mode/interfaces_bridge.py index c14e6a599..fce07ae0a 100755 --- a/src/conf_mode/interfaces_bridge.py +++ b/src/conf_mode/interfaces_bridge.py @@ -111,6 +111,11 @@ def get_config(config=None): elif interface.startswith('wlan') and interface_exists(interface): set_dependents('wlan', conf, interface) + if interface.startswith('vtun'): + _, tmp_config = get_interface_dict(conf, ['interfaces', 'openvpn'], interface) + tmp = tmp_config.get('device_type') == 'tap' + bridge['member']['interface'][interface].update({'valid_ovpn' : tmp}) + # delete empty dictionary keys - no need to run code paths if nothing is there to do if 'member' in bridge: if 'interface' in bridge['member'] and len(bridge['member']['interface']) == 0: @@ -178,6 +183,9 @@ def verify(bridge): if option in interface_config: raise ConfigError('Can not use VLAN options on non VLAN aware bridge') + if interface.startswith('vtun') and not interface_config['valid_ovpn']: + raise ConfigError(error_msg + 'OpenVPN device-type must be set to "tap"') + if 'enable_vlan' in bridge: if dict_search('vif.1', bridge): raise ConfigError(f'VLAN 1 sub interface cannot be set for VLAN aware bridge {ifname}, and VLAN 1 is always the parent interface') |