Message ID | 1589887092-26360-1-git-send-email-luyicai@huawei.com |
---|---|
State | Superseded, archived |
Delegated to: | Ferruh Yigit |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-nxp-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/travis-robot | success | Travis build: passed |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | success | coding style OK |
Any review please? 19/05/2020 13:18, luyicai: > When two host is connected directly without any devices like switch, > and also enable dedicated tx/rx queues on bonding devices slaves, > rx_machine_update would recieving partner lacp negotiation packets, > which partner's port mac filled with zeros. So in this situation, > it would never go rx_machine branch with correct mac! > Thus bond mode 4 will negotiation failed. > > Signed-off-by: luyicai <luyicai@huawei.com> > --- > drivers/net/bonding/rte_eth_bond_8023ad.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c > index b77a37d..2002ec0 100644 > --- a/drivers/net/bonding/rte_eth_bond_8023ad.c > +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c > @@ -798,7 +798,8 @@ > RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP); > > partner = &lacp->lacpdu.partner; > - if (rte_is_same_ether_addr(&partner->port_params.system, > + if (rte_is_zero_ether_addr(&partner->port_params.system) || > + rte_is_same_ether_addr(&partner->port_params.system, > &internals->mode4.mac_addr)) { > /* This LACP frame is sending to the bonding port > * so pass it to rx_machine. >
Still no review. Please give your real name in the Signed-off so it can be merged. 24/06/2020 12:43, Thomas Monjalon: > Any review please? > > 19/05/2020 13:18, luyicai: > > When two host is connected directly without any devices like switch, > > and also enable dedicated tx/rx queues on bonding devices slaves, > > rx_machine_update would recieving partner lacp negotiation packets, > > which partner's port mac filled with zeros. So in this situation, > > it would never go rx_machine branch with correct mac! > > Thus bond mode 4 will negotiation failed. > > > > Signed-off-by: luyicai <luyicai@huawei.com> > > --- > > drivers/net/bonding/rte_eth_bond_8023ad.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c > > index b77a37d..2002ec0 100644 > > --- a/drivers/net/bonding/rte_eth_bond_8023ad.c > > +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c > > @@ -798,7 +798,8 @@ > > RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP); > > > > partner = &lacp->lacpdu.partner; > > - if (rte_is_same_ether_addr(&partner->port_params.system, > > + if (rte_is_zero_ether_addr(&partner->port_params.system) || > > + rte_is_same_ether_addr(&partner->port_params.system, > > &internals->mode4.mac_addr)) { > > /* This LACP frame is sending to the bonding port > > * so pass it to rx_machine. > > > > > > > >
Hi, Thomas Monjalon The patch V2 has been sent by luyicai, and V2 is good to me. Thanks, Xavier On 2020/7/11 5:07, Thomas Monjalon wrote: > Still no review. > > Please give your real name in the Signed-off so it can be merged. > > 24/06/2020 12:43, Thomas Monjalon: >> Any review please? >> >> 19/05/2020 13:18, luyicai: >>> When two host is connected directly without any devices like switch, >>> and also enable dedicated tx/rx queues on bonding devices slaves, >>> rx_machine_update would recieving partner lacp negotiation packets, >>> which partner's port mac filled with zeros. So in this situation, >>> it would never go rx_machine branch with correct mac! >>> Thus bond mode 4 will negotiation failed. >>> >>> Signed-off-by: luyicai <luyicai@huawei.com> >>> --- >>> drivers/net/bonding/rte_eth_bond_8023ad.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c >>> index b77a37d..2002ec0 100644 >>> --- a/drivers/net/bonding/rte_eth_bond_8023ad.c >>> +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c >>> @@ -798,7 +798,8 @@ >>> RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP); >>> >>> partner = &lacp->lacpdu.partner; >>> - if (rte_is_same_ether_addr(&partner->port_params.system, >>> + if (rte_is_zero_ether_addr(&partner->port_params.system) || >>> + rte_is_same_ether_addr(&partner->port_params.system, >>> &internals->mode4.mac_addr)) { >>> /* This LACP frame is sending to the bonding port >>> * so pass it to rx_machine. >>> >> >> >> >> >> > > > > >
diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c index b77a37d..2002ec0 100644 --- a/drivers/net/bonding/rte_eth_bond_8023ad.c +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c @@ -798,7 +798,8 @@ RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP); partner = &lacp->lacpdu.partner; - if (rte_is_same_ether_addr(&partner->port_params.system, + if (rte_is_zero_ether_addr(&partner->port_params.system) || + rte_is_same_ether_addr(&partner->port_params.system, &internals->mode4.mac_addr)) { /* This LACP frame is sending to the bonding port * so pass it to rx_machine.
When two host is connected directly without any devices like switch, and also enable dedicated tx/rx queues on bonding devices slaves, rx_machine_update would recieving partner lacp negotiation packets, which partner's port mac filled with zeros. So in this situation, it would never go rx_machine branch with correct mac! Thus bond mode 4 will negotiation failed. Signed-off-by: luyicai <luyicai@huawei.com> --- drivers/net/bonding/rte_eth_bond_8023ad.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)