Bug 1158 - Mac address configuration on bonded device in 8023ad mode is not propagated to slave devices
Summary: Mac address configuration on bonded device in 8023ad mode is not propagated t...
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: ethdev (show other bugs)
Version: 22.11
Hardware: x86 Linux
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2023-01-26 07:54 CET by Mário Kuka
Modified: 2023-01-26 07:54 CET (History)
0 users



Attachments

Description Mário Kuka 2023-01-26 07:54:51 CET
When you try to change the default mac address on a bonded device 
in 8023ad mode, the new mac address is not propagated to slave devices 
so packets with this new mac address are not delivered because they are 
dropped on the slave device.

Steps to Reproduce in testpmd: 
  dpdk-testpmd --log-level=pmd.net.bonding:debug -a 0000:3b:00.0 -c 0x0f -n 4 --vdev 'net_bonding0,slave=0000:3b:00.0,mode=4,agg_mode=count' -- -i --port-topology=chained
  testpmd> port stop all
  testpmd> show bonding config 1
  testpmd> set promisc 1 off
  testpmd> port start all
  testpmd> show port info 0
  ********************* Infos for port 0  *********************
  MAC address: 04:3F:72:C7:B8:84
  ...
  testpmd> show port info 1
  ********************* Infos for port 1  *********************
  MAC address: 04:3F:72:C7:B8:84
  ...
  testpmd> port stop all
  testpmd> set bonding mac_addr 1 00:11:22:33:44:55
  testpmd> port start all
  testpmd> show port info 0
  ********************* Infos for port 0  *********************
  MAC address: 04:3F:72:C7:B8:84
  ...
  testpmd> show port info 1
  ********************* Infos for port 1  *********************
  MAC address: 00:11:22:33:44:55
  ...


For comparison, the same steps for the bonded device in mode 0 (round-robin): 
  dpdk-testpmd --log-level=pmd.net.bonding:debug -a 0000:3b:00.1 -c 0x0f -n 4 --vdev 'net_bonding0,slave=0000:3b:00.1,mode=0' -- -i --port-topology=chained
  testpmd> port stop all
  testpmd> show bonding config 1
  testpmd> set promisc 1 off
  testpmd> port start all
  testpmd> show port info 0
  ********************* Infos for port 0  *********************
  MAC address: 04:3F:72:C7:B8:85
  ...
  testpmd> show port info 1
  ********************* Infos for port 1  *********************
  MAC address: 04:3F:72:C7:B8:85
  ...
  testpmd> port stop all
  testpmd> set bonding mac_addr 00:11:22:33:44:55
  testpmd> port start all
  testpmd> show port info 0
  ********************* Infos for port 0  *********************
  MAC address: 00:11:22:33:44:55
  ...
  testpmd> show port info 1
  ********************* Infos for port 1  *********************
  MAC address: 00:11:22:33:44:55
  ...

For comparison, configuring a bond device in 802.3ad mode using NMCLI:
  sudo nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=802.3ad"
  sudo nmcli connection modify bond0 ipv4.dhcp-timeout infinity
  sudo nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens1f0np0 master bond0
  sudo ip address show bond0
  11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
      link/ether 04:3f:72:c7:b8:84 brd ff:ff:ff:ff:ff:ff
	  ...
  sudo ip link show ens1f0np0
  6: ens1f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
      link/ether 04:3f:72:c7:b8:84 brd ff:ff:ff:ff:ff:ff
	  ...
  sudo ip link set dev bond0 address 00:11:22:33:44:55
  sudo ip link show bond0
  11: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
      link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
	  ...
  sudo ip link show ens1f0np0
  6: ens1f0np0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
      link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff permaddr 04:3f:72:c7:b8:84
	  ...

[DPDK version]
commit f262f16087ea6a77357a915cf4c0d10ddc7b6562 (HEAD, tag: v22.11, origin/releases)
Author: Thomas Monjalon <thomas@monjalon.net>
Date:   Sun Nov 27 11:36:36 2022 +0100

    version: 22.11.0

    Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

[OS version]
Operating System: Oracle Linux Server 8.7
Kernel: Linux 4.18.0-348.12.2.el8_5.x86_64
Architecture: x86-64

[Network devices]
0000:3b:00.0 'MT2892 Family [ConnectX-6 Dx] 101d' if=ens1f0np0 drv=mlx5_core (802.3ad with LACP)
0000:3b:00.1 'MT2892 Family [ConnectX-6 Dx] 101d' if=ens1f1np1 drv=mlx5_core

Note You need to log in before you can comment on or make changes to this bug.