NetworkManager bonded interface failing to come up during boot

I have a node with 2 mellanox NICs at 5:0.0 and 81:0.0 in a bond in FCOS 34.20210611.3.0, and for some reason NetworkManager seems to bring up both cards and the bond before something is ready. Despite the fact that NetworkManager thinks that bond0 is both active and functional, the remote switch sees individual interfaces and not an active LACP bond. Simply running “nmcli con up bond0” refreshes the state and the bond is correctly formed with the remote switch.

Does anybody have experience with this? My assumption is that for some reason the bonding driver/module is not ready when the links initially come up, but I am a bit unsure how to check on this. Does NetworkManager have a “spit out a lot more debug info” setting that I should be using, or is there a way to ask CoreOS to tell me what order drivers are being loaded, or change the NM connection activation order?

It looks like LACP packets are not being exchanged from what I am seeing on the switch side.

should be fixed… “someday”.

https://github.com/systemd/systemd/issues/15208

https://github.com/systemd/systemd/issues/21783

creating this file seems to alleviate the issue:

$ cat /etc/systemd/network/98-bond-mac.link
[Match]
Type=bond

[Link]
MACAddressPolicy=none

See also: MACAddressPolicy for bridges/bonds etc.. · Issue #919 · coreos/fedora-coreos-tracker · GitHub

Thanks, Dusty.