[EXT] [PATCH v4] ethdev: support congestion management
Andrew Rybchenko
andrew.rybchenko at oktetlabs.ru
Fri Oct 7 12:07:03 CEST 2022
On 10/7/22 09:09, Sunil Kumar Kori wrote:
>> -----Original Message-----
>> From: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
>> Sent: Tuesday, October 4, 2022 2:33 PM
>> To: Ferruh Yigit <ferruh.yigit at amd.com>; Thomas Monjalon
>> <thomas at monjalon.net>; Ray Kinsella <mdr at ashroe.eu>
>> Cc: dev at dpdk.org; Jerin Jacob Kollanukkaran <jerinj at marvell.com>; Sunil
>> Kumar Kori <skori at marvell.com>
>> Subject: [EXT] [PATCH v4] ethdev: support congestion management
>>
>> External Email
>>
>> ----------------------------------------------------------------------
>> From: Jerin Jacob <jerinj at marvell.com>
>>
>> NIC HW controllers often come with congestion management support on
>> various HW objects such as Rx queue depth or mempool queue depth.
>>
>> Also, it can support various modes of operation such as RED (Random early
>> discard), WRED etc on those HW objects.
>>
>> Add a framework to express such modes(enum rte_cman_mode) and
>> introduce (enum rte_eth_cman_obj) to enumerate the different objects
>> where the modes can operate on.
>>
>> Add RTE_CMAN_RED mode of operation and
>> RTE_ETH_CMAN_OBJ_RX_QUEUE,
>> RTE_ETH_CMAN_OBJ_RX_QUEUE_MEMPOOL objects.
>>
>> Introduce reserved fields in configuration structure backed by
>> rte_eth_cman_config_init() to add new configuration parameters without
>> ABI breakage.
>>
>> Add rte_eth_cman_info_get() API to get the information such as supported
>> modes and objects.
>>
>> Add rte_eth_cman_config_init(), rte_eth_cman_config_set() APIs to
>> configure congestion management on those object with associated mode.
>>
>> Finally, add rte_eth_cman_config_get() API to retrieve the applied
>> configuration.
>>
>> Signed-off-by: Jerin Jacob <jerinj at marvell.com>
>> Signed-off-by: Sunil Kumar Kori <skori at marvell.com>
>> Signed-off-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
>> ---
>> v3..v4: Andrew Rybchenko
>> - rebase
>> - remove eth_check_err() and use eth_err() instead
>> - minor fixes in description to avoid "This patch" and "Added".
>> - correct position in release notes
>> v2..v3:
>> - Rename rte_cman.c to rte_ethdev_cman.c
>> - Move lib/eal/include/rte_cman.h to lib/ethdev/rte_cman.h
>> - Fix review comments (Andrew Rybchenko)
>> - Add release notes
>>
>> v1..v2:
>> - Fix review comments (Akhil Goyal)
>>
>> rfc..v1:
>> - Added RED specification
>> (https://urldefense.proofpoint.com/v2/url?u=http-
>> 3A__www.aciri.org_floyd_papers_red_red.html&d=DwIDAg&c=nKjWec2b6R
>> 0mOyPaz7xtfQ&r=dXeXaAMkP5COgn1zxHMyaF1_d9IIuq6vHQO6NrIPjaE&m=
>> cfAKlvyly-
>> kCcVREQz1PWXyTolJrljsQUlj1VPUP5Y3GmvOpjvj66NNuJgv8sAYy&s=Ku1odzug
>> BjIDA-mJnbb5p6GViFoSxYlzqBr4RshwYtg&e= ) link
>> - Fixed doxygen comment issue (Min Hu)
>>
>> doc/guides/nics/features.rst | 12 ++
>> doc/guides/nics/features/default.ini | 1 +
>> doc/guides/rel_notes/release_22_11.rst | 6 +
>> lib/ethdev/ethdev_driver.h | 25 ++++
>> lib/ethdev/ethdev_private.h | 3 +
>> lib/ethdev/meson.build | 2 +
>> lib/ethdev/rte_cman.h | 55 +++++++++
>> lib/ethdev/rte_ethdev.c | 2 +-
>> lib/ethdev/rte_ethdev.h | 164 +++++++++++++++++++++++++
>> lib/ethdev/rte_ethdev_cman.c | 101 +++++++++++++++
>> lib/ethdev/version.map | 4 +
>> 11 files changed, 374 insertions(+), 1 deletion(-) create mode 100644
>> lib/ethdev/rte_cman.h create mode 100644 lib/ethdev/rte_ethdev_cman.c
>>
>
>
> [snip]
>
>> 2.30.2
>
> Acked-by: Sunil Kumar Kori <skori at marvell.com>
>
Applied to dpdk-next-net/main, thanks.
More information about the dev
mailing list