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

Alin Rauta alin.rauta at intel.com
Fri Jan 23 09:20:29 PST 2015


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



More information about the systemd-devel mailing list