when creating a bonding device, if the slave device's rss key length
is 52, then bonding device will be same as slave, in function
bond_ethdev_configure(), the default_rss_key length is 40, it
is not matched, so it should calculate a new key for bonding
device if the deault key could not be used.

Signed-off-by: Ke Zhang <ke1x.zh...@intel.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c 
b/drivers/net/bonding/rte_eth_bond_pmd.c
index b305b6a35b..4214b33f40 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3617,13 +3617,13 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
                               internals->rss_key_len);
                } else {
                        if (internals->rss_key_len > sizeof(default_rss_key)) {
-                               RTE_BOND_LOG(ERR,
-                                      "There is no suitable default hash key");
-                               return -EINVAL;
+                               /* If the rss_key_len is 52, it should 
calculate the hash key */
+                               for (i = 0; i < internals->rss_key_len; i++)
+                                       internals->rss_key[i] = 
(uint8_t)rte_rand();
+                       } else {
+                               memcpy(internals->rss_key, default_rss_key,
+                                       internals->rss_key_len);
                        }
-
-                       memcpy(internals->rss_key, default_rss_key,
-                              internals->rss_key_len);
                }
 
                for (i = 0; i < RTE_DIM(internals->reta_conf); i++) {
-- 
2.25.1

Reply via email to