15/03/2021 08:18, Andrew Rybchenko: > On 3/12/21 8:46 PM, Thomas Monjalon wrote: > > --- a/lib/librte_ethdev/rte_flow.c > > +++ b/lib/librte_ethdev/rte_flow.c > > @@ -255,18 +255,19 @@ rte_flow_ops_get(uint16_t port_id, struct > > rte_flow_error *error) > > > > if (unlikely(!rte_eth_dev_is_valid_port(port_id))) > > code = ENODEV; > > - else if (unlikely(!dev->dev_ops->filter_ctrl || > > - dev->dev_ops->filter_ctrl(dev, > > - RTE_ETH_FILTER_GENERIC, > > - RTE_ETH_FILTER_GET, > > - &ops) || > > - !ops)) > > - code = ENOSYS; > > + else if (unlikely(dev->dev_ops->flow_ops_get == NULL)) > > + code = ENOTSUP; > > else > > - return ops; > > - rte_flow_error_set(error, code, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > > - NULL, rte_strerror(code)); > > - return NULL; > > + code = dev->dev_ops->flow_ops_get(dev, &ops); > > + if (code == 0 && ops == NULL) > > + code = EACCES; > > It looks something new. I think it should be mentioned in flow_ops_get > type documentation (similar to eth_promiscuous_enable_t) and > rte_flow_validate() etc functions > return values description.
It is an internal function used only in rte_flow.c. The real consequence is to set rte_errno in a lot of rte_flow API. Not sure there is a good way to document the code details. Other codes are not documented in rte_flow.h