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

Rauta, Alin alin.rauta at intel.com
Wed Jan 28 09:18:36 PST 2015

Hi Lennart, Tom,

We should also be able to add virtual devices to UFD groups, like Andrei mentioned in his email.
In this case, do you think "BindCarrier=" and "Tag=" in .network files would still work ?

If we think about LAG (link aggregation) and if I am right, it's mapped to the kernel as a virtual device and contains multiple links. This way, it makes sense to have groups of links as netdevs. The only difference in case of UFD is that is not mapped to the kernel, but it's mapped inside networkd.

Another thing is that maybe later on we want to provide some properties for an UFD group, maybe to change to way we consider an uplink as failing. This would be easy if we have a netdev for the UFD group. Also, defining a netdev, we don't lose the identity of the feature nor we mask it.

The patch I've sent introduces "NETDEV_CREATE_GROUP" as a new netdev "create_type" that can be used for other groups also, not just UFDs.
The UFD group creation is done by calling "netdev->create" which is an  abstraction  for an inside "netdev_create_ufd_group", so it's generic.
If, for example, I want to add a new kind of groups, not UFD, I have to define a new netdev kind (kind=new_group_kind) and to provide the corresponding create function in the netdev abstraction table.

I don't know in which other way to configure the UFDs and handle all use cases (for both virtual & physical devices).

Please let me know what you think.

Best Regards,

-----Original Message-----
From: Lennart Poettering [mailto:lennart at poettering.net] 
Sent: Wednesday, January 28, 2015 1:53 PM
To: Andrei Borzenkov
Cc: Rauta, Alin; Kinsella, Ray; systemd Mailing List
Subject: Re: [systemd-devel] [PATCH] Added UFD (Uplink failure detection) support to networkd

On Wed, 28.01.15 16:48, Andrei Borzenkov (arvidjaar at gmail.com) wrote:

> On Wed, Jan 28, 2015 at 3:40 PM, Lennart Poettering 
> <lennart at poettering.net> wrote:
> > On Wed, 28.01.15 10:13, Rauta, Alin (alin.rauta at intel.com) wrote:
> >
> >> Lennart, on a switch I should be able to configure more than one 
> >> UFD group.
> >
> > What precisely does this mean? WOuld those groups be orthogonal?
> >
> No. You have two different VLANs; uplink group 1 connects to to VLAN1, 
> uplink group 2 connects to VLAN2. They are not orthogonal in any way 
> and exist at the same time. If group 1 goes down, it does not affect 
> group 2 in any way.

Hmm, if they don't affect each other, then they *are* orthogonal.

Now I am really confused...

> > I really would like to avoid introdcuing the "tags" concept for now. 
> > Would a solution where you give the uplinks appropriate names (like 
> > "uplink0", "uplinkXYZ", "uplink_waldo" and so on) suffice, when you 
> > can then refer to them in a .network file you apply to the downlinks 
> > as "BindCarrier=uplink*"?
> >
> > BindCarrier= would take a list of interface names, possibly with 
> > globs. If you want to up and down a link "foo" if at least one of 
> > the links "bar", "quux", "piep", "miau1", "miau2" are up, you could 
> > write this as "BindCarrier=bar quux piep miau*".
> >
> > What would introducing the "tag" concept give you beyond this very 
> > simple schreme described above?
> >
> > Lennart
> >
> > --
> > Lennart Poettering, Red Hat
> > _______________________________________________
> > systemd-devel mailing list
> > systemd-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Lennart Poettering, Red Hat

More information about the systemd-devel mailing list