Add support for IPv4/IPv6 SCTP RSS offload. Signed-off-by: Jiawen Wu <jiawe...@trustnetic.com> --- drivers/net/ngbe/base/ngbe_regs.h | 2 ++ drivers/net/ngbe/ngbe_ethdev.h | 2 ++ drivers/net/ngbe/ngbe_rxtx.c | 8 ++++++++ 3 files changed, 12 insertions(+)
diff --git a/drivers/net/ngbe/base/ngbe_regs.h b/drivers/net/ngbe/base/ngbe_regs.h index b1295280a7..3c123049b7 100644 --- a/drivers/net/ngbe/base/ngbe_regs.h +++ b/drivers/net/ngbe/base/ngbe_regs.h @@ -452,6 +452,8 @@ #define NGBE_RACTL_RSSMASK MS(16, 0xFFFF) #define NGBE_RACTL_RSSIPV4TCP MS(16, 0x1) #define NGBE_RACTL_RSSIPV4 MS(17, 0x1) +#define NGBE_RACTL_RSSIPV4SCTP MS(18, 0x1) +#define NGBE_RACTL_RSSIPV6SCTP MS(19, 0x1) #define NGBE_RACTL_RSSIPV6 MS(20, 0x1) #define NGBE_RACTL_RSSIPV6TCP MS(21, 0x1) #define NGBE_RACTL_RSSIPV4UDP MS(22, 0x1) diff --git a/drivers/net/ngbe/ngbe_ethdev.h b/drivers/net/ngbe/ngbe_ethdev.h index 37c6459f51..faff57ef34 100644 --- a/drivers/net/ngbe/ngbe_ethdev.h +++ b/drivers/net/ngbe/ngbe_ethdev.h @@ -40,9 +40,11 @@ RTE_ETH_RSS_IPV4 | \ RTE_ETH_RSS_NONFRAG_IPV4_TCP | \ RTE_ETH_RSS_NONFRAG_IPV4_UDP | \ + RTE_ETH_RSS_NONFRAG_IPV4_SCTP | \ RTE_ETH_RSS_IPV6 | \ RTE_ETH_RSS_NONFRAG_IPV6_TCP | \ RTE_ETH_RSS_NONFRAG_IPV6_UDP | \ + RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \ RTE_ETH_RSS_IPV6_EX | \ RTE_ETH_RSS_IPV6_TCP_EX | \ RTE_ETH_RSS_IPV6_UDP_EX) diff --git a/drivers/net/ngbe/ngbe_rxtx.c b/drivers/net/ngbe/ngbe_rxtx.c index a372bf2963..3dd268e5bc 100644 --- a/drivers/net/ngbe/ngbe_rxtx.c +++ b/drivers/net/ngbe/ngbe_rxtx.c @@ -2652,6 +2652,10 @@ ngbe_dev_rss_hash_update(struct rte_eth_dev *dev, if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV6_UDP || rss_hf & RTE_ETH_RSS_IPV6_UDP_EX) mrqc |= NGBE_RACTL_RSSIPV6UDP; + if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV4_SCTP) + mrqc |= NGBE_RACTL_RSSIPV4SCTP; + if (rss_hf & RTE_ETH_RSS_NONFRAG_IPV6_SCTP) + mrqc |= NGBE_RACTL_RSSIPV6SCTP; if (rss_hf) mrqc |= NGBE_RACTL_RSSENA; @@ -2704,6 +2708,10 @@ ngbe_dev_rss_hash_conf_get(struct rte_eth_dev *dev, if (mrqc & NGBE_RACTL_RSSIPV6UDP) rss_hf |= RTE_ETH_RSS_NONFRAG_IPV6_UDP | RTE_ETH_RSS_IPV6_UDP_EX; + if (mrqc & NGBE_RACTL_RSSIPV4SCTP) + rss_hf |= RTE_ETH_RSS_NONFRAG_IPV4_SCTP; + if (mrqc & NGBE_RACTL_RSSIPV6SCTP) + rss_hf |= RTE_ETH_RSS_NONFRAG_IPV6_SCTP; if (!(mrqc & NGBE_RACTL_RSSENA)) rss_hf = 0; -- 2.48.1