Hi,

Uplink Failure Detection (UFD) is a key enhancement to networkd, that will 
provide support for the switch use case.
The links can be configured as uplinks or as downlinks inside an UFD group.
When all uplinks for a group are down, the failure is propagated to the 
downlinks, so the devices connected to them
can take a defined action. When at least one uplink become available, the 
daemon tries to bring the downlink ports up.

Multiple UFD groups can be configured through ".netdev" files. See below a 
configuration example:

[NetDev]
Name=group1
Kind=ufd

[UFDGroup]
Id=10

[UFDLink]
Name=sw0p1,sw0p2
Type=uplink

[UFDLink]
Name=sw0p3
Type=downlink

[UFDLink]
Name=sw0p4
Type=downlink


Few details on implementation:

Networkd waits until all links are enumerated (either static configured or 
unmanaged).
Only then it starts enumerating the groups.
"networkctl" command was also updated to support listing of ufd groups & 
configuration. See below a print-out:

# networkctl ufd 10
? UFD Group: 10
Config File: /etc/systemd/network/ufd_to_test.netdev
      State: configured
    Uplinks:
           ? 3: sw0p1
           ? 4: sw0p2
  Downlinks:
           ? 6: sw0p4
           ? 5: sw0p3

Please let me know what you think.

Thanks,
Alin

Alin Rauta (1):
  Added Uplink failure detection feature to networkd

 Makefile.am                             |    4 +
 man/systemd.netdev.xml                  |   72 +-
 src/libsystemd/sd-network/sd-network.c  |  117 +++
 src/network/networkctl.c                |  153 ++++
 src/network/networkd-link.c             |   35 +
 src/network/networkd-manager.c          |   36 +
 src/network/networkd-netdev-gperf.gperf |    3 +
 src/network/networkd-netdev-ufd-group.c |  298 +++++++
 src/network/networkd-netdev-ufd-group.h |   85 ++
 src/network/networkd-netdev.c           |   36 +
 src/network/networkd-netdev.h           |    6 +
 src/network/networkd-ufd-daemon.c       | 1321 +++++++++++++++++++++++++++++++
 src/network/networkd-ufd-daemon.h       |   34 +
 src/network/networkd.c                  |    7 +
 src/network/networkd.h                  |    6 +
 src/systemd/sd-network.h                |   20 +
 16 files changed, 2231 insertions(+), 2 deletions(-)
 create mode 100644 src/network/networkd-netdev-ufd-group.c
 create mode 100644 src/network/networkd-netdev-ufd-group.h
 create mode 100644 src/network/networkd-ufd-daemon.c
 create mode 100644 src/network/networkd-ufd-daemon.h

-- 
1.9.3

_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to