Sync some patches from upstream about bugfix, modifies are as follow: - app/testpmd: fix crash in multi-process forwarding - net/hns3: fix offload flag of IEEE 1588 - net/hns3: fix read Rx timestamp handle - net/hns3: fix double free for Rx/Tx queue - net/hns3: fix variable overflow - net/hns3: enable PFC for all user priorities - ring: add telemetry command for ring info - ring: add telemetry command to list rings - net/hns3: support power monitor - net/hns3: disable SCTP verification tag for RSS hash input - app/testpmd: fix RSS algorithm choice
56 lines
1.9 KiB
Diff
56 lines
1.9 KiB
Diff
From e6ecd7b0cb7c8f7461ebdfcb394d7ae80392a072 Mon Sep 17 00:00:00 2001
|
|
From: Jie Hai <haijie1@huawei.com>
|
|
Date: Wed, 6 Mar 2024 17:20:47 +0800
|
|
Subject: [PATCH 424/431] net/hns3: enable PFC for all user priorities
|
|
|
|
[ upstream commit aae6989df36c105b917cf69975c075dfde2e6b84 ]
|
|
|
|
When user set TC number to 4 and enable PFC and ETS by dev_configure,
|
|
driver only enable user priority 0-3.
|
|
The packet with user priority 4-7 cannot trigger PFC frame.
|
|
|
|
Fix by enabling PFC for all user priorities.
|
|
|
|
By the way, the nb_tcs from user can never be 0 because of the ahead
|
|
check in driver. So remove this redundant code.
|
|
|
|
Fixes: 62e3ccc2b94c ("net/hns3: support flow control")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Jie Hai <haijie1@huawei.com>
|
|
Signed-off-by: chenyi <chenyi211@huawei.com>
|
|
---
|
|
drivers/net/hns3/hns3_dcb.c | 9 ++-------
|
|
1 file changed, 2 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
|
|
index 2831d3dc62..915e4eb768 100644
|
|
--- a/drivers/net/hns3/hns3_dcb.c
|
|
+++ b/drivers/net/hns3/hns3_dcb.c
|
|
@@ -1499,7 +1499,6 @@ hns3_dcb_info_update(struct hns3_adapter *hns, uint8_t num_tc)
|
|
static int
|
|
hns3_dcb_hw_configure(struct hns3_adapter *hns)
|
|
{
|
|
- struct rte_eth_dcb_rx_conf *dcb_rx_conf;
|
|
struct hns3_pf *pf = &hns->pf;
|
|
struct hns3_hw *hw = &hns->hw;
|
|
enum hns3_fc_status fc_status = hw->current_fc_status;
|
|
@@ -1519,12 +1518,8 @@ hns3_dcb_hw_configure(struct hns3_adapter *hns)
|
|
}
|
|
|
|
if (hw->data->dev_conf.dcb_capability_en & RTE_ETH_DCB_PFC_SUPPORT) {
|
|
- dcb_rx_conf = &hw->data->dev_conf.rx_adv_conf.dcb_rx_conf;
|
|
- if (dcb_rx_conf->nb_tcs == 0)
|
|
- hw->dcb_info.pfc_en = 1; /* tc0 only */
|
|
- else
|
|
- hw->dcb_info.pfc_en =
|
|
- RTE_LEN2MASK((uint8_t)dcb_rx_conf->nb_tcs, uint8_t);
|
|
+ hw->dcb_info.pfc_en =
|
|
+ RTE_LEN2MASK((uint8_t)HNS3_MAX_USER_PRIO, uint8_t);
|
|
|
|
hw->dcb_info.hw_pfc_map =
|
|
hns3_dcb_undrop_tc_map(hw, hw->dcb_info.pfc_en);
|
|
--
|
|
2.33.0
|
|
|