After config was downloaded, we should work only on interfaces with explicit config.
We can consider points 1 & 2 from the above.
Why do we even have to detect carrier signal? So that we know when to dhcp on those interfaces?
/etc/resolv.conf
/etc/hostname
Should this run each time we have config changes?
networkd
discovers all the interfaces (it might skip bondX
without config as it is today).
For each interface it starts a goroutine which does the following:
It’s kind of a tree with root at networkd and going through each interface
We could have a context propagation through the tree so that we can cancel the operation
And we could have had kind of a status endpoint for initial discovery which tells us when we have 1 link up & configured (for initial discovery phase, so that we know we can proceed).
This way I guess we don’t need filtering, as unresponsive interfaces or interfaces without carrier won’t affect the operations: we’re waiting for the first interface to be fully up.