Bug 1982052 - [vsphere][upi] OVN vmxnet3 allmulti workaround doesn't apply when vmxnet3 is bonded
Summary: [vsphere][upi] OVN vmxnet3 allmulti workaround doesn't apply when vmxnet3 is ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Networking
Version: 4.8
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: 4.9.0
Assignee: Aniket Bhat
QA Contact: Ross Brattain
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-07-14 05:14 UTC by Ross Brattain
Modified: 2021-10-18 17:53 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-10-18 17:39:52 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github openshift machine-config-operator pull 2676 0 None open Bug 1982052: Handle team/bond interfaces with a more clear message 2021-07-14 16:38:16 UTC
Red Hat Product Errata RHSA-2021:3759 0 None None None 2021-10-18 17:53:09 UTC

Description Ross Brattain 2021-07-14 05:14:38 UTC
Description of problem:

The vSphere vmxnet3 `allmulti` workaround from BZ 1854355 does not get applied when the vmxnet3 devices are teamed or bonded.

The teamed/bonded cluster seems functional so maybe the workaround is no longer necessary.


https://github.com/openshift/machine-config-operator/blob/release-4.8/templates/common/_base/files/configure-ovs-network.yaml#L43

      # if the interface is of type vmxnet3 add multicast capability for that driver
      # REMOVEME: Once BZ:1854355 is fixed, this needs to get removed.
      function configure_driver_options {
        intf=$1
        driver=$(cat "/sys/class/net/${intf}/device/uevent" | grep DRIVER | awk -F "=" '{print $2}')
        echo "Driver name is" $driver
        if [ "$driver" = "vmxnet3" ]; then
          ifconfig "$intf" allmulti
        fi
      }

team0 is a teamed vmxnet3 ens192 and ens224: 

+ configure_driver_options team0
+ intf=team0
++ cat /sys/class/net/team0/device/uevent
++ grep DRIVER
++ awk -F = '{print $2}'
cat: /sys/class/net/team0/device/uevent: No such file or directory
+ driver=
+ echo 'Driver name is'
Driver name is
+ '[' '' = vmxnet3 ']'
+ echo 'Networking already configured and up for br-ex!'
Networking already configured and up for br-ex!
+ ovs-vsctl --timeout=30 --if-exists del-br br0


bond0 is a bonded vmxnet3 ens192 and ens224: 

+ configure_driver_options bond0
+ intf=bond0
++ cat /sys/class/net/bond0/device/uevent
++ grep DRIVER
++ awk -F = '{print $2}'
cat: /sys/class/net/bond0/device/uevent: No such file or directory
+ driver=
+ echo 'Driver name is'
Driver name is
+ '[' '' = vmxnet3 ']'
+ exit 0
+ handle_exit_error
+ e=0
+ '[' 0 -eq 0 ']'
+ exit 0



Version-Release number of selected component (if applicable):

4.8.0-0.ci.test-2021-07-13-181010-ci-ln-894tm7b-latest
with https://github.com/openshift/machine-config-operator/pull/2643



How reproducible:

Always

Steps to Reproduce:
1. configure and vSphere UPI with teaming or bonding as described in BZ 1977426
2. reboot node
3. check ovs-configuration.service logs

Actual results:

`allmuluti` is not enabled on ens192 and ens224.

+ configure_driver_options bond0
+ intf=bond0
++ cat /sys/class/net/bond0/device/uevent
++ grep DRIVER
++ awk -F = '{print $2}'
cat: /sys/class/net/bond0/device/uevent: No such file or directory
+ driver=
+ echo 'Driver name is'
Driver name is
+ '[' '' = vmxnet3 ']'
+ exit 0
+ handle_exit_error
+ e=0
+ '[' 0 -eq 0 ']'
+ exit 0

[root@compute-0 core]# ifconfig ens192
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:50:56:ac:fa:a6  txqueuelen 1000  (Ethernet)
        RX packets 465287  bytes 644713821 (614.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58424  bytes 35675313 (34.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@compute-0 core]# ifconfig ens224
ens224: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:50:56:ac:fa:a6  txqueuelen 1000  (Ethernet)
        RX packets 465338  bytes 644727627 (614.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 260 (260.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


[root@compute-0 core]# ifconfig team0
team0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:50:56:ac:fa:a6  txqueuelen 1000  (Ethernet)
        RX packets 76712  bytes 618106430 (589.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 58067  bytes 36225939 (34.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Expected results:


Assuming the workaround is still required or valid on bonded/teamed devices `allmutli` should be applied.

Otherwise should the workaround be removed?

Comment 2 Ross Brattain 2021-08-04 10:58:39 UTC
Verified on 4.9.0-0.nightly-2021-08-03-135217

Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + configure_driver_options bond0
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + intf=bond0
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + '[' '!' -f /sys/class/net/bond0/device/uevent ']'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + echo 'Device file doesn'\''t exist, skipping setting multicast mode'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: Device file doesn't exist, skipping setting multicast mode
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + configured=true
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + break
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + '[' true '!=' true ']'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + '[' -f /etc/ovnk/extra_bridge ']'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + '[' '!' -f /etc/ovnk/extra_bridge ']'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + nmcli connection show br-ex1
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + nmcli connection show ovs-if-phys1
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + ovs-vsctl --timeout=30 --if-exists del-br br0
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + exit 0
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + handle_exit_error
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + e=0
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + '[' 0 -eq 0 ']'
Aug 03 22:15:37 compute-0 configure-ovs.sh[1394]: + exit 0

Comment 5 errata-xmlrpc 2021-10-18 17:39:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:3759

Comment 6 errata-xmlrpc 2021-10-18 17:52:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:3759


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