On 10/9/2018 11:33 PM, Thomas Monjalon wrote: > The iterator will return the ethdev port ids matching a devargs string. > It is recommended to use the macro RTE_ETH_FOREACH_MATCHING_DEV() > for usage convenience. > > The class string is prefixed with '+' in order to skip the validation > of the parameter keys. It is tolerated for the compatibility with > the old (current) syntax where all parameters (bus, class and driver) > are mixed in the same string without any delimiter. > Thanks to this compatibility prefix, the driver parameters will be > skipped during the ethdev parsing, and not considered invalid. > > A macro is introduced in rte_common.h to workaround a const field. > This hack is needed to free const strings in the iterator. > It is preferred to keep the const for these fields, because it gives > a hint that they are not changed at each iteration. > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > Reviewed-by: Andrew Rybchenko <arybche...@solarflare.com>
<...> > @@ -237,6 +237,9 @@ EXPERIMENTAL { > rte_eth_dev_owner_unset; > rte_eth_dev_rx_offload_name; > rte_eth_dev_tx_offload_name; > + rte_eth_iterator_cleanup; > + rte_eth_iterator_init; > + rte_eth_iterator_next; It would be great to add some unit test for these APIs, it would both show how they are used and verify this functionality with all that "+" trick etc.. Similar to previous patch, vdev iterator. Is it too late to add some unit test for these functionality?