On 2/6/2024 10:21 PM, Thomas Monjalon wrote: > 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> > >
Acked-by: Ferruh Yigit <ferruh.yi...@amd.com> Applied to dpdk-next-net/main, thanks.