[systemd-devel] [PATCH] Added UFD (Uplink failure detection) support to networkd

Tom Gundersen teg at jklm.no
Tue Jan 27 10:54:24 PST 2015

Hi Alin,

Thanks for working on this.

I think the main concepts here make sense, but I have some comments on
the implementation.

So the main ideas are:

1) a notion of groups of links
2) a notion of up- and downlinks
3) configuring downlinks if and only if at least one uplink in the
group has a carrier


Maybe we should not restrict the naming to "UFD", as the grouping may
be useful for other things in the future (would be great if you could
comment on Holger's email for instance). In fact Lennart suggested we
introduce the concept of 'tags' instead of groups, and these will be
similar to tags in udev rules.

I.e., introduce a new directive called Tag= in .network files, and
this could then be used for different things in the future.

I don't think we should introduce a netdev kind for groups, as this
really does not correspond to a netdev in the kernel. And I don't
think we should list the ifnames in the configuration of the groups,
but rather configure the group name in the .network file (see how
bonding and bridging currently works). It looks to me that we don't
even need (yet) configuration files for the groups, they can just be
made implicitly from their name as given in .network files. Using the
idea of Tags should give you this.

If possible we should not wait for all links to appear before handling
a group, but be tolerant to not knowing upfront precisely which links
will be on a system. It looks to me that this shouldn't be a problem,
but maybe I missed something? Also here see how bridging and bonding
currently works.

Could you comment a bit on how you decide when an uplink should be
considered failed? Is it jut when it does not have a carrier? Is this
the end of the story, or do you imagine extending this with other
notions in the future?

Lastly, Lennart also pointed out that there is not really a need for
grouping the downlinks, only the uplinks. We could then simply have a
new directive BindToCarrier= which is set in downlinks and which takes
a list of tags, meaning that this link will only be configured once at
least one tag has a link with a carrier.

What do you think?



More information about the systemd-devel mailing list