[dpdk-dev] ethdev flags and capabilities

Shahaf Shuler shahafs at mellanox.com
Wed May 2 07:28:30 CEST 2018


Tuesday, May 1, 2018 11:41 PM, Thomas Monjalon:
> Subject: [dpdk-dev] ethdev flags and capabilities
> 
> Since DPDK 18.05-rc1, we have 2 new fields in rte_eth_dev_info:
> 	const uint32_t *dev_flags;
> 	uint64_t dev_capa;
> 
> The field dev_flags
> (https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdp
> dk.org%2Fcommit%2F736b30ebf2&data=02%7C01%7Cshahafs%40mellanox.c
> om%7C16eef57203764ae7fc2208d5afa3e448%7Ca652971c7d2e4d9ba6a4d149
> 256f461b%7C0%7C0%7C636608040838595097&sdata=u6Vxc6hK6cdWprool%2
> FtZZN6GuVi72gg0Uvxenf6d5r0%3D&reserved=0)
> is a pointer to rte_eth_dev_data.dev_flags for these bits:
> 	RTE_ETH_DEV_INTR_LSC
> 	RTE_ETH_DEV_BONDED_SLAVE
> 	RTE_ETH_DEV_INTR_RMV
> 	RTE_ETH_DEV_REPRESENTOR
> 
> The field dev_capa
> (https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdp
> dk.org%2Fcommit%2Fcac923cfea&data=02%7C01%7Cshahafs%40mellanox.c
> om%7C16eef57203764ae7fc2208d5afa3e448%7Ca652971c7d2e4d9ba6a4d149
> 256f461b%7C0%7C0%7C636608040838595097&sdata=YyB0S2vzSQgXpU4XP5H
> YEBb%2B35jUnGGOEbyWR4tsfxs%3D&reserved=0)
> is an integer for these bits:
> 	RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP
> 	RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP
> 
> How can we merge them?
> Should we move the capabilities in rte_eth_dev_data.dev_flags?
> Or do we want to keep the capabilities in rte_eth_dev_info?
> Is it OK to use pointers in rte_eth_dev_info or should we make a copy of
> rte_eth_dev_data fields?
> 
> We need to take a decision before RC3. Thanks

As I wrote on the comments on one of the series[1]

I think the first stage is to distinguish between an attribute of a port and capability of a port. 
e.g. REPRESENTOR is port attribute, while supporting interrupts is capability. 

So I think we still need the two fields, but need to make some order.

1. Capabilities should have RTE_ETH_DEV_CAPA prefix and attributes should have RTE_ETH_DEV_ATTR prefix. 
2. dev_flags is not a good name. flags is too generic word.
3. RTE_ETH_DEV_BONDED_SLAVE should not be exposed to application. 


[1] http://dpdk.org/ml/archives/dev/2018-March/094146.html




> 



More information about the dev mailing list