dpdk/0245-net-hns3-separate-setting-hash-key.patch
chenjiji09 dc9da0240d Fix some RSS bugs and reimplement hash flow function for hns3.
1. fix some RSS bugs and optimize RSS codes for hns3
2. reimplement hash flow function for hns3 to satisfy the mainstream usage of rte flow hash in the community

(cherry picked from commit 651fc55df087a9855b899eea5e5fda45a1316893)
2023-03-27 11:47:02 +08:00

50 lines
1.6 KiB
Diff

From 8ca08cd0671207b57d934b439d7b245966fbbfe8 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 10 Mar 2023 17:35:09 +0800
Subject: net/hns3: separate setting hash key
[ upstream commit fe9cc8b88babd0911d91dc194b35c7c352e2bf7b ]
The settings of hash key comes from the ethdev ops (like, dev_configure
and rss_hash_update) and rte_flow API. For the ethdev ops, driver has
to save it to rss_info::key in hns3_hw structure so as to it can be
restored when reset is triggered. While rte_flow API no need to use
this field to save, they has a global flow_rss_list to maintain all
rules which save hash key. And hash key can be restored by this rule
information during the reset phase.
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
drivers/net/hns3/hns3_rss.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index dcd42b554a..401e3adfdf 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -376,8 +376,7 @@ hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
return ret;
}
}
- /* Update the shadow RSS key with user specified */
- memcpy(hw->rss_info.key, key, hw->rss_key_size);
+
return 0;
}
@@ -672,6 +671,8 @@ hns3_dev_rss_hash_update(struct rte_eth_dev *dev,
key, hw->rss_key_size);
if (ret)
goto set_algo_key_fail;
+ /* Update the shadow RSS key with user specified */
+ memcpy(hw->rss_info.key, key, hw->rss_key_size);
}
rte_spinlock_unlock(&hw->lock);
--
2.23.0