The use of if_index in some drivers is wrong. It does not match the user expectation in the documentation.
This code: dpaa2/dpaa2_ethdev.c: dev_info->if_index = priv->hw_id; pfe/pfe_ethdev.c: dev_info->if_index = internals->id; Does match: struct rte_eth_dev_info { struct rte_device *device; /** Generic device information */ const char *driver_name; /**< Device Driver name. */ unsigned int if_index; /**< Index to bound host interface, or 0 if none. Use if_indextoname() to translate into an interface name. */ Also, this code is unnecessary.