diff options
| author | Oleksandr Kuchmystyi <o.kuchmystyi@vyos.io> | 2026-02-18 12:35:28 +0300 |
|---|---|---|
| committer | Oleksandr Kuchmystyi <o.kuchmystyi@vyos.io> | 2026-02-18 16:16:32 +0300 |
| commit | 45077f87eee6772839b9f0fabdf79a385d0b46f1 (patch) | |
| tree | cb25d8dd386a3040840b8fa557ab375947981fd8 /src | |
| parent | fc94e37b6f3f2bffcea24d11c926f4536b449c16 (diff) | |
| download | vyos-1x-45077f87eee6772839b9f0fabdf79a385d0b46f1.tar.gz vyos-1x-45077f87eee6772839b9f0fabdf79a385d0b46f1.zip | |
vpp: T8274: Remove dpdk-options section for num-* parameters
Remove `dpdk-options` under `set vpp settings interface <ethN>`
and move its child options to the interface level:
- `num-rx-desc`
- `num-rx-queues`
- `num-tx-desc`
- `num-tx-queues`
Also remove `set vpp settings interface <ethN> dpdk-options promisc`.
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/vpp.py | 23 | ||||
| -rw-r--r-- | src/migration-scripts/vpp/7-to-8 | 34 |
2 files changed, 39 insertions, 18 deletions
diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py index 08eba8a45..d436fbe6b 100755 --- a/src/conf_mode/vpp.py +++ b/src/conf_mode/vpp.py @@ -554,21 +554,15 @@ def verify(config): Warning(f'Not all RX queues will be connected to VPP for {iface}!') - if iface_config['driver'] == 'xdp' and 'dpdk_options' in iface_config: - raise ConfigError('DPDK options are not applicable for XDP driver!') - - if iface_config['driver'] == 'dpdk' and 'xdp_options' in iface_config: - raise ConfigError('XDP options are not applicable for DPDK driver!') - - if iface_config['driver'] == 'dpdk' and 'dpdk_options' in iface_config: - if 'num_rx_queues' in iface_config['dpdk_options']: - rx_queues = int(iface_config['dpdk_options']['num_rx_queues']) + if iface_config['driver'] == 'dpdk': + if 'num_rx_queues' in iface_config: + rx_queues = int(iface_config['num_rx_queues']) verify_vpp_interfaces_dpdk_num_queues( qtype='receive', num_queues=rx_queues, workers=cpu_cores ) - if 'num_tx_queues' in iface_config['dpdk_options']: - tx_queues = int(iface_config['dpdk_options']['num_tx_queues']) + if 'num_tx_queues' in iface_config: + tx_queues = int(iface_config['num_tx_queues']) verify_vpp_interfaces_dpdk_num_queues( qtype='transmit', num_queues=tx_queues, workers=cpu_cores ) @@ -783,13 +777,6 @@ def apply(config): # add interfaces iproute = IPRoute() for iface, iface_config in config['settings']['interface'].items(): - # promisc option for DPDK interfaces - if iface_config['driver'] == 'dpdk': - if 'promisc' in iface_config['dpdk_options']: - if_index = vpp_control.get_sw_if_index(iface) - vpp_control.api.sw_interface_set_promisc( - sw_if_index=if_index, promisc_on=True - ) # add XDP interfaces if iface_config['driver'] == 'xdp': control_host.rename_iface(iface, f'defunct_{iface}') diff --git a/src/migration-scripts/vpp/7-to-8 b/src/migration-scripts/vpp/7-to-8 index 122456e1f..54a1a7c43 100644 --- a/src/migration-scripts/vpp/7-to-8 +++ b/src/migration-scripts/vpp/7-to-8 @@ -26,6 +26,11 @@ # Convert `vpp settings interface <name> rx-mode` and `vpp kernel-interfaces <name> rx-mode` # to `vpp settings interfaces-rx-mode` by choose the worst value from all nodes (T8266) # +# Get rid of 'dpdk-options' section for 'num-*' parameters: +# - `vpp settings interface <ethN> dpdk-options num-*` +# - `vpp settings interface <ethN> num-*` +# and delete `vpp settings interface <ethN> dpdk-options promisc` (T8274) +# from vyos.configtree import ConfigTree @@ -155,6 +160,34 @@ def _migrate_vpp_interface_rx_mode(config: ConfigTree) -> None: _delete_rx_modes(kernel_interface_path) +def _migrate_vpp_dpdk_options(config: ConfigTree) -> None: + base_path = ['vpp', 'settings', 'interface'] + params = ['num-rx-desc', 'num-rx-queues', 'num-tx-desc', 'num-tx-queues'] + + if not config.exists(base_path): + return + + for iface_name in config.list_nodes(base_path): + iface_path = base_path + [iface_name] + dpdk_path = iface_path + ['dpdk-options'] + + if config.exists(dpdk_path): + for param in params: + param_path = dpdk_path + [param] + new_param_path = iface_path + [param] + + if config.exists(param_path): + # Move `vpp settings interface <iface_name> dpdk-options num-*` + # to `vpp settings interface <iface_name> num-*` + config.copy(param_path, new_param_path) + config.delete(param_path) + + # Delete `vpp settings interface <iface_name> dpdk-options promisc` + promisc_path = dpdk_path + ['promisc'] + if config.exists(promisc_path): + config.delete(promisc_path) + + def migrate(config: ConfigTree) -> None: if not config.exists(['vpp']): # Nothing to do @@ -166,3 +199,4 @@ def migrate(config: ConfigTree) -> None: _migrate_vpp_ipsec(config) _migrate_vpp_cpu(config) _migrate_vpp_interface_rx_mode(config) + _migrate_vpp_dpdk_options(config) |
