Bug 497644 - Networkmanager: configure Hybrid bridge port and indefinite waiting connecting because slave interfaces are not coming up
Summary: Networkmanager: configure Hybrid bridge port and indefinite waiting connectin...
Status: REPORTED
Alias: None
Product: plasma-nm
Classification: Plasma
Component: applet (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-18 09:54 UTC by Diego Ercolani
Modified: 2024-12-19 17:44 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Ercolani 2024-12-18 09:54:30 UTC
As asked downstream by openSuSe maintainer: https://bugzilla.suse.com/show_bug.cgi?id=1228075
I'm going to fill this bugreport as it seem related to some lack of implementation in plasma-nm-applet:

I have this configuration:
riunioni:~ # nmcli connection 
NAME           UUID                                  TYPE      DEVICE 
Bridge9        8d48b683-1a57-4fe0-be8c-f2dbc57c8933  bridge    br9    
Bridge0        fdde68f4-12b1-4f93-a4c9-6812a358ac34  bridge    br0    
br0-interface  451952c4-0719-4a1b-80b5-1739ec0c6332  ethernet  enp6s0 
br9-interface  4084beac-f6d6-4273-a162-362da163db08  vlan      vlan9  
Ethernet0      6b2943e6-8165-4cef-aeb8-53bde729ee38  ethernet  --  

This is the normal IP addr show:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 24:4b:fe:51:69:70 brd ff:ff:ff:ff:ff:ff
21: br9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 46:54:73:e8:a8:b0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.9.175/24 brd 192.168.9.255 scope global dynamic noprefixroute br9
       valid_lft 235sec preferred_lft 235sec
    inet6 fe80::934c:68d4:ed86:330a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
23: vlan9@enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br9 state UP group default qlen 1000
    link/ether 24:4b:fe:51:69:70 brd ff:ff:ff:ff:ff:ff
25: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d6:18:c1:40:fe:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.95.112/24 brd 192.168.95.255 scope global dynamic noprefixroute br0
       valid_lft 601749sec preferred_lft 601749sec
    inet6 fe80::962c:3ee0:a39c:15fa/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
   

I defined two Bridge interfaces Bridge0 and Bridge9, Bridge0 have as slave interface Ethernet0 (enp6s0), Bridge9 have as slave interface vlan9 that is a vlan interface cutted from the same enp6s0.

The problems are:
* in the applet version of networkmanager client I cannot control the slave devices (it doesn't appear any device br0-interface, br9-interface, vlan9)
* if I disconnect the Bridge0 and try to reconnect (using the applet or nmcli connection down Bridge0; nmcli connection up Bridge0) The connection doesn't came up if I don't issue nmcli connection up br0-interface as the slave interface is bringed down when I disconnect the master interface, but the same isn't bringed up before the Master)
* if I disconnect the Bridge9 and try to reconnect (using the applet or nmcli connection down Bridge9; nmcli connection up Bridge9) the connection doesn't came up if I don't issue nmcli connection up br9-interface as the slave interface is bringed down when I disconnect the master interface, but the same isn't bringed up before the Master)

Note that for both br0-interface and br9-interface have 
connection.autoconnect:                 yes
connection.autoconnect-priority:        11
connection.autoconnect-retries:         -1 (default)

while the priority for Bridge0 is 0 and Bridge9 is 10
Comment 1 Diego Ercolani 2024-12-18 09:55:00 UTC
I resolved partially. There is a parameter for the master interface:
connection.autoconnect-slaves that if it's set to "1" brigs up slave interfaces before the Master interface.

The problem is that in the applet gui (plasma6) all these parameters aren't visible so it is supposed that all the configuration will be processed by the applet. (plasma6-nm-6.1.2-1.1.x86_64)




Reconnecting Bridge Interfaces:
The issue with the bridges not reconnecting properly is likely due to the slave interfaces being brought down when the master is disconnected and not being brought up automatically. This can be resolved by ensuring that the slave interfaces are configured to autoconnect and are properly linked to their master interfaces.

    Ensure that connection.autoconnect-slaves is set to 1 for your bridge interfaces:

nmcli connection modify Bridge0 connection.autoconnect-slaves 1
nmcli connection modify Bridge9 connection.autoconnect-slaves 1

Additionally, you can use dispatcher scripts to manage the state of your interfaces. NetworkManager dispatcher scripts are executed in response to network events such as interfaces being brought up or down. Here’s an example of a dispatcher script that ensures the slave interfaces are brought up when their master bridge interface is activated:

Create a script in /etc/NetworkManager/dispatcher.d/:

sh

sudo nano /etc/NetworkManager/dispatcher.d/bridge-up

Add the following content to the script:

#!/bin/bash

interface=$1
action=$2

if [[ "$interface" == "br0" && "$action" == "up" ]]; then
    nmcli connection up br0-interface
elif [[ "$interface" == "br9" && "$action" == "up" ]]; then
    nmcli connection up br9-interface
fi

Make the script executable:

sudo chmod +x /etc/NetworkManager/dispatcher.d/bridge-up
Comment 2 Nate Graham 2024-12-18 17:49:57 UTC
Can you clarify what the issue is in plasma-nm code?
Comment 3 Diego Ercolani 2024-12-19 08:56:36 UTC
Hello,
it passed some time since I firstly reported the "issue", the problem is that in the nm-applet isn't possibile to control all the NetworkManager parameters (obviously I'm talking about the version is distributed with openSuSE -that's why I reported them-):
eg. 
in the applet version of networkmanager client I cannot control the slave devices (it doesn't appear any device br0-interface, br9-interface, vlan9)
nmcli connection modify Bridge0 connection.autoconnect-slaves 1
nmcli connection modify Bridge9 connection.autoconnect-slaves 1
Comment 4 Nate Graham 2024-12-19 17:44:54 UTC
So the problem is that you have to use the command line to do certain tasks?