Hi all: I'm trying to bring up VPP to run over failsafe PMD in DPDK mode. Since I'm changing one of the assumptions VPP has regarding to DPDK port indexes, I'm wondering if there are more extensive DPDK related tests/manual validations than 'make test' I can do to be more confident about not causing regressions.
The change that alters the assumption is to decouple the usage of xd->device_index to index into VPP's internal xd array and the usage of the same index to call into DPDK APIs. Upon using failsafe PMD, the port range returned from DPDK is no longer contiguous since the failsafe sub-devices (PMDs underneath failsafe PMD) will not be visible to the application. Because of this, an application can no longer safely loop through all available DPDK ports using a for-loop from index 0 up to rte_eth_dev_count(). Instead, application needs to use RTE_ETH_FOREACH_DEV macro to enumerate through all available ports as suggested in the following change to DPDK: http://dpdk.org/ml/archives/dev/2018-March/092375.html Apart from passing "make test", I also broke into gdb to verify the xd array allocation when VPP is running over a few failsafe PMDs. Thanks in advance for all the help and pointers! -Rui