Hi James, On Thu, Dec 2, 2021 at 1:50 PM James Feeney <ja...@nurealm.net> wrote:
> On 12/2/21 08:41, Brian Hutchinson wrote: > > Yup, I'm using systemd-networkd ... I think I have to in order to > leverage network-online.target etc., and set up my network (bonding in this > case) with .netdev and .network files in /etc/systemd/network. > > You don't "have" to do anything. It is a choice. Other network managers > you might consider include: > ConnMan > netctl > NetworkManager > Wicd > > > What kind of platform are you on? PC, embedded? > > Just Arch Linux on various PCs, but, if you are already running systemd, I > don't expect that the hardware makes any difference. > > > Can you give an example of what this would look like? > > I could, but, unless you want to abandon systemd-networkd for some reason, > and also not consider some of the other popular network management systems, > there would be no point. > Well, I'm on an embedded imx8 platform and my ethernet interface is an Ethernet Switch ;) I have to bust that switch up into individual network interfaces with DSA (Distributed Switch Architecture) so everything is wildly different than just a simple, normal NIC interface. I have no display/graphics, keyboard etc., so I can't just use a 'normal' network manager most are familiar with. > > > ... but I can also check carrier of my interfaces ... > > The kernel bonding module is its own thing, and automatically monitors the > state of its slave devices and manages the state of its virtual interface. > I don't know why you would want to bother with the carrier state of - > presumably - an ethernet device, or whatever. If there were a problem with > the bonding module, that would be an entirely separate issue. > I think I found my issue. I've got a fairly new systemd but looks like I'm missing this patch: https://github.com/systemd/systemd/pull/14536/commits/75cd4a5d929480055c74d14fef6f25c9e0e966e0 ... so I cannot specify my bond1 min and max operational state which should be degraded-carrier:carrier > Of course, this all presupposes that you have actually selected and > configured the correct options to the kernel bonding module, to provide the > functionality you want with the hardware you are using. But that is > nothing to do with systemd or with ptp4l. > All done in /etc/systemd/network with .netdev and .network files. > > My issue is with systemd starting PTP before the bond is fully set up. > > As I mentioned, I cannot help you with systemd-networkd. I cannot find > any author attributions in or to the systemd-networkd source, and none of > the actual developers here appears to have volunteered any insight - and > good luck with that. > > Still, you might read here for clues: https://wiki.archlinux.org/title/Systemd-networkd > though, you will have to disregard the reference to "Wireless bonding", > which was originally written by me, but is now quite obsolete, without > updates, having been subsequently "vandalized" by a rather persistent > inexperienced and arrogant user. > Ha, ha, don't you just love it when that happens! It looks like I was trying out commands based on all the documentation that I saw that my code base didn't support. And it looks like I need that feature because if I only have one network of my bond hooked up then that is operational state 'degraded-carrier' and if I have both interfaces hooked up then the operational state is just 'carrier' ... and I need the systemd-networkd-wait-online.service to look for both of those cases. Take care, Brian