12/07/2022 11:16, Maxime Coquelin: > > On 5/18/21 09:34, Thomas Monjalon wrote: > > There is a layer violation in the vDPA API which encourages to destroy > > a full device with rte_dev_remove() instead of just closing the port. > > The plan is to introduce a new function in 21.08, promote in 21.11, > > and deprecate rte_vdpa_get_rte_device() in 21.11. [...] > > +* vdpa: The vDPA API should not try to manipulate or export > > + any ``rte_device`` object, which belongs to the bus layer. > > + The function ``rte_vdpa_get_rte_device()`` will be deprecated in 21.11, > > + when its usage will be replaced with a function ``rte_vdpa_close()``. > > + The new function should enter in 21.08 and get promoted to stable in > > 21.11. > > + A port close function will allow to close a single port without > > destroying > > + the rest of the device. > > Maybe there was some changes since you posted the announce, but I don't > see why rte_vdpa_close() would be needed. It seems the only user of > rte_vdpa_get_rte_device() is the internal vDPA example, and it only use > it to get and print the device name.
You're right, it was an oversight. So we need only to get the rte_device name. I propose to replace struct rte_device *rte_vdpa_get_rte_device(struct rte_vdpa_device *vdpa_dev); with const char *rte_vdpa_get_name(void);