bond parameters are not changed by 'netplan apply'

Bug #1746419 reported by Daniel Axtens
84
This bug affects 14 people
Affects Status Importance Assigned to Milestone
Netplan
Triaged
Medium
Unassigned
nplan (Ubuntu)
Invalid
Undecided
Unassigned
systemd (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

I have a yaml file as follows:

network:
    version: 2
    ethernets:
        bonddevs:
            match:
                name: ens[78]
    bonds:
        bond0:
            interfaces: [bonddevs]
            parameters:
                mode: active-backup
                mii-monitor-interval: 1
            addresses:
                - 10.10.10.1/24

Say I decide that 1s is too frequent for the MII interval, and I want to change the interval to 2s.

If I change that in the yaml, then run
# netplan generate
# netplan apply
# cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
MII Polling Interval (ms): 1000

In other words, the change has not been applied.

Running netplan --debug apply prints:
DEBUG:device bond0 operstate is up, not replugging

So I wondered if bringing the bond down would help. It does not:
# ip link set dev bond0 down
# netplan apply
# cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
MII Polling Interval (ms): 1000

However, deleting the link works:
# ip link del dev bond0
# netplan apply
# cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
MII Polling Interval (ms): 2000

This is counter-intuitive behaviour.
Ideally, I would like a regular netplan apply to work without deleting the bond.
However, a changed to the docs to make this clear would be OK.

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: nplan 0.32~17.10.1
ProcVersionSignature: User Name 4.13.0-32.35-generic 4.13.13
Uname: Linux 4.13.0-32-generic x86_64
ApportVersion: 2.20.7-0ubuntu3.7
Architecture: amd64
Date: Wed Jan 31 05:47:42 2018
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=C.UTF-8
 SHELL=/bin/bash
SourcePackage: nplan
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Daniel Axtens (daxtens) wrote :
Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

Sounds like this is a bug in systemd, since it's what will deal with the actual devices.

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

I believe this is systemd intentional to not change bond parameters if the bond already exists. It is assumed that something else has already created the bond, and thus networkd should not be "updating" the params. Despite networkd creating the bond in the first place...

Changed in systemd (Ubuntu):
status: New → Won't Fix
Revision history for this message
Daniel Axtens (daxtens) wrote : Re: [Bug 1746419] Re: bond parameters are not changed by 'netplan apply'

Right, so netplan should tell networkd to tear down the bond first?

On Thu, Feb 15, 2018 at 7:06 AM, Dimitri John Ledkov
<email address hidden> wrote:
> I believe this is systemd intentional to not change bond parameters if
> the bond already exists. It is assumed that something else has already
> created the bond, and thus networkd should not be "updating" the params.
> Despite networkd creating the bond in the first place...
>
> ** Changed in: systemd (Ubuntu)
> Status: New => Won't Fix
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1746419
>
> Title:
> bond parameters are not changed by 'netplan apply'
>
> Status in nplan package in Ubuntu:
> New
> Status in systemd package in Ubuntu:
> Won't Fix
>
> Bug description:
> I have a yaml file as follows:
>
> network:
> version: 2
> ethernets:
> bonddevs:
> match:
> name: ens[78]
> bonds:
> bond0:
> interfaces: [bonddevs]
> parameters:
> mode: active-backup
> mii-monitor-interval: 1
> addresses:
> - 10.10.10.1/24
>
>
> Say I decide that 1s is too frequent for the MII interval, and I want to change the interval to 2s.
>
> If I change that in the yaml, then run
> # netplan generate
> # netplan apply
> # cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
> MII Polling Interval (ms): 1000
>
> In other words, the change has not been applied.
>
> Running netplan --debug apply prints:
> DEBUG:device bond0 operstate is up, not replugging
>
> So I wondered if bringing the bond down would help. It does not:
> # ip link set dev bond0 down
> # netplan apply
> # cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
> MII Polling Interval (ms): 1000
>
> However, deleting the link works:
> # ip link del dev bond0
> # netplan apply
> # cat /proc/net/bonding/bond0|grep "MII Polling Interval (ms)"
> MII Polling Interval (ms): 2000
>
> This is counter-intuitive behaviour.
> Ideally, I would like a regular netplan apply to work without deleting the bond.
> However, a changed to the docs to make this clear would be OK.
>
> ProblemType: Bug
> DistroRelease: Ubuntu 17.10
> Package: nplan 0.32~17.10.1
> ProcVersionSignature: User Name 4.13.0-32.35-generic 4.13.13
> Uname: Linux 4.13.0-32-generic x86_64
> ApportVersion: 2.20.7-0ubuntu3.7
> Architecture: amd64
> Date: Wed Jan 31 05:47:42 2018
> ProcEnviron:
> TERM=xterm-256color
> PATH=(custom, no user)
> XDG_RUNTIME_DIR=<set>
> LANG=C.UTF-8
> SHELL=/bin/bash
> SourcePackage: nplan
> UpgradeStatus: No upgrade log present (probably fresh install)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/nplan/+bug/1746419/+subscriptions

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in nplan (Ubuntu):
status: New → Confirmed
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

networkd does not have a toggle to tear down the bond first =/ or to force changing the parameters of it. Maybe a toggle like that should be added to really-really reload all the settings.

Daniel Axtens (daxtens)
Changed in netplan:
status: New → Confirmed
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Netplan could delete the bond, which would then be recreated by networkd with all parameters applied.

Revision history for this message
Daniel Axtens (daxtens) wrote :

Should it though? That will, for example, terminate any tcpdump processes bound to the bond, it will disrupt currently running connections, etc. Maybe we could do it but we'd want to put it behind a --force option or something, I think.

Revision history for this message
Satish Patel (satish-txt) wrote :

Any update on this bug because i am still having same issue. I have updated arp_ip_target but it does required to reboot whole server. I think netplan apply should do the magic but somehow not.

Revision history for this message
Lukas Märdian (slyon) wrote :

This is still an issue. I like the idea of deleting the bond (e.g. "networkctl delete bond0" during the "netplan apply" call. But as stated before by daxtens, we need to make sure not to bring down critical interfaces, that might be in use.

We could either only apply this only to interfaces, that are not marked as "critical: true" in netplan or hide it behind a "--force" parameter to "netplan apply". We should also investigate if there might be other options in more recent versions of systemd-networkd to make it apply new bond parameters without bringing down the interface.

Closing the "nplan" component, as that package is no more in any recent series of Ubuntu.

Changed in netplan:
status: Confirmed → Triaged
importance: Undecided → Medium
Changed in nplan (Ubuntu):
status: Confirmed → Invalid
tags: added: foundations-todo
Revision history for this message
Ákos Maróy (akos-maroy) wrote :

I'm also affected by this issue. Makes experimenting with settings very tedious.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.