16/04/2018 15:06, Declan Doherty: > Add new device flag to specify that an ethdev port is a port representor. > Extend rte_eth_dev_info structure to expose device flags to the user which > enables applications to discover if a port is a representor port. [...] > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -2431,6 +2431,8 @@ rte_eth_dev_info_get(uint16_t port_id, struct > rte_eth_dev_info *dev_info) > dev_info->driver_name = dev->device->driver->name; > dev_info->nb_rx_queues = dev->data->nb_rx_queues; > dev_info->nb_tx_queues = dev->data->nb_tx_queues; > + > + dev_info->dev_flags = dev->data->dev_flags; > } [...] > --- a/lib/librte_ether/rte_ethdev.h > +++ b/lib/librte_ether/rte_ethdev.h > @@ -1032,6 +1032,7 @@ struct rte_eth_dev_info { > 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. */ > + uint32_t dev_flags; /**< Device flags */
A similar field has been added recently: http://dpdk.org/browse/next/dpdk-next-net/tree/lib/librte_ether/rte_ethdev.h#n1074 /** Generic device capabilities */ uint64_t dev_capa; It is for flags DEV_CAPA_* Note that the prefix should be fixed to RTE_ETH_DEV, and the doxygen comment should mention the flags prefix. Qi, please fix. I think dev_capa and dev_flags are the same thing. They could be merged. > /** Device supports link state interrupt */ > -#define RTE_ETH_DEV_INTR_LSC 0x0002 > +#define RTE_ETH_DEV_INTR_LSC 0x0002 > /** Device is a bonded slave */ > -#define RTE_ETH_DEV_BONDED_SLAVE 0x0004 > +#define RTE_ETH_DEV_BONDED_SLAVE 0x0004 > /** Device supports device removal interrupt */ > -#define RTE_ETH_DEV_INTR_RMV 0x0008 > +#define RTE_ETH_DEV_INTR_RMV 0x0008 > +/** Device is port representor */ > +#define RTE_ETH_DEV_REPRESENTOR 0x0010 It seems you tried to re-align but it fails. Better to use spaces for alignment.