[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