On 2/13/2017 5:21 PM, Dumitrescu, Cristian wrote: > > >> -----Original Message----- >> From: Yigit, Ferruh >> Sent: Monday, February 13, 2017 4:46 PM >> To: Thomas Monjalon <thomas.monja...@6wind.com>; Dumitrescu, Cristian >> <cristian.dumitre...@intel.com> >> Cc: dev@dpdk.org; Richardson, Bruce <bruce.richard...@intel.com>; Wiles, >> Keith <keith.wi...@intel.com> >> Subject: Re: [dpdk-dev] doc: deprecation notice for ethdev ops? >> >> On 2/13/2017 4:09 PM, Thomas Monjalon wrote: >>> 2017-02-13 16:02, Dumitrescu, Cristian: >>>> Hi Thomas, >>>> >>>> When a new member (function pointer) is added to struct eth_dev_ops >> (as the last member), does it need to go through ABI chance process (e.g. >> chance notice one release before)? >>>> >>>> IMO the answer is no: struct eth_dev_ops is marked as internal and its >> instances are only accessed through pointers, so the rte_eth_devices array >> should not be impacted by the ops structure expanding at its end. Unless >> there is something that I am missing? >>> >>> You are right, it is an internal struct. >>> So no need of a deprecation notice. >> >> When dpdk compiled as dynamic library, application will load PMDs >> dynamically as plugin. >> Is this use case cause ABI compatibility issue? >> >> I think drivers <--> libraries interface can cause ABI breakages for >> dynamic library case, although not sure how common use case this is. >> > > Do you have a specific example that might cause an issue when adding a new > function at the end of the ethdev ops structure? I cannot think of any, given > that the ops structure is marked as internal and it is only accessed through > pointers.
Adding at the end of the struct is probably safe. > >> >>> >>> We must clearly separate API and internal code in ethdev. >>> >>>> My question is in the context of this patch under review for 17.5 release: >> http://www.dpdk.org/ml/archives/dev/2017-February/057367.html. >>> >>> I did not look at it yet. Will do after the release. >>> >>> >