17/03/2020 14:27, Kusztal, ArkadiuszX: > Hi Thomas, > > > -----Original Message----- > > From: Thomas Monjalon <tho...@monjalon.net> > > Sent: Monday, March 16, 2020 2:09 PM > > To: Trahe, Fiona <fiona.tr...@intel.com> > > Cc: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>; David Marchand > > <david.march...@redhat.com>; nhor...@tuxdriver.com; > > bl...@debian.org; ktray...@redhat.com; Ray Kinsella <m...@ashroe.eu>; > > dev@dpdk.org; Akhil Goyal <akhil.go...@nxp.com>; Yigit, Ferruh > > <ferruh.yi...@intel.com>; Ananyev, Konstantin > > <konstantin.anan...@intel.com>; dev@dpdk.org; Anoob Joseph > > <ano...@marvell.com>; Richardson, Bruce <bruce.richard...@intel.com>; > > Mcnamara, John <john.mcnam...@intel.com>; do...@seketeli.net; Andrew > > Rybchenko <arybche...@solarflare.com>; acon...@redhat.com; Trahe, > > Fiona <fiona.tr...@intel.com> > > Subject: Re: [dpdk-dev] [PATCH v2 4/4] add ABI checks > > > > 16/03/2020 13:57, Trahe, Fiona: > > > From: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com> > > > > > > > The patch we're working on will provide two versions of > > > > > > > rte_cryptodev_info_get(), both call the same PMD function from > > > > > > > the > > > > > dev_ops info_get fn ptr. > > > > > > > The default version operates s as normal, the 19.11 version > > > > > > > searches through the list returned by the PMD, looking for > > > > > > > sym.aead.algo = ChaChaPoly, it needs to strip it from > > > > > > the list. > > > > > > > As PMDs just pass a ptr to their capabilities list ( it isn't > > > > > > > a linked list, but an array with an end marker = > > > > > > > RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST) if the API layer > > > > > > > detects Chacha it must allocate some space and store a local > > > > > > > copy of the trimmed > > > > > list. This must be stored only once per device. > > > > > > > > [Arek] The problem with this solution is that we need to allocate > > > > memory. > > > > So the question is how to handle unlikely case of malloc error when > > > > we operate inside void function rte_cryptodev_info_get? > > > > And even if we would pass somehow error condition to the caller then > > what to do is another question. > > > > > > [Fiona] Quick recap: To avoid breaking ABI, we must return a set of > > > capabilities with/without ChaChaPoly depending on the appl version. To > > > resolve this, within the rte_cryptodev layer, we propose to inspect the > > capabilities returned by PMD and strip ChaCha if it exists. > > > In that case memory for the new trimmed capabilities array has to be > > malloced by the lib. > > > > What happens if the capability is removed from the original capabilities > > input? > > > > > All good, except how to handle a malloc fail is yet another API breakage > > > as > > rte_cryptodev_get_info() returns void. > > > We propose to return an empty capability list, i.e. a list with only > > > the END element (which can be done without malloc) in this corner case of > > a corner case. > > > Anyone see any issue with this? > > > > How can we use the feature if it is not advertised in capabilities? > What Fiona meant is that empty capability would indicate error condition in > this case. That's why she asked if you ok with this API breakage.
Sorry I'm lost. Please could you show what would be the usage?