numam-dpdk/drivers/net
Wei Hu (Xavier) edf6489ea4 net/bonding: fix MAC address when switching active port
Currently, based on a active-backup bond device, when the link status of
the primary port changes from up to down, one slave port changes to the
primary port, but the new primary port's MAC address cannot change to
the bond device's MAC address. And we can't continue receive packets
whose destination MAC addresses are the same as the bond devices's MAC
address.

The current bonding PMD driver call mac_address_slaves_update function
to modify the MAC address of all slaves devices: the primary port using
bond device's MAC address, and other slaves devices using the respective
MAC address. We found that one error using primary_port instead of
current_primary_port in mac_address_slaves_update function.

On the other hand, The current bonding PMD driver sets slave devices's
MAC address according to the variable named current_primary_port. The
variable named current_primary_port changes in the following scenario:
1. Add the slave devices to bond, the first slave port will be regarded
   as the current_primary_port. If changing the order of adding the
   slave devices, the value of the variable named current_primary_port
   will be different.
2. The upper application specifies primary_port via calling the
   rte_eth_bond_primary_set API function.
3. Delete the primary slave device.
4. The link status of the primary port changes from up to down.

We have tested the above 4 cases and found that there are problems that
the new primary port's MAC address didn't change to the bond device's
MAC address when running case 3 and 4. When current_primary_port
changes, the new primary port's MAC address should change at the same
time. We also need to call mac_address_slaves_update function to update
MAC addresses in case
3 and 4.

Bugzilla ID: 256
Fixes: 2efb58cbab ("bond: new link bonding library")
Cc: stable@dpdk.org

Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
2020-07-17 18:21:21 +02:00
..
af_packet net/af_packet: fix munmap on init failure 2020-07-17 18:21:21 +02:00
af_xdp log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
ark log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
atlantic drivers/net: fix exposing internal headers 2020-07-11 06:18:54 +02:00
avp log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
axgbe log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
bnx2x log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
bnxt net/bnxt: fix crash during Tx 2020-07-17 18:21:21 +02:00
bonding net/bonding: fix MAC address when switching active port 2020-07-17 18:21:21 +02:00
cxgbe log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
dpaa drivers/net: fix exposing internal headers 2020-07-11 06:18:54 +02:00
dpaa2 ethdev: fix VLAN offloads set if no relative capabilities 2020-07-11 06:18:53 +02:00
e1000 drivers/net: delete HW rings while freeing queues 2020-07-11 06:18:54 +02:00
ena log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
enetc log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
enic net/enic: support burst mode info 2020-07-11 06:18:53 +02:00
failsafe log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
fm10k ethdev: fix VLAN offloads set if no relative capabilities 2020-07-11 06:18:53 +02:00
hinic net/hinic/base: convert error value to ETIMEDOUT 2020-07-11 06:18:53 +02:00
hns3 net/hns3: fix RSS configuration on empty RSS type 2020-07-17 18:21:21 +02:00
i40e drivers/net: delete HW rings while freeing queues 2020-07-11 06:18:54 +02:00
iavf net/iavf: support RSS for IPv4 IPv6 mix of GTP 2020-07-11 06:18:53 +02:00
ice net/ice/base: fix RSS removal for GTP-U 2020-07-17 18:21:21 +02:00
igc log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
ionic log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
ipn3ke log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
ixgbe drivers/net: delete HW rings while freeing queues 2020-07-11 06:18:54 +02:00
kni log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
liquidio log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
memif log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
mlx4 log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
mlx5 net/mlx5: add ConnectX-6 Lx device ID 2020-07-11 06:18:53 +02:00
mvneta log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
mvpp2 log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
netvsc net/netvsc: detach external buffer on failure 2020-07-11 06:18:53 +02:00
nfb net/nfb: check array size before access 2020-04-21 13:57:06 +02:00
nfp net/nfp: fix RSS hash configuration reporting 2020-07-11 06:18:54 +02:00
null log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
octeontx ethdev: fix VLAN offloads set if no relative capabilities 2020-07-11 06:18:53 +02:00
octeontx2 crypto/octeontx2: support security session create 2020-07-18 23:09:03 +02:00
pcap log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
pfe log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
qede ethdev: fix VLAN offloads set if no relative capabilities 2020-07-11 06:18:53 +02:00
ring log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
sfc net/sfc: reap Tx descriptors at least once 2020-06-30 14:52:29 +02:00
softnic log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
szedata2 log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
tap log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
thunderx log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
vdev_netvsc log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
vhost log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
virtio net/virtio-user: support reply-ack 2020-07-11 06:18:52 +02:00
vmxnet3 log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
Makefile net/igc: add skeleton 2020-04-21 13:57:07 +02:00
meson.build bus/pci: introduce Windows support with stubs 2020-06-30 00:02:54 +02:00