> >>
> >>>  static inline int
> >>>  rte_eth_rx_queue_count(uint16_t port_id, uint16_t queue_id)
> >>>  {
> >>> - struct rte_eth_dev *dev;
> >>> + struct rte_eth_fp_ops *p;
> >>> + void *qd;
> >>> +
> >>> + if (port_id >= RTE_MAX_ETHPORTS ||
> >>> +                 queue_id >= RTE_MAX_QUEUES_PER_PORT) {
> >>> +         RTE_ETHDEV_LOG(ERR,
> >>> +                 "Invalid port_id=%u or queue_id=%u\n",
> >>> +                 port_id, queue_id);
> >>> +         return -EINVAL;
> >>> + }
> >>
> >> Should the checkes wrapped with '#ifdef RTE_ETHDEV_DEBUG_RX' like others?
> >
> > Original rte_eth_rx_queue_count() always have similar checks enabled,
> > that's why I also kept them 'always on'.
> >
> >>
> >> <...>
> >>
> >>> +++ b/lib/ethdev/version.map
> >>> @@ -247,11 +247,16 @@ EXPERIMENTAL {
> >>>   rte_mtr_meter_policy_delete;
> >>>   rte_mtr_meter_policy_update;
> >>>   rte_mtr_meter_policy_validate;
> >>> +
> >>> + # added in 21.05
> >>
> >> s/21.05/21.11/
> >>
> >>> + __rte_eth_rx_epilog;
> >>> + __rte_eth_tx_prolog;
> >>
> >> These are directly called by application and must be part of ABI, but 
> >> marked as
> >> 'internal' and has '__rte' prefix to highligh it, this may be confusing.
> >> What about making them proper, non-internal, API?
> >
> > Hmm not sure what do you suggest here.
> > We don't want users to call them explicitly.
> > They are sort of helpers for rte_eth_rx_burst/rte_eth_tx_burst.
> > So I did what I thought is our usual policy for such semi-internal thigns:
> > have '@intenal' in comments, but in version.map put them under 
> > EXPERIMETAL/global
> > section.
> >
> > What do you think it should be instead?
> >
> 
> Make them public API. (Basically just remove '__' prefix and @internal 
> comment).
> 
> This way application can use them to run custom callback(s) (not only the
> registered ones), not sure if this can be dangerous though.

Hmm, as I said above, I don't want users to call them explicitly.
Do you have any good reason to allow it?

> 
> We need to trace the ABI for these functions, making them public clarifies it.

We do have plenty of semi-internal functions right now,
why adding that one will be a problem?
From other side - if we'll declare it public, we will have obligations to 
support it
in future releases, plus it might encourage users to use it on its own.
To me that sounds like extra headache without any gain in return.

> Also comment can be updated to describe intended usage instead of marking them
> internal, and applications can use these anyway if we mark them internal or 
> not.

Reply via email to