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



Reply via email to