Bug 1914139

Summary: Cannot create VLAN over bond when bond been used for OVS bridge
Product: Red Hat Enterprise Linux 8 Reporter: Gris Ge <fge>
Component: NetworkManagerAssignee: NetworkManager Development Team <nm-team>
Status: CLOSED WONTFIX QA Contact: Desktop QE <desktop-qa-list>
Severity: low Docs Contact:
Priority: low    
Version: 8.4CC: acardace, atragler, bgalvani, lrintel, phoracek, rkhan, sukulkar, till
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.4   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-01-15 16:58:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Reproduce script none

Description Gris Ge 2021-01-08 08:25:12 UTC
Created attachment 1745535 [details]
Reproduce script

Description of problem:

When both bond interface and OVS port profile are using the same `bond0` as
`connection.interface-name`, cannot create VLAN over bond.


Version-Release number of selected component (if applicable):
NetworkManager-1.30.0-0.5.el8.x86_64

How reproducible:
100%

Steps to Reproduce:
1. sudo ./bug.sh
2.
3.

Actual results:

Error: Connection activation failed: bond0.100 failed to create resources: cannot retrieve ifindex of interface bond0 (Open vSwitch Port)

Expected results:

VLAN created from kernel bond0 interface.

Additional info:

The OVS bridge and OVS port are user space only interface, VLAN should not
use them as parent.

Comment 1 Beniamino Galvani 2021-01-14 09:01:40 UTC
The script creates an OVS bond named 'bond0' and then a Linux bond
with the same name. It also creates a VLAN with parent 'bond0';
however this is ambiguous because there are two interfaces with the
same name. In such cases it is possible to specify a connection UUID
as parent.

Yes, NM could be smarter and exclude the OVS bond because it doesn't
have a kernel link and therefore it can't be used a parent for the
VLAN. At the moment this doesn't happen because the code to look up
the parent is completely generic and doesn't care about device
types. Perhaps this can be improved.

Comment 2 Gris Ge 2021-01-14 17:03:28 UTC
Thanks for the info. I will use UUID as workaround in nmstate.

You may take this as low priority or even close as won't fix.

Comment 3 Petr Horáček 2021-01-15 15:10:17 UTC
Gris, does that mean that we would be able to create a VLAN using nmstate over a bonding attached to an OVS bridge with your workaround?

Comment 4 Gris Ge 2021-01-17 03:55:25 UTC
(In reply to Petr Horáček from comment #3)
> Gris, does that mean that we would be able to create a VLAN using nmstate
> over a bonding attached to an OVS bridge with your workaround?

Yes. I am working on that.