Skip to contentSkip to conversation

net/axgbe: add RSS reta/hash query and update

PATCH Superseded [email protected] 1 participant 1 message May 29, 2020 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 net/axgbe: add RSS reta/hash query and update

From: Chandu Babu N <[email protected]>

add support for RSS reta/hash query and update function

v2:
modification as per Andrew Rybchenko review comments

---
 doc/guides/nics/features/axgbe.ini |   2 +
 drivers/net/axgbe/axgbe_dev.c      |   5 +-
 drivers/net/axgbe/axgbe_ethdev.c   | 144 +++++++++++++++++++++++++++++
 drivers/net/axgbe/axgbe_ethdev.h   |   3 +
 4 files changed, 152 insertions(+), 2 deletions(-)
doc/guides/nics/features/axgbe.ini +2 -0
index 0becaa097..34df0d1ee 100644
@@ -11,6 +11,8 @@ Scattered Rx         = Y
 Promiscuous mode     = Y
 Allmulticast mode    = Y
 RSS hash             = Y
+RSS key update       = Y
+RSS reta update      = Y
 CRC offload          = Y
 L3 checksum offload  = Y
 L4 checksum offload  = Y
drivers/net/axgbe/axgbe_dev.c +3 -2
index 5f0f19592..af62eae3b 100644
@@ -614,7 +614,7 @@ static int axgbe_write_rss_reg(struct axgbe_port *pdata, unsigned int type,
 	return -EBUSY;
 }
 
-static int axgbe_write_rss_hash_key(struct axgbe_port *pdata)
+int axgbe_write_rss_hash_key(struct axgbe_port *pdata)
 {
 	struct rte_eth_rss_conf *rss_conf;
 	unsigned int key_regs = sizeof(pdata->rss_key) / sizeof(u32);
@@ -638,7 +638,7 @@ static int axgbe_write_rss_hash_key(struct axgbe_port *pdata)
 	return 0;
 }
 
-static int axgbe_write_rss_lookup_table(struct axgbe_port *pdata)
+int axgbe_write_rss_lookup_table(struct axgbe_port *pdata)
 {
 	unsigned int i;
 	int ret;
@@ -683,6 +683,7 @@ static void axgbe_rss_options(struct axgbe_port *pdata)
 	uint64_t rss_hf;
 
 	rss_conf = &pdata->eth_dev->data->dev_conf.rx_adv_conf.rss_conf;
+	pdata->rss_hf = rss_conf->rss_hf;
 	rss_hf = rss_conf->rss_hf;
 
 	if (rss_hf & (ETH_RSS_IPV4 | ETH_RSS_IPV6))
drivers/net/axgbe/axgbe_ethdev.c +144 -0

162 lines not on this page · raw message

drivers/net/axgbe/axgbe_ethdev.h +3 -0
index f10ec4a40..cedce5af6 100644
@@ -594,6 +594,7 @@ struct axgbe_port {
 	uint32_t rss_table[AXGBE_RSS_MAX_TABLE_SIZE];
 	uint32_t rss_options;
 	int rss_enable;
+	uint64_t rss_hf;
 
 	/* Hardware features of the device */
 	struct axgbe_hw_features hw_feat;
@@ -653,5 +654,7 @@ void axgbe_init_function_ptrs_i2c(struct axgbe_i2c_if *i2c_if);
 void axgbe_set_mac_addn_addr(struct axgbe_port *pdata, u8 *addr,
 			     uint32_t index);
 void axgbe_set_mac_hash_table(struct axgbe_port *pdata, u8 *addr, bool add);
+int axgbe_write_rss_lookup_table(struct axgbe_port *pdata);
+int axgbe_write_rss_hash_key(struct axgbe_port *pdata);
 
 #endif /* RTE_ETH_AXGBE_H_ */
Signature · 1 line
2.17.1