From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 125AFB0AA for ; Thu, 5 Jun 2014 07:11:29 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 04 Jun 2014 22:11:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.98,978,1392192000"; d="scan'208";a="542721131" Received: from shilc102.sh.intel.com ([10.239.39.44]) by fmsmga001.fm.intel.com with ESMTP; 04 Jun 2014 22:11:40 -0700 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shilc102.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id s555BMPs025141; Thu, 5 Jun 2014 13:11:24 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id s555BIDW023958; Thu, 5 Jun 2014 13:11:20 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id s555BICd023954; Thu, 5 Jun 2014 13:11:18 +0800 From: Helin Zhang To: dev@dpdk.org Date: Thu, 5 Jun 2014 13:08:53 +0800 Message-Id: <1401944951-23783-10-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1401944951-23783-1-git-send-email-helin.zhang@intel.com> References: <1401944951-23783-1-git-send-email-helin.zhang@intel.com> Subject: [dpdk-dev] [PATCH v2 09/27] ixgbe: enlarge the hash flags of RSS to 64 bits X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jun 2014 05:11:30 -0000 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 has to be enlarged as well. In addition, the flags for ixgbe only are masked, as there are flags for others in those 64 bits. Signed-off-by: Helin Zhang Signed-off-by: Jing Chen Acked-by: Cunming Liang Acked-by: Jijiang Liu Acked-by: Jingjing Wu Tested-by: Waterman Cao --- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c index dc79c4b..bdae98e 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c @@ -77,10 +77,18 @@ #include "ixgbe_ethdev.h" #include "ixgbe/ixgbe_dcb.h" #include "ixgbe/ixgbe_common.h" - - #include "ixgbe_rxtx.h" +#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) static inline struct rte_mbuf * rte_rxmbuf_alloc(struct rte_mempool *mp) @@ -2299,7 +2307,7 @@ ixgbe_hw_rss_hash_set(struct ixgbe_hw *hw, struct rte_eth_rss_conf *rss_conf) uint8_t *hash_key; uint32_t mrqc; uint32_t rss_key; - uint16_t rss_hf; + uint64_t rss_hf; uint16_t i; hash_key = rss_conf->rss_key; @@ -2344,7 +2352,7 @@ ixgbe_dev_rss_hash_update(struct rte_eth_dev *dev, { struct ixgbe_hw *hw; uint32_t mrqc; - uint16_t rss_hf; + uint64_t rss_hf; hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); @@ -2357,7 +2365,7 @@ ixgbe_dev_rss_hash_update(struct rte_eth_dev *dev, * initialization time, or does not attempt to enable RSS, if RSS was * disabled at initialization time. */ - rss_hf = rss_conf->rss_hf; + rss_hf = rss_conf->rss_hf & IXGBE_RSS_OFFLOAD_ALL; mrqc = IXGBE_READ_REG(hw, IXGBE_MRQC); if (!(mrqc & IXGBE_MRQC_RSSEN)) { /* RSS disabled */ if (rss_hf != 0) /* Enable RSS */ @@ -2379,7 +2387,7 @@ ixgbe_dev_rss_hash_conf_get(struct rte_eth_dev *dev, uint8_t *hash_key; uint32_t mrqc; uint32_t rss_key; - uint16_t rss_hf; + uint64_t rss_hf; uint16_t i; hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); @@ -2456,7 +2464,7 @@ ixgbe_rss_configure(struct rte_eth_dev *dev) * the RSS hash of input packets. */ rss_conf = dev->data->dev_conf.rx_adv_conf.rss_conf; - if (rss_conf.rss_hf == 0) { + if ((rss_conf.rss_hf & IXGBE_RSS_OFFLOAD_ALL) == 0) { ixgbe_rss_disable(dev); return; } -- 1.8.1.4