[dpdk-dev] [PATCH 05/22] ixgbe: enlarge the hash flags of RSS to 64 bits

Helin Zhang helin.zhang at intel.com
Wed May 21 17:30:04 CEST 2014


As the hash flags of RSS has been enlarged from 16 bits to 64 bits in
'struct rte_eth_rss_conf' in rte_ethdev.h, the size of it in ixgbe should be
enlarged as well. In addition, the flags for ixgbe only should be masked,
as there are flags for others in that 64 bits.

Signed-off-by: Helin Zhang <helin.zhang at intel.com>
Signed-off-by: Mark Chen <jing.d.chen at intel.com>
---
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
index 37d02aa..5138035 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
@@ -2294,19 +2294,31 @@ ixgbe_rss_disable(struct rte_eth_dev *dev)
 static void
 ixgbe_rss_configure(struct rte_eth_dev *dev)
 {
+#define IXGBE_RSS_OFFLOAD_ALL ( \
+		ETH_RSS_IPV4 | \
+		ETH_RSS_IPV4_TCP | \
+		ETH_RSS_IPV6 | \
+		ETH_RSS_IPV6_EX | \
+		ETH_RSS_IPV6_TCP | \
+		ETH_RSS_IPV6_TCP_EX | \
+		ETH_RSS_IPV4_UDP | \
+		ETH_RSS_IPV6_UDP | \
+		ETH_RSS_IPV6_UDP_EX)
+
 	struct ixgbe_hw *hw;
 	uint8_t *hash_key;
 	uint32_t rss_key;
 	uint32_t mrqc;
 	uint32_t reta;
-	uint16_t rss_hf;
+	uint64_t rss_hf;
 	uint16_t i;
 	uint16_t j;
 
 	PMD_INIT_FUNC_TRACE();
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	rss_hf = dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf;
+	rss_hf = dev->data->dev_conf.rx_adv_conf.rss_conf.rss_hf &
+					IXGBE_RSS_OFFLOAD_ALL;
 	if (rss_hf == 0) { /* Disable RSS */
 		ixgbe_rss_disable(dev);
 		return;
-- 
1.8.1.4



More information about the dev mailing list