On 2/7/2024 10:56 AM, Ferruh Yigit wrote: > On 2/7/2024 10:47 AM, Ferruh Yigit wrote: >> On 2/7/2024 9:27 AM, Thomas Monjalon wrote: >>> 07/02/2024 01:57, Ferruh Yigit: >>>> 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. >>> >>> Ferruh, I was expecting a new version. >>> Did you address yourself the comments above? >>> >>> >> >> No, I missed the comment, if it is simple I can apply in next-net, let >> me sync with Dariusz. >> > > As we synced with Dariusz, there is no good place to document > ethdev-drivers interfaces in the release notes. > > Also this release there were more ethdev-drivers interface changes, > around get_ptype(), but those also not documented in the release notes, > so will remove these ones too. >
Dariusz, I did the changes in next-net, can you please double check them: https://git.dpdk.org/next/dpdk-next-net/commit/?h=main&id=23f1ee71a9c332210aaa5b1ec51160938b5fc50b