> -----Original Message----- > From: Medvedkin, Vladimir <vladimir.medved...@intel.com> > Sent: Wednesday, September 16, 2020 12:28 AM > To: Bruce Richardson <bruce.richard...@intel.com>; Ruifeng Wang > <ruifeng.w...@arm.com> > Cc: dev@dpdk.org; Honnappa Nagarahalli > <honnappa.nagaraha...@arm.com>; nd <n...@arm.com> > Subject: Re: [PATCH 2/2] lpm: hide internal data > > Hi Ruifeng, > > On 15/09/2020 17:02, Bruce Richardson wrote: > > On Mon, Sep 07, 2020 at 04:15:17PM +0800, Ruifeng Wang wrote: > >> Fields except tbl24 and tbl8 in rte_lpm structure have no need to be > >> exposed to the user. > >> Hide the unneeded exposure of structure fields for better ABI > >> maintainability. > >> > >> Suggested-by: David Marchand <david.march...@redhat.com> > >> Signed-off-by: Ruifeng Wang <ruifeng.w...@arm.com> > >> Reviewed-by: Phil Yang <phil.y...@arm.com> > >> --- > >> lib/librte_lpm/rte_lpm.c | 152 +++++++++++++++++++++++--------------- > - > >> lib/librte_lpm/rte_lpm.h | 7 -- > >> 2 files changed, 91 insertions(+), 68 deletions(-) > >> > > <snip> > >> diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h > >> index 03da2d37e..112d96f37 100644 > >> --- a/lib/librte_lpm/rte_lpm.h > >> +++ b/lib/librte_lpm/rte_lpm.h > >> @@ -132,17 +132,10 @@ struct rte_lpm_rule_info { > >> > >> /** @internal LPM structure. */ > >> struct rte_lpm { > >> - /* LPM metadata. */ > >> - char name[RTE_LPM_NAMESIZE]; /**< Name of the lpm. */ > >> - uint32_t max_rules; /**< Max. balanced rules per lpm. */ > >> - uint32_t number_tbl8s; /**< Number of tbl8s. */ > >> - struct rte_lpm_rule_info rule_info[RTE_LPM_MAX_DEPTH]; /**< > Rule info table. */ > >> - > >> /* LPM Tables. */ > >> struct rte_lpm_tbl_entry tbl24[RTE_LPM_TBL24_NUM_ENTRIES] > >> __rte_cache_aligned; /**< LPM tbl24 table. */ > >> struct rte_lpm_tbl_entry *tbl8; /**< LPM tbl8 table. */ > >> - struct rte_lpm_rule *rules_tbl; /**< LPM rules. */ > >> }; > >> > > > > Since this changes the ABI, does it not need advance notice? > > > > [Basically the return value point from rte_lpm_create() will be > > different, and that return value could be used by rte_lpm_lookup() > > which as a static inline function will be in the binary and using the > > old structure offsets.] > > > > Agree with Bruce, this patch breaks ABI, so it can't be accepted without prior > notice. > So if the change wants to happen in 20.11, a deprecation notice should have been added in 20.08. I should have added a deprecation notice. This change will have to wait for next ABI update window.
Thanks. Ruifeng > >> /** LPM RCU QSBR configuration structure. */ > >> -- > >> 2.17.1 > >> > > -- > Regards, > Vladimir