From f579559b3a14c1f1ef96c372e7626c4733e6ef7d Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Thu, 17 Oct 2013 03:18:36 +0200 Subject: networkd: add a basic network daemon This daemon listens for and configures network devices tagged with 'systemd-networkd'. By default, no devices are tagged so this daemon can safely run in parallel with existing network daemons/scripts. Networks are configured in /etc/systemd/network/*.network. The first .network file that matches a given link is applied. The matching logic is similar to the one for .link files, but additionally supports matching on interface name. The mid-term aim is to provide an alternative to ad-hoc scripts currently used in initrd's and for wired setups that don't change much (e.g., as seen on servers/and some embedded systems). Currently, static addresses and a gateway can be configured. Example .network file: [Match] Name=wlp2s0 [Network] Description=My Network Gateway=192.168.1.1 Address=192.168.1.23/24 Address=fe80::9aee:94ff:fe3f:c618/64 --- Makefile.am | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index dcc0a72d81..e6d5723205 100644 --- a/Makefile.am +++ b/Makefile.am @@ -177,6 +177,7 @@ AM_CPPFLAGS = \ -DKEXEC=\"$(KEXEC)\" \ -I $(top_srcdir)/src \ -I $(top_srcdir)/src/shared \ + -I $(top_srcdir)/src/network \ -I $(top_srcdir)/src/login \ -I $(top_srcdir)/src/journal \ -I $(top_srcdir)/src/systemd \ @@ -3770,6 +3771,59 @@ EXTRA_DIST += \ endif +# ------------------------------------------------------------------------------ +rootlibexec_PROGRAMS += \ + systemd-networkd + +systemd_networkd_SOURCES = \ + src/network/networkd.h \ + src/network/networkd.c \ + src/network/networkd-link.c \ + src/network/networkd-network.c \ + src/network/networkd-address.c \ + src/network/networkd-route.c \ + src/network/networkd-manager.c + +nodist_systemd_networkd_SOURCES = \ + src/network/networkd-gperf.c + +systemd_networkd_LDADD = \ + libudev-internal.la \ + libsystemd-bus.la \ + libsystemd-rtnl.la \ + libsystemd-shared.la + +nodist_systemunit_DATA += \ + units/systemd-networkd.service + +MULTI_USER_TARGET_WANTS += \ + systemd-networkd.service + +test_network_SOURCES = \ + src/network/test-network.c \ + src/network/networkd.h \ + src/network/networkd-link.c \ + src/network/networkd-network.c \ + src/network/networkd-address.c \ + src/network/networkd-route.c \ + src/network/networkd-manager.c \ + src/network/networkd-gperf.c + +test_network_LDADD = \ + libudev-internal.la \ + libsystemd-bus.la \ + libsystemd-rtnl.la \ + libsystemd-shared.la + +tests += test-network + +EXTRA_DIST += \ + src/network/networkd-gperf.gperf \ + units/systemd-networkd.service.in + +CLEANFILES += \ + src/network/networkd-gperf.c + # ------------------------------------------------------------------------------ if ENABLE_LOGIND systemd_logind_SOURCES = \ -- cgit v1.2.3-54-g00ecf