Refactor network link selection
The intended behavior, as I understand it:
-
If bonding is set, use only the bonded link (the 802.3ad "Aggregator")
-
With no bonding A If NetworkInterfaces is unset, use all non-loopback links B If NetworkInterfaces is set, use only links with configured MAC addresses, but fall back to (A) if none of the MAC addresses is found.
-
For static configuration, try bringing up those links one at a time, stop at first success.
-
For dhcp configuration, run dhcp client on all those links. I think this also returns on first success, before waiting for dhcp to complete on all links (and without cancelling any dhcp work still in progress).