RSS don't work when bond_ethdev_configure called before rte_eth_bond_slave_add in DPDK21.11. e.g.: dont't work(examples/bond/main.c): rte_eth_bond_create() rte_eth_dev_configure() rte_eth_bond_slave_add() rte_eth_dev_start() work(testpmd): rte_eth_bond_create() rte_eth_bond_slave_add() rte_eth_dev_configure() rte_eth_dev_start() Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com> Acked-by: Min Hu (Connor) <humin29@huawei.com> --- drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 84f4900ee5..31bcee15cf 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev) if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) { struct rte_eth_rss_conf *rss_conf = &dev->data->dev_conf.rx_adv_conf.rss_conf; + + if (internals->rss_key_len == 0) { + internals->rss_key_len = sizeof(default_rss_key); + } + if (rss_conf->rss_key != NULL) { if (internals->rss_key_len > rss_conf->rss_key_len) { RTE_BOND_LOG(ERR, "Invalid rss key length(%u)", -- 2.32.0.windows.1
RSS don't work when bond_ethdev_configure called before rte_eth_bond_slave_add in DPDK21.11. e.g.: dont't work(examples/bond/main.c): rte_eth_bond_create() rte_eth_dev_configure() rte_eth_bond_slave_add() rte_eth_dev_start() work(testpmd): rte_eth_bond_create() rte_eth_bond_slave_add() rte_eth_dev_configure() rte_eth_dev_start() Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com> Acked-by: Min Hu (Connor) <humin29@huawei.com> --- drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 84f4900ee5..31bcee15cf 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev) if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) { struct rte_eth_rss_conf *rss_conf = &dev->data->dev_conf.rx_adv_conf.rss_conf; + + if (internals->rss_key_len == 0) { + internals->rss_key_len = sizeof(default_rss_key); + } + if (rss_conf->rss_key != NULL) { if (internals->rss_key_len > rss_conf->rss_key_len) { RTE_BOND_LOG(ERR, "Invalid rss key length(%u)", -- 2.32.0.windows.1
Hi,
Maybe your comment is too long, have you done some check
using ./devtools/*.sh ?
在 2022/1/18 9:00, Yu Wenjun 写道:
> RSS don't work when bond_ethdev_configure called before rte_eth_bond_slave_add in DPDK21.11.
>
> e.g.:
>
> dont't work(examples/bond/main.c):
> rte_eth_bond_create()
> rte_eth_dev_configure()
> rte_eth_bond_slave_add()
> rte_eth_dev_start()
>
> work(testpmd):
> rte_eth_bond_create()
> rte_eth_bond_slave_add()
> rte_eth_dev_configure()
> rte_eth_dev_start()
>
> Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com>
> Acked-by: Min Hu (Connor) <humin29@huawei.com>
> ---
> drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index 84f4900ee5..31bcee15cf 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
> if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
> struct rte_eth_rss_conf *rss_conf =
> &dev->data->dev_conf.rx_adv_conf.rss_conf;
> +
> + if (internals->rss_key_len == 0) {
> + internals->rss_key_len = sizeof(default_rss_key);
> + }
> +
> if (rss_conf->rss_key != NULL) {
> if (internals->rss_key_len > rss_conf->rss_key_len) {
> RTE_BOND_LOG(ERR, "Invalid rss key length(%u)",
>
RSS don't work when bond_ethdev_configure called before rte_eth_bond_slave_add in DPDK21.11. e.g.: dont't work(examples/bond/main.c): rte_eth_bond_create() rte_eth_dev_configure() rte_eth_bond_slave_add() rte_eth_dev_start() work(testpmd): rte_eth_bond_create() rte_eth_bond_slave_add() rte_eth_dev_configure() rte_eth_dev_start() Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com> Acked-by: Min Hu (Connor) <humin29@huawei.com> --- drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 84f4900ee5..31bcee15cf 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev) if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) { struct rte_eth_rss_conf *rss_conf = &dev->data->dev_conf.rx_adv_conf.rss_conf; + + if (internals->rss_key_len == 0) { + internals->rss_key_len = sizeof(default_rss_key); + } + if (rss_conf->rss_key != NULL) { if (internals->rss_key_len > rss_conf->rss_key_len) { RTE_BOND_LOG(ERR, "Invalid rss key length(%u)", -- 2.32.0.windows.1
Hi, When you send the new version patch, you should add tile like: [PATCH v2], [PATCH v3]... Also, you missed other tips in the doc. I think you should read it carefully. Please refer to: https://doc.dpdk.org/guides/contributing/patches.html Thanks. 在 2022/1/18 10:59, Yu Wenjun 写道: > RSS don't work when bond_ethdev_configure called before > rte_eth_bond_slave_add in DPDK21.11. > > e.g.: > > dont't work(examples/bond/main.c): > rte_eth_bond_create() > rte_eth_dev_configure() > rte_eth_bond_slave_add() > rte_eth_dev_start() > > work(testpmd): > rte_eth_bond_create() > rte_eth_bond_slave_add() > rte_eth_dev_configure() > rte_eth_dev_start() > > Signed-off-by: Yu Wenjun <yuwenjun@cmss.chinamobile.com> > Acked-by: Min Hu (Connor) <humin29@huawei.com> > --- > drivers/net/bonding/rte_eth_bond_pmd.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c > index 84f4900ee5..31bcee15cf 100644 > --- a/drivers/net/bonding/rte_eth_bond_pmd.c > +++ b/drivers/net/bonding/rte_eth_bond_pmd.c > @@ -3504,6 +3504,11 @@ bond_ethdev_configure(struct rte_eth_dev *dev) > if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) { > struct rte_eth_rss_conf *rss_conf = > &dev->data->dev_conf.rx_adv_conf.rss_conf; > + > + if (internals->rss_key_len == 0) { > + internals->rss_key_len = sizeof(default_rss_key); > + } > + > if (rss_conf->rss_key != NULL) { > if (internals->rss_key_len > rss_conf->rss_key_len) { > RTE_BOND_LOG(ERR, "Invalid rss key length(%u)", >