MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ixgbe_hw_rss_hash_set

Function ixgbe_hw_rss_hash_set

dpdk/drivers/net/ixgbe/ixgbe_rxtx.c:3552–3600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3550}
3551
3552static void
3553ixgbe_hw_rss_hash_set(struct ixgbe_hw *hw, struct rte_eth_rss_conf *rss_conf)
3554{
3555 uint8_t *hash_key;
3556 uint32_t mrqc;
3557 uint32_t rss_key;
3558 uint64_t rss_hf;
3559 uint16_t i;
3560 uint32_t mrqc_reg;
3561 uint32_t rssrk_reg;
3562
3563 mrqc_reg = ixgbe_mrqc_reg_get(hw->mac.type);
3564 rssrk_reg = ixgbe_rssrk_reg_get(hw->mac.type, 0);
3565
3566 hash_key = rss_conf->rss_key;
3567 if (hash_key != NULL) {
3568 /* Fill in RSS hash key */
3569 for (i = 0; i < 10; i++) {
3570 rss_key = hash_key[(i * 4)];
3571 rss_key |= hash_key[(i * 4) + 1] << 8;
3572 rss_key |= hash_key[(i * 4) + 2] << 16;
3573 rss_key |= hash_key[(i * 4) + 3] << 24;
3574 IXGBE_WRITE_REG_ARRAY(hw, rssrk_reg, i, rss_key);
3575 }
3576 }
3577
3578 /* Set configured hashing protocols in MRQC register */
3579 rss_hf = rss_conf->rss_hf;
3580 mrqc = IXGBE_MRQC_RSSEN; /* Enable RSS */
3581 if (rss_hf & RTE_ETH_RSS_IPV4)
3582 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4;
3583 if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV4_TCP)
3584 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_TCP;
3585 if (rss_hf & RTE_ETH_RSS_IPV6)
3586 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6;
3587 if (rss_hf & RTE_ETH_RSS_IPV6_EX)
3588 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX;
3589 if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV6_TCP)
3590 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_TCP;
3591 if (rss_hf & RTE_ETH_RSS_IPV6_TCP_EX)
3592 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP;
3593 if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV4_UDP)
3594 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV4_UDP;
3595 if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV6_UDP)
3596 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_UDP;
3597 if (rss_hf & RTE_ETH_RSS_IPV6_UDP_EX)
3598 mrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP;
3599 IXGBE_WRITE_REG(hw, mrqc_reg, mrqc);
3600}
3601
3602int
3603ixgbe_dev_rss_hash_update(struct rte_eth_dev *dev,

Callers 3

ixgbe_rss_configureFunction · 0.85
ixgbe_config_rss_filterFunction · 0.85

Calls 2

ixgbe_mrqc_reg_getFunction · 0.85
ixgbe_rssrk_reg_getFunction · 0.85

Tested by

no test coverage detected