06/02/2024 18:36, Dariusz Sosnowski: > --- a/doc/guides/nics/build_and_test.rst > +++ b/doc/guides/nics/build_and_test.rst > +- ``RTE_FLOW_DEBUG`` (default **disabled**; enabled automatically on debug > builds) > + > + Build with debug code in asynchronous flow APIs. > + > .. Note:: > > - The ethdev library use above options to wrap debug code to trace invalid > parameters > + The ethdev library uses above options to wrap debug code to trace invalid > parameters > on data path APIs, so performance downgrade is expected when enabling > those options. > - Each PMD can decide to reuse them to wrap their own debug code in the > Rx/Tx path. > + Each PMD can decide to reuse them to wrap their own debug code in the > Rx/Tx path > + and in asynchronous flow APIs implementation.
Good > --- a/doc/guides/rel_notes/release_24_03.rst > +++ b/doc/guides/rel_notes/release_24_03.rst > +* ethdev: PMDs implementing asynchronous flow operations are required to > provide relevant functions > + implementation through ``rte_flow_fp_ops`` struct, instead of > ``rte_flow_ops`` struct. > + Pointer to device-dependent ``rte_flow_fp_ops`` should be provided to > ``rte_eth_dev.flow_fp_ops``. That's a change only for the driver. If there is no change for the application, it should not appear in the release notes. BTW, API means Application Programming Interface :) > + This change applies to the following API functions: > + > + * ``rte_flow_async_create`` > + * ``rte_flow_async_create_by_index`` > + * ``rte_flow_async_actions_update`` > + * ``rte_flow_async_destroy`` > + * ``rte_flow_push`` > + * ``rte_flow_pull`` > + * ``rte_flow_async_action_handle_create`` > + * ``rte_flow_async_action_handle_destroy`` > + * ``rte_flow_async_action_handle_update`` > + * ``rte_flow_async_action_handle_query`` > + * ``rte_flow_async_action_handle_query_update`` > + * ``rte_flow_async_action_list_handle_create`` > + * ``rte_flow_async_action_list_handle_destroy`` > + * ``rte_flow_async_action_list_handle_query_update`` > + > +* ethdev: Removed the following fields from ``rte_flow_ops`` struct: > + > + * ``async_create`` > + * ``async_create_by_index`` > + * ``async_actions_update`` > + * ``async_destroy`` > + * ``push`` > + * ``pull`` > + * ``async_action_handle_create`` > + * ``async_action_handle_destroy`` > + * ``async_action_handle_update`` > + * ``async_action_handle_query`` > + * ``async_action_handle_query_update`` > + * ``async_action_list_handle_create`` > + * ``async_action_list_handle_destroy`` > + * ``async_action_list_handle_query_update`` [...] > --- a/lib/ethdev/ethdev_driver.h > +++ b/lib/ethdev/ethdev_driver.h > @@ -71,6 +71,10 @@ struct rte_eth_dev { > struct rte_eth_dev_data *data; > void *process_private; /**< Pointer to per-process device data */ > const struct eth_dev_ops *dev_ops; /**< Functions exported by PMD */ > + /** > + * Fast path flow API functions exported by PMD. > + */ This comment may be on one single line. > + const struct rte_flow_fp_ops *flow_fp_ops; > struct rte_device *device; /**< Backing device */ > struct rte_intr_handle *intr_handle; /**< Device interrupt handle */ > --- a/lib/ethdev/meson.build > +++ b/lib/ethdev/meson.build > +if get_option('buildtype').contains('debug') > + cflags += ['-DRTE_FLOW_DEBUG'] > +endif This looks OK. Acked-by: Thomas Monjalon <tho...@monjalon.net>