diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2025-11-24 11:45:42 +0200 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2025-12-01 12:31:41 +0200 |
| commit | 1b725ee96a4bbbe4942dc26ed21ab184af97855b (patch) | |
| tree | 9cf76ed49506ec5cd4a003b7eef55d2eca47cb0f /src | |
| parent | f4d46db92f9d95c2264c219304172b7b45094bb3 (diff) | |
| download | vyos-1x-1b725ee96a4bbbe4942dc26ed21ab184af97855b.tar.gz vyos-1x-1b725ee96a4bbbe4942dc26ed21ab184af97855b.zip | |
T8030: VPP: Check support for changed driver too
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/vpp.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py index abb68847e..63000110a 100755 --- a/src/conf_mode/vpp.py +++ b/src/conf_mode/vpp.py @@ -346,6 +346,9 @@ def get_config(config=None): conf, base_settings + ['interface', iface, 'driver'] ) + if old_driver: + config['settings']['interface'][iface]['driver_changed'] = {} + # Get current kernel module, required for extra verification and # logic for VMBus interfaces config['settings']['interface'][iface]['kernel_module'] = ( @@ -542,10 +545,14 @@ def verify(config): # ensure DPDK/XDP settings are properly configured for iface, iface_config in config['settings']['interface'].items(): # check if selected driver is supported, but only for new interfaces - if iface not in config.get('effective', {}).get('settings', {}).get( - 'interface', {} + # or if driver was changed + original_driver = config['persist_config'][iface]['original_driver'] + if ( + iface + not in config.get('effective', {}).get('settings', {}).get('interface', {}) + or 'driver_changed' in iface_config ): - if not verify_dev_driver(iface, iface_config['driver']): + if not verify_dev_driver(iface_config['driver'], original_driver): raise ConfigError( f'Driver {iface_config["driver"]} is not compatible with interface {iface}!' ) |
