On Mon, Feb 15, 2021 at 1:21 PM Christian Ehrhardt <christian.ehrha...@canonical.com> wrote: > > On Fri, Feb 12, 2021 at 4:10 PM Dey, Souvik <so...@rbbn.com> wrote: > > > > From: Souvik Dey <so...@rbbn.com> > > > > [ upstream commit 493f0bb51c1144eedcff2bba199cab1b64ff9fd0 ] > > Thanks, added > > > > > As the internal MAC table is divided into Unicast and Multicast address > > sections, we should check the type of synched MAC address before storing > > it to the internal table. Currently the check is not done, and the > > synched MAC of 33:33:00:00:00:01 gets stored in the unicast section > > (mostly index 1) causing all subsequent mlx5_set_mc_addr_list() > > to fail with error -EADDRINUSE, as the mac_list contains the MAC > > 33:33:00:00:00:01. This denies adding of any new multicast address to > > the internal list and also fails to add the MAC address to the device > > in case of SR-IOV VF. > > > > Fixes: f22442cb5d42 ("net/mlx5: reduce Netlink commands dependencies") > > Fixes: ccdcba53a3f4 ("net/mlx5: use Netlink to add/remove MAC addresses") > > > > Signed-off-by: Souvik Dey <so...@rbbn.com> > > --- > > drivers/net/mlx5/mlx5_nl.c | 21 ++++++++++++++++----- > > 1 file changed, 16 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/net/mlx5/mlx5_nl.c b/drivers/net/mlx5/mlx5_nl.c > > index 64580b9..add756d 100644 > > --- a/drivers/net/mlx5/mlx5_nl.c > > +++ b/drivers/net/mlx5/mlx5_nl.c > > @@ -678,11 +678,22 @@ mlx5_nl_mac_addr_sync(struct rte_eth_dev *dev) > > break; > > if (j != MLX5_MAX_MAC_ADDRESSES) > > continue; > > - /* Find the first entry available. */ > > - for (j = 0; j != MLX5_MAX_MAC_ADDRESSES; ++j) { > > - if > > (rte_is_zero_ether_addr(&dev->data->mac_addrs[j])) { > > - dev->data->mac_addrs[j] = macs[i];
When built this fails, thereby for now I've dequeued this from 19.11.7 [ 708s] ../drivers/net/mlx5/mlx5_nl.c: In function ‘mlx5_nl_mac_addr_sync’: [ 708s] ../drivers/net/mlx5/mlx5_nl.c:685:33: error: ‘mac_addrs’ undeclared (first use in this function); did you mean ‘vec_adds’? [ 708s] if (rte_is_zero_ether_addr(&mac_addrs[j])) { [ 708s] ^~~~~~~~~ [ 708s] vec_adds [ 708s] ../drivers/net/mlx5/mlx5_nl.c:685:33: note: each undeclared identifier is reported only once for each function it appears in [ 708s] ninja: build stopped: subcommand failed. If you have a chance to refresh your backport with the 19.11 codebase in mind that would be great. Looking for an updated backport and thanks in advance. > > - break; > > + if (rte_is_multicast_ether_addr(&macs[i])) { > > + /* Find the first entry available. */ > > + for (j = MLX5_MAX_UC_MAC_ADDRESSES; > > + j != MLX5_MAX_MAC_ADDRESSES; ++j) { > > + if (rte_is_zero_ether_addr(&mac_addrs[j])) { > > + mac_addrs[j] = macs[i]; > > + break; > > + } > > + } > > + } else { > > + /* Find the first entry available. */ > > + for (j = 0; j != MLX5_MAX_UC_MAC_ADDRESSES; ++j) { > > + if (rte_is_zero_ether_addr(&mac_addrs[j])) { > > + mac_addrs[j] = macs[i]; > > + break; > > + } > > } > > } > > } > > -- > > 2.9.3.windows.1 > > > > > > Notice: This e-mail together with any attachments may contain information > > of Ribbon Communications Inc. and its Affiliates that is confidential > > and/or proprietary for the sole use of the intended recipient. Any review, > > disclosure, reliance or distribution by others or forwarding without > > express permission is strictly prohibited. If you are not the intended > > recipient, please notify the sender immediately and then delete all copies, > > including any attachments. > > > > -- > Christian Ehrhardt > Staff Engineer, Ubuntu Server > Canonical Ltd -- Christian Ehrhardt Staff Engineer, Ubuntu Server Canonical Ltd