#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)
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;
{
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);
* 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 */
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);
* 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;
}