-
Bug
-
Resolution: Done
-
Normal
-
None
-
rhel-10.0
-
Yes
-
Moderate
-
rhel-net-mgmt
-
ssg_networking
-
0
-
False
-
False
-
-
None
-
None
-
-
None
-
None
-
-
x86_64
-
None
What were you trying to do that didn't work?
Gold Sachs requested us implemented the source-load-balancing bonding mode.
Here is the related doc: https://docs.google.com/document/d/1EeU3vXlA6ICgU6BHXKlBcgrRiDJpYVuXiRShPHf7s-k/edit
We have implemented this using NM+NFT solution.
And I created some cases to test it.
On rhel-10.0, one case failed which was passed on rhel-9.4.
The failure indicate our bonding doesn't follow the third rule which is described in doc https://docs.openvswitch.org/en/latest/topics/bonding/#slb-bonding ,
```
Suppose that a MAC+VLAN moves to an SLB bond from another port (e.g. when a VM is migrated from this hypervisor to a different one). Without additional special handling, Open vSwitch will not notice until the MAC learning entry expires, up to 60 seconds later as a consequence of rule #2.
Open vSwitch avoids a 60-second delay by listening for gratuitous ARPs, which VMs commonly emit upon migration. As an exception to rule #2, a gratuitous ARP received on an SLB bond is not dropped and updates the MAC learning table in the usual way. (If a move does not trigger a gratuitous ARP, or if the gratuitous ARP is lost in the network, then a 60-second delay still occurs.)
```
simple to say, bond dropped gratuitous arp when should not.
Please provide the package NVR for which bug is seen:
This issue doesn't happen on rhel9.4 with following software versions.
[root@dell-per760-01 virtual-networking]# rpm -q NetworkManager
NetworkManager-1.46.0-8.el9_4.x86_64
[root@dell-per760-01 virtual-networking]# uname -r
5.14.0-427.26.1.el9_4.x86_64
And it happen on rhel-10.0 with following software version.
[root@netqe-amd-02 virtual-networking]# rpm -q NetworkManager
NetworkManager-1.48.4-1.el10.1.x86_64
[root@netqe-amd-02 virtual-networking]# uname -r
6.10.0-15.el10.x86_64
How reproducible:
always
Steps to reproduce
- dnf -y install tcpdump git wget python3-pip
- pip install scapy
- git clone https://gitlab.com/liali666/virtual-networking.git
- cd virtual-networking
- TEST_SETUP=nft_nm RESTART_NM=yes ./runtests tests/test-0014-ovs-rule3
here is the test topo: https://gitlab.com/liali666/virtual-networking/-/blob/master/create-virtual-topo-no-leaf-spine-multi-vlan.sh
Expected results
Actual results
- clones
-
RHEL-50517 [GS bonding]mode=balance-xor,balance-slb=1,xmit_hash_policy=vlan+srcmac bond dropped gratuitous arp
-
- Closed
-