6b81dddbb9
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@marvell.com> Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Sunil Kumar Kori <skori@marvell.com>
48 lines
1018 B
Meson
48 lines
1018 B
Meson
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2017 Intel Corporation
|
|
|
|
sources = files(
|
|
'ethdev_driver.c',
|
|
'ethdev_private.c',
|
|
'ethdev_profile.c',
|
|
'ethdev_trace_points.c',
|
|
'rte_class_eth.c',
|
|
'rte_ethdev.c',
|
|
'rte_ethdev_cman.c',
|
|
'rte_flow.c',
|
|
'rte_mtr.c',
|
|
'rte_tm.c',
|
|
'sff_telemetry.c',
|
|
'sff_common.c',
|
|
'sff_8079.c',
|
|
'sff_8472.c',
|
|
'sff_8636.c',
|
|
)
|
|
|
|
headers = files(
|
|
'rte_cman.h',
|
|
'rte_ethdev.h',
|
|
'rte_ethdev_trace.h',
|
|
'rte_ethdev_trace_fp.h',
|
|
'rte_dev_info.h',
|
|
'rte_flow.h',
|
|
'rte_flow_driver.h',
|
|
'rte_mtr.h',
|
|
'rte_mtr_driver.h',
|
|
'rte_tm.h',
|
|
'rte_tm_driver.h',
|
|
)
|
|
|
|
indirect_headers += files(
|
|
'rte_ethdev_core.h',
|
|
'rte_eth_ctrl.h',
|
|
)
|
|
|
|
driver_sdk_headers += files(
|
|
'ethdev_driver.h',
|
|
'ethdev_pci.h',
|
|
'ethdev_vdev.h',
|
|
)
|
|
|
|
deps += ['net', 'kvargs', 'meter', 'telemetry']
|