summary refs log tree commit diff
path: root/src/rdisc
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2017-01-17 20:25:09 +0100
committerMichael Biebl <biebl@debian.org>2017-01-17 20:25:09 +0100
commit58f8be580039b0575b197b9573a1c92745d96d30 (patch)
tree2c226233f623a0dcb529be0eb8cdf97e4a2ae0c0 /src/rdisc
parent45cb5bb3c0e6edb887cf69b417fcaf7053814a9b (diff)
New upstream version 1.5.90 upstream/1.5.90
Diffstat (limited to 'src/rdisc')
-rw-r--r--src/rdisc/Makefile.am1
-rw-r--r--src/rdisc/Makefile.in781
-rw-r--r--src/rdisc/nm-fake-rdisc.c396
-rw-r--r--src/rdisc/nm-fake-rdisc.h88
-rw-r--r--src/rdisc/nm-lndp-rdisc.c434
-rw-r--r--src/rdisc/nm-lndp-rdisc.h47
-rw-r--r--src/rdisc/nm-rdisc-private.h77
-rw-r--r--src/rdisc/nm-rdisc.c1073
-rw-r--r--src/rdisc/nm-rdisc.h170
-rw-r--r--src/rdisc/tests/Makefile.am36
-rw-r--r--src/rdisc/tests/Makefile.in1164
-rw-r--r--src/rdisc/tests/test-rdisc-fake.c483
-rw-r--r--src/rdisc/tests/test-rdisc-linux.c85
13 files changed, 0 insertions, 4835 deletions
diff --git a/src/rdisc/Makefile.am b/src/rdisc/Makefile.am
deleted file mode 100644
index 3c6155b9..00000000
--- a/src/rdisc/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = tests
diff --git a/src/rdisc/Makefile.in b/src/rdisc/Makefile.in
deleted file mode 100644
index 719ce8a2..00000000
--- a/src/rdisc/Makefile.in
+++ /dev/null
@@ -1,781 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/rdisc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
-	$(top_srcdir)/m4/ax_lib_readline.m4 \
-	$(top_srcdir)/m4/compiler_options.m4 \
-	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/git-sha-record.m4 \
-	$(top_srcdir)/m4/gnome-code-coverage.m4 \
-	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intltool.m4 \
-	$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/Makefile.in
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AM_TESTS_FD_REDIRECT = @AM_TESTS_FD_REDIRECT@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
-BLUEZ5_LIBS = @BLUEZ5_LIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
-CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
-CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
-DBUS_SYS_DIR = @DBUS_SYS_DIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DHCLIENT_PATH = @DHCLIENT_PATH@
-DHCPCD_PATH = @DHCPCD_PATH@
-DISTRO_NETWORK_SERVICE = @DISTRO_NETWORK_SERVICE@
-DLLTOOL = @DLLTOOL@
-DL_LIBS = @DL_LIBS@
-DNSMASQ_PATH = @DNSMASQ_PATH@
-DNSSEC_TRIGGER_SCRIPT = @DNSSEC_TRIGGER_SCRIPT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GENHTML = @GENHTML@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_MAKEFILE = @GLIB_MAKEFILE@
-GLIB_MKENUMS = @GLIB_MKENUMS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
-GNUTLS_LIBS = @GNUTLS_LIBS@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
-GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
-GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
-GTKDOC_MKPDF = @GTKDOC_MKPDF@
-GTKDOC_REBASE = @GTKDOC_REBASE@
-GUDEV_CFLAGS = @GUDEV_CFLAGS@
-GUDEV_LIBS = @GUDEV_LIBS@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
-INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
-INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
-INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-IPTABLES_PATH = @IPTABLES_PATH@
-JANSSON_CFLAGS = @JANSSON_CFLAGS@
-JANSSON_LIBS = @JANSSON_LIBS@
-KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
-LCOV = @LCOV@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBAUDIT_CFLAGS = @LIBAUDIT_CFLAGS@
-LIBAUDIT_LIBS = @LIBAUDIT_LIBS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBNDP_CFLAGS = @LIBNDP_CFLAGS@
-LIBNDP_LIBS = @LIBNDP_LIBS@
-LIBNL_CFLAGS = @LIBNL_CFLAGS@
-LIBNL_LIBS = @LIBNL_LIBS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@
-LIBSOUP_LIBS = @LIBSOUP_LIBS@
-LIBSYSTEMD_CFLAGS = @LIBSYSTEMD_CFLAGS@
-LIBSYSTEMD_LIBS = @LIBSYSTEMD_LIBS@
-LIBTEAMDCTL_CFLAGS = @LIBTEAMDCTL_CFLAGS@
-LIBTEAMDCTL_LIBS = @LIBTEAMDCTL_LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOG_DRIVER = @LOG_DRIVER@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@
-MM_GLIB_LIBS = @MM_GLIB_LIBS@
-MOC = @MOC@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NEWT_CFLAGS = @NEWT_CFLAGS@
-NEWT_LIBS = @NEWT_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NM_CONFIG_DEFAULT_AUTH_POLKIT_TEXT = @NM_CONFIG_DEFAULT_AUTH_POLKIT_TEXT@
-NM_CONFIG_DEFAULT_DNS_RC_MANAGER = @NM_CONFIG_DEFAULT_DNS_RC_MANAGER@
-NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT = @NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT@
-NM_CONFIG_LOGGING_BACKEND_DEFAULT_TEXT = @NM_CONFIG_LOGGING_BACKEND_DEFAULT_TEXT@
-NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
-NM_MICRO_VERSION = @NM_MICRO_VERSION@
-NM_MINOR_VERSION = @NM_MINOR_VERSION@
-NM_MODIFY_SYSTEM_POLICY = @NM_MODIFY_SYSTEM_POLICY@
-NM_VERSION = @NM_VERSION@
-NSS_CFLAGS = @NSS_CFLAGS@
-NSS_LIBS = @NSS_LIBS@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PERL = @PERL@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-POLKIT_CFLAGS = @POLKIT_CFLAGS@
-POLKIT_LIBS = @POLKIT_LIBS@
-POSUB = @POSUB@
-PPPD_PATH = @PPPD_PATH@
-PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
-QT_CFLAGS = @QT_CFLAGS@
-QT_LIBS = @QT_LIBS@
-RANLIB = @RANLIB@
-READLINE_LIBS = @READLINE_LIBS@
-SANITIZERS = @SANITIZERS@
-SANITIZER_ENV = @SANITIZER_ENV@
-SED = @SED@
-SELINUX_CFLAGS = @SELINUX_CFLAGS@
-SELINUX_LIBS = @SELINUX_LIBS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-SYSTEMD_200_CFLAGS = @SYSTEMD_200_CFLAGS@
-SYSTEMD_200_LIBS = @SYSTEMD_200_LIBS@
-SYSTEMD_INHIBIT_CFLAGS = @SYSTEMD_INHIBIT_CFLAGS@
-SYSTEMD_INHIBIT_LIBS = @SYSTEMD_INHIBIT_LIBS@
-SYSTEMD_JOURNAL_CFLAGS = @SYSTEMD_JOURNAL_CFLAGS@
-SYSTEMD_JOURNAL_LIBS = @SYSTEMD_JOURNAL_LIBS@
-SYSTEMD_LOGIN_CFLAGS = @SYSTEMD_LOGIN_CFLAGS@
-SYSTEMD_LOGIN_LIBS = @SYSTEMD_LOGIN_LIBS@
-SYSTEM_CA_PATH = @SYSTEM_CA_PATH@
-UDEV_DIR = @UDEV_DIR@
-USE_NLS = @USE_NLS@
-UUID_CFLAGS = @UUID_CFLAGS@
-UUID_LIBS = @UUID_LIBS@
-VALGRIND_RULES = @VALGRIND_RULES@
-VAPIGEN = @VAPIGEN@
-VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
-VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-intltool__v_merge_options_ = @intltool__v_merge_options_@
-intltool__v_merge_options_0 = @intltool__v_merge_options_0@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-nmbinary = @nmbinary@
-nmconfdir = @nmconfdir@
-nmdatadir = @nmdatadir@
-nmlibdir = @nmlibdir@
-nmrundir = @nmrundir@
-nmstatedir = @nmstatedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-subdirs = @subdirs@
-sysconfdir = @sysconfdir@
-systemdsystemunitdir = @systemdsystemunitdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-with_dhclient = @with_dhclient@
-with_dhcpcd = @with_dhcpcd@
-with_netconfig = @with_netconfig@
-with_resolvconf = @with_resolvconf@
-with_valgrind = @with_valgrind@
-SUBDIRS = tests
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/rdisc/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/rdisc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail=; \
-	if $(am__make_keepgoing); then \
-	  failcom='fail=yes'; \
-	else \
-	  failcom='exit 1'; \
-	fi; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-	check-am clean clean-generic clean-libtool cscopelist-am ctags \
-	ctags-am distclean distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/rdisc/nm-fake-rdisc.c b/src/rdisc/nm-fake-rdisc.c
deleted file mode 100644
index 46f2b08c..00000000
--- a/src/rdisc/nm-fake-rdisc.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-fake-rdisc.c - Fake implementation of router discovery
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include <string.h>
-#include <arpa/inet.h>
-
-#include "nm-fake-rdisc.h"
-#include "nm-rdisc-private.h"
-
-#define _NMLOG_PREFIX_NAME                "rdisc-fake"
-
-typedef struct {
-	guint id;
-	guint when;
-
-	NMRDiscDHCPLevel dhcp_level;
-	GArray *gateways;
-	GArray *prefixes;
-	GArray *dns_servers;
-	GArray *dns_domains;
-	int hop_limit;
-	guint32 mtu;
-} FakeRa;
-
-typedef struct {
-        struct in6_addr network;
-        int plen;
-        struct in6_addr gateway;
-        guint32 timestamp;
-        guint32 lifetime;
-        guint32 preferred;
-        NMRDiscPreference preference;
-} FakePrefix;
-
-typedef struct {
-	guint receive_ra_id;
-	GSList *ras;
-} NMFakeRDiscPrivate;
-
-#define NM_FAKE_RDISC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_FAKE_RDISC, NMFakeRDiscPrivate))
-
-G_DEFINE_TYPE (NMFakeRDisc, nm_fake_rdisc, NM_TYPE_RDISC)
-
-enum {
-	RS_SENT,
-	LAST_SIGNAL
-};
-static guint signals[LAST_SIGNAL] = { 0 };
-
-/******************************************************************/
-
-static void
-fake_ra_free (gpointer data)
-{
-	FakeRa *ra = data;
-
-	g_array_free (ra->gateways, TRUE);
-	g_array_free (ra->prefixes, TRUE);
-	g_array_free (ra->dns_servers, TRUE);
-	g_array_free (ra->dns_domains, TRUE);
-	g_free (ra);
-}
-
-static void
-ra_dns_domain_free (gpointer data)
-{
-	g_free (((NMRDiscDNSDomain *)(data))->domain);
-}
-
-static FakeRa *
-find_ra (GSList *ras, guint id)
-{
-	GSList *iter;
-
-	for (iter = ras; iter; iter = iter->next) {
-		if (((FakeRa *) iter->data)->id == id)
-			return iter->data;
-	}
-	return NULL;
-}
-
-guint
-nm_fake_rdisc_add_ra (NMFakeRDisc *self,
-                      guint seconds_after_previous,
-                      NMRDiscDHCPLevel dhcp_level,
-                      int hop_limit,
-                      guint32 mtu)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	static guint counter = 1;
-	FakeRa *ra;
-
-	ra = g_malloc0 (sizeof (*ra));
-	ra->id = counter++;
-	ra->when = seconds_after_previous;
-	ra->dhcp_level = dhcp_level;
-	ra->hop_limit = hop_limit;
-	ra->mtu = mtu;
-	ra->gateways = g_array_new (FALSE, FALSE, sizeof (NMRDiscGateway));
-	ra->prefixes = g_array_new (FALSE, FALSE, sizeof (FakePrefix));
-	ra->dns_servers = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSServer));
-	ra->dns_domains = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSDomain));
-	g_array_set_clear_func (ra->dns_domains, ra_dns_domain_free);
-
-	priv->ras = g_slist_append (priv->ras, ra);
-	return ra->id;
-}
-
-void
-nm_fake_rdisc_add_gateway (NMFakeRDisc *self,
-                           guint ra_id,
-                           const char *addr,
-                           guint32 timestamp,
-                           guint32 lifetime,
-                           NMRDiscPreference preference)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	FakeRa *ra = find_ra (priv->ras, ra_id);
-	NMRDiscGateway *gw;
-
-	g_assert (ra);
-	g_array_set_size (ra->gateways, ra->gateways->len + 1);
-	gw = &g_array_index (ra->gateways, NMRDiscGateway, ra->gateways->len - 1);
-	g_assert (inet_pton (AF_INET6, addr, &gw->address) == 1);
-	gw->timestamp = timestamp;
-	gw->lifetime = lifetime;
-	gw->preference = preference;
-}
-
-void
-nm_fake_rdisc_add_prefix (NMFakeRDisc *self,
-                          guint ra_id,
-                          const char *network,
-                          guint plen,
-                          const char *gateway,
-                          guint32 timestamp,
-                          guint32 lifetime,
-                          guint32 preferred,
-                          NMRDiscPreference preference)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	FakeRa *ra = find_ra (priv->ras, ra_id);
-	FakePrefix *prefix;
-
-	g_assert (ra);
-	g_array_set_size (ra->prefixes, ra->prefixes->len + 1);
-	prefix = &g_array_index (ra->prefixes, FakePrefix, ra->prefixes->len - 1);
-	memset (prefix, 0, sizeof (*prefix));
-	g_assert (inet_pton (AF_INET6, network, &prefix->network) == 1);
-	g_assert (inet_pton (AF_INET6, gateway, &prefix->gateway) == 1);
-	prefix->plen = plen;
-	prefix->timestamp = timestamp;
-	prefix->lifetime = lifetime;
-	prefix->preferred = preferred;
-	prefix->preference = preference;
-}
-
-void
-nm_fake_rdisc_add_dns_server (NMFakeRDisc *self,
-                              guint ra_id,
-                              const char *address,
-                              guint32 timestamp,
-                              guint32 lifetime)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	FakeRa *ra = find_ra (priv->ras, ra_id);
-	NMRDiscDNSServer *dns;
-
-	g_assert (ra);
-	g_array_set_size (ra->dns_servers, ra->dns_servers->len + 1);
-	dns = &g_array_index (ra->dns_servers, NMRDiscDNSServer, ra->dns_servers->len - 1);
-	g_assert (inet_pton (AF_INET6, address, &dns->address) == 1);
-	dns->timestamp = timestamp;
-	dns->lifetime = lifetime;
-}
-
-void
-nm_fake_rdisc_add_dns_domain (NMFakeRDisc *self,
-                              guint ra_id,
-                              const char *domain,
-                              guint32 timestamp,
-                              guint32 lifetime)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	FakeRa *ra = find_ra (priv->ras, ra_id);
-	NMRDiscDNSDomain *dns;
-
-	g_assert (ra);
-	g_array_set_size (ra->dns_domains, ra->dns_domains->len + 1);
-	dns = &g_array_index (ra->dns_domains, NMRDiscDNSDomain, ra->dns_domains->len - 1);
-	dns->domain = g_strdup (domain);
-	dns->timestamp = timestamp;
-	dns->lifetime = lifetime;
-}
-
-gboolean
-nm_fake_rdisc_done (NMFakeRDisc *self)
-{
-	return !NM_FAKE_RDISC_GET_PRIVATE (self)->ras;
-}
-
-/******************************************************************/
-
-static gboolean
-send_rs (NMRDisc *rdisc, GError **error)
-{
-	g_signal_emit (rdisc, signals[RS_SENT], 0);
-	return TRUE;
-}
-
-static gboolean
-receive_ra (gpointer user_data)
-{
-	NMFakeRDisc *self = user_data;
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (self);
-	NMRDisc *rdisc = NM_RDISC (self);
-	NMRDiscDataInternal *rdata = rdisc->rdata;
-	FakeRa *ra = priv->ras->data;
-	NMRDiscConfigMap changed = 0;
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	guint i;
-	NMRDiscDHCPLevel dhcp_level;
-
-	priv->receive_ra_id = 0;
-
-	/* preserve the "most managed" level  on updates. */
-	dhcp_level = MAX (rdata->public.dhcp_level, ra->dhcp_level);
-
-	if (rdata->public.dhcp_level != dhcp_level) {
-		rdata->public.dhcp_level = dhcp_level;
-		changed |= NM_RDISC_CONFIG_DHCP_LEVEL;
-	}
-
-	for (i = 0; i < ra->gateways->len; i++) {
-		NMRDiscGateway *item = &g_array_index (ra->gateways, NMRDiscGateway, i);
-
-		if (nm_rdisc_add_gateway (rdisc, item))
-			changed |= NM_RDISC_CONFIG_GATEWAYS;
-	}
-
-	for (i = 0; i < ra->prefixes->len; i++) {
-		FakePrefix *item = &g_array_index (ra->prefixes, FakePrefix, i);
-		NMRDiscRoute route = {
-			.network = item->network,
-			.plen = item->plen,
-			.gateway = item->gateway,
-			.timestamp = item->timestamp,
-			.lifetime = item->lifetime,
-			.preference = item->preference,
-		};
-
-		g_assert (route.plen > 0 && route.plen <= 128);
-
-		if (nm_rdisc_add_route (rdisc, &route))
-			changed |= NM_RDISC_CONFIG_ROUTES;
-
-		if (item->plen == 64) {
-			NMRDiscAddress address = {
-				.address = item->network,
-				.timestamp = item->timestamp,
-				.lifetime = item->lifetime,
-				.preferred = item->preferred,
-				.dad_counter = 0,
-			};
-
-			if (nm_rdisc_complete_and_add_address (rdisc, &address))
-				changed |= NM_RDISC_CONFIG_ADDRESSES;
-		}
-	}
-
-	for (i = 0; i < ra->dns_servers->len; i++) {
-		NMRDiscDNSServer *item = &g_array_index (ra->dns_servers, NMRDiscDNSServer, i);
-
-		if (nm_rdisc_add_dns_server (rdisc, item))
-			changed |= NM_RDISC_CONFIG_DNS_SERVERS;
-	}
-
-	for (i = 0; i < ra->dns_domains->len; i++) {
-		NMRDiscDNSDomain *item = &g_array_index (ra->dns_domains, NMRDiscDNSDomain, i);
-
-		if (nm_rdisc_add_dns_domain (rdisc, item))
-			changed |= NM_RDISC_CONFIG_DNS_DOMAINS;
-	}
-
-	if (rdata->public.mtu != ra->mtu) {
-		rdata->public.mtu = ra->mtu;
-		changed |= NM_RDISC_CONFIG_MTU;
-	}
-
-	if (rdata->public.hop_limit != ra->hop_limit) {
-		rdata->public.hop_limit = ra->hop_limit;
-		changed |= NM_RDISC_CONFIG_HOP_LIMIT;
-	}
-
-	priv->ras = g_slist_remove (priv->ras, priv->ras->data);
-	fake_ra_free (ra);
-
-	nm_rdisc_ra_received (NM_RDISC (self), now, changed);
-
-	/* Schedule next RA */
-	if (priv->ras) {
-		ra = priv->ras->data;
-		priv->receive_ra_id = g_timeout_add_seconds (ra->when, receive_ra, self);
-	}
-
-	return G_SOURCE_REMOVE;
-}
-
-static void
-start (NMRDisc *rdisc)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (rdisc);
-	FakeRa *ra;
-
-	/* Queue up the first fake RA */
-	g_assert (priv->ras);
-	ra = NM_FAKE_RDISC_GET_PRIVATE (rdisc)->ras->data;
-
-	g_assert (!priv->receive_ra_id);
-	priv->receive_ra_id = g_timeout_add_seconds (ra->when, receive_ra, rdisc);
-}
-
-void
-nm_fake_rdisc_emit_new_ras (NMFakeRDisc *self)
-{
-	if (!NM_FAKE_RDISC_GET_PRIVATE (self)->receive_ra_id)
-		start (NM_RDISC (self));
-}
-
-/******************************************************************/
-
-NMRDisc *
-nm_fake_rdisc_new (int ifindex, const char *ifname)
-{
-	return g_object_new (NM_TYPE_FAKE_RDISC,
-	                     NM_RDISC_IFINDEX, ifindex,
-	                     NM_RDISC_IFNAME, ifname,
-	                     NULL);
-}
-
-static void
-nm_fake_rdisc_init (NMFakeRDisc *fake_rdisc)
-{
-}
-
-static void
-dispose (GObject *object)
-{
-	NMFakeRDiscPrivate *priv = NM_FAKE_RDISC_GET_PRIVATE (object);
-
-	nm_clear_g_source (&priv->receive_ra_id);
-
-	g_slist_free_full (priv->ras, fake_ra_free);
-	priv->ras = NULL;
-
-	G_OBJECT_CLASS (nm_fake_rdisc_parent_class)->dispose (object);
-}
-
-static void
-nm_fake_rdisc_class_init (NMFakeRDiscClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	NMRDiscClass *rdisc_class = NM_RDISC_CLASS (klass);
-
-	g_type_class_add_private (klass, sizeof (NMFakeRDiscPrivate));
-
-	object_class->dispose = dispose;
-	rdisc_class->start = start;
-	rdisc_class->send_rs = send_rs;
-
-	signals[RS_SENT] =
-	    g_signal_new (NM_FAKE_RDISC_RS_SENT,
-	                  G_OBJECT_CLASS_TYPE (klass),
-	                  G_SIGNAL_RUN_FIRST,
-	                  0,  NULL, NULL, NULL,
-	                  G_TYPE_NONE, 0);
-}
diff --git a/src/rdisc/nm-fake-rdisc.h b/src/rdisc/nm-fake-rdisc.h
deleted file mode 100644
index 1082ba5e..00000000
--- a/src/rdisc/nm-fake-rdisc.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-fake-rdisc.h - Fake implementation of router discovery
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_FAKE_RDISC_H__
-#define __NETWORKMANAGER_FAKE_RDISC_H__
-
-#include "nm-rdisc.h"
-
-#define NM_TYPE_FAKE_RDISC            (nm_fake_rdisc_get_type ())
-#define NM_FAKE_RDISC(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_FAKE_RDISC, NMFakeRDisc))
-#define NM_FAKE_RDISC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_FAKE_RDISC, NMFakeRDiscClass))
-#define NM_IS_FAKE_RDISC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_FAKE_RDISC))
-#define NM_IS_FAKE_RDISC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_FAKE_RDISC))
-#define NM_FAKE_RDISC_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_FAKE_RDISC, NMFakeRDiscClass))
-
-#define NM_FAKE_RDISC_RS_SENT "rs-sent"
-
-typedef struct {
-	NMRDisc parent;
-} NMFakeRDisc;
-
-typedef struct {
-	NMRDiscClass parent;
-} NMFakeRDiscClass;
-
-/******************************************************************/
-
-GType nm_fake_rdisc_get_type (void);
-
-NMRDisc *nm_fake_rdisc_new (int ifindex, const char *ifname);
-
-guint nm_fake_rdisc_add_ra (NMFakeRDisc *self,
-                            guint seconds,
-                            NMRDiscDHCPLevel dhcp_level,
-                            int hop_limit,
-                            guint32 mtu);
-
-void nm_fake_rdisc_add_gateway    (NMFakeRDisc *self,
-                                   guint ra_id,
-                                   const char *addr,
-                                   guint32 timestamp,
-                                   guint32 lifetime,
-                                   NMRDiscPreference preference);
-
-void nm_fake_rdisc_add_prefix     (NMFakeRDisc *self,
-                                   guint ra_id,
-                                   const char *network,
-                                   guint plen,
-                                   const char *gateway,
-                                   guint32 timestamp,
-                                   guint32 lifetime,
-                                   guint32 preferred,
-                                   NMRDiscPreference preference);
-
-void nm_fake_rdisc_add_dns_server (NMFakeRDisc *self,
-                                   guint ra_id,
-                                   const char *address,
-                                   guint32 timestamp,
-                                   guint32 lifetime);
-
-void nm_fake_rdisc_add_dns_domain (NMFakeRDisc *self,
-                                   guint ra_id,
-                                   const char *domain,
-                                   guint32 timestamp,
-                                   guint32 lifetime);
-
-void nm_fake_rdisc_emit_new_ras (NMFakeRDisc *self);
-
-gboolean nm_fake_rdisc_done (NMFakeRDisc *self);
-
-#endif /* __NETWORKMANAGER_FAKE_RDISC_H__ */
diff --git a/src/rdisc/nm-lndp-rdisc.c b/src/rdisc/nm-lndp-rdisc.c
deleted file mode 100644
index db2965b1..00000000
--- a/src/rdisc/nm-lndp-rdisc.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-lndp-rdisc.c - Router discovery implementation using libndp
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include "nm-lndp-rdisc.h"
-
-#include <string.h>
-#include <arpa/inet.h>
-/* stdarg.h included because of a bug in ndp.h */
-#include <stdarg.h>
-#include <ndp.h>
-
-#include "nm-rdisc-private.h"
-#include "NetworkManagerUtils.h"
-#include "nm-platform.h"
-#include "nmp-netns.h"
-
-#define _NMLOG_PREFIX_NAME                "rdisc-lndp"
-
-/*****************************************************************************/
-
-typedef struct {
-	struct ndp *ndp;
-
-	GIOChannel *event_channel;
-	guint event_id;
-	guint ra_timeout_id;  /* first RA timeout */
-} NMLndpRDiscPrivate;
-
-/*****************************************************************************/
-
-struct _NMLndpRDisc {
-	NMRDisc parent;
-	NMLndpRDiscPrivate _priv;
-};
-
-struct _NMLndpRDiscClass {
-	NMRDiscClass parent;
-};
-
-/*****************************************************************************/
-
-G_DEFINE_TYPE (NMLndpRDisc, nm_lndp_rdisc, NM_TYPE_RDISC)
-
-#define NM_LNDP_RDISC_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMLndpRDisc, NM_IS_LNDP_RDISC)
-
-/*****************************************************************************/
-
-static gboolean
-send_rs (NMRDisc *rdisc, GError **error)
-{
-	NMLndpRDiscPrivate *priv = NM_LNDP_RDISC_GET_PRIVATE ((NMLndpRDisc *) rdisc);
-	struct ndp_msg *msg;
-	int errsv;
-
-	errsv = ndp_msg_new (&msg, NDP_MSG_RS);
-	if (errsv) {
-		errsv = errsv > 0 ? errsv : -errsv;
-		g_set_error_literal (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
-		                     "cannot create router solicitation");
-		return FALSE;
-	}
-	ndp_msg_ifindex_set (msg, nm_rdisc_get_ifindex (rdisc));
-
-	errsv = ndp_msg_send (priv->ndp, msg);
-	ndp_msg_destroy (msg);
-	if (errsv) {
-		errsv = errsv > 0 ? errsv : -errsv;
-		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
-		             "%s (%d)",
-		             g_strerror (errsv), errsv);
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-_NM_UTILS_LOOKUP_DEFINE (static, translate_preference, enum ndp_route_preference, NMRDiscPreference,
-	NM_UTILS_LOOKUP_DEFAULT (NM_RDISC_PREFERENCE_INVALID),
-	NM_UTILS_LOOKUP_ITEM (NDP_ROUTE_PREF_LOW,    NM_RDISC_PREFERENCE_LOW),
-	NM_UTILS_LOOKUP_ITEM (NDP_ROUTE_PREF_MEDIUM, NM_RDISC_PREFERENCE_MEDIUM),
-	NM_UTILS_LOOKUP_ITEM (NDP_ROUTE_PREF_HIGH,   NM_RDISC_PREFERENCE_HIGH),
-);
-
-static int
-receive_ra (struct ndp *ndp, struct ndp_msg *msg, gpointer user_data)
-{
-	NMRDisc *rdisc = (NMRDisc *) user_data;
-	NMRDiscDataInternal *rdata = rdisc->rdata;
-	NMRDiscConfigMap changed = 0;
-	struct ndp_msgra *msgra = ndp_msgra (msg);
-	struct in6_addr gateway_addr;
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	int offset;
-	int hop_limit;
-
-	/* Router discovery is subject to the following RFC documents:
-	 *
-	 * http://tools.ietf.org/html/rfc4861
-	 * http://tools.ietf.org/html/rfc4862
-	 *
-	 * The biggest difference from good old DHCP is that all configuration
-	 * items have their own lifetimes and they are merged from various
-	 * sources. Router discovery is *not* contract-based, so there is *no*
-	 * single time when the configuration is finished and updates can
-	 * come at any time.
-	 */
-	_LOGD ("received router advertisement at %u", now);
-
-	/* DHCP level:
-	 *
-	 * The problem with DHCP level is what to do if subsequent
-	 * router advertisements carry different flags. Currently we just
-	 * rewrite the flag with every inbound RA.
-	 */
-	{
-		NMRDiscDHCPLevel dhcp_level;
-
-		if (ndp_msgra_flag_managed (msgra))
-			dhcp_level = NM_RDISC_DHCP_LEVEL_MANAGED;
-		else if (ndp_msgra_flag_other (msgra))
-			dhcp_level = NM_RDISC_DHCP_LEVEL_OTHERCONF;
-		else
-			dhcp_level = NM_RDISC_DHCP_LEVEL_NONE;
-
-		/* when receiving multiple RA (possibly from different routers),
-		 * let's keep the "most managed" level. */
-		G_STATIC_ASSERT_EXPR (NM_RDISC_DHCP_LEVEL_MANAGED > NM_RDISC_DHCP_LEVEL_OTHERCONF);
-		G_STATIC_ASSERT_EXPR (NM_RDISC_DHCP_LEVEL_OTHERCONF > NM_RDISC_DHCP_LEVEL_NONE);
-		dhcp_level = MAX (dhcp_level, rdata->public.dhcp_level);
-
-		if (dhcp_level != rdata->public.dhcp_level) {
-			rdata->public.dhcp_level = dhcp_level;
-			changed |= NM_RDISC_CONFIG_DHCP_LEVEL;
-		}
-	}
-
-	/* Default gateway:
-	 *
-	 * Subsequent router advertisements can represent new default gateways
-	 * on the network. We should present all of them in router preference
-	 * order.
-	 */
-	gateway_addr = *ndp_msg_addrto (msg);
-	{
-		NMRDiscGateway gateway = {
-		    .address = gateway_addr,
-		    .timestamp = now,
-		    .lifetime = ndp_msgra_router_lifetime (msgra),
-		    .preference = translate_preference (ndp_msgra_route_preference (msgra)),
-		};
-
-		if (nm_rdisc_add_gateway (rdisc, &gateway))
-			changed |= NM_RDISC_CONFIG_GATEWAYS;
-	}
-
-	/* Addresses & Routes */
-	ndp_msg_opt_for_each_offset (offset, msg, NDP_MSG_OPT_PREFIX) {
-		guint8 r_plen;
-		struct in6_addr r_network;
-
-		/* Device route */
-
-		r_plen = ndp_msg_opt_prefix_len (msg, offset);
-		if (r_plen == 0 || r_plen > 128)
-			continue;
-		nm_utils_ip6_address_clear_host_address (&r_network, ndp_msg_opt_prefix (msg, offset), r_plen);
-
-		if (ndp_msg_opt_prefix_flag_on_link (msg, offset)) {
-			NMRDiscRoute route = {
-			    .network = r_network,
-			    .plen = r_plen,
-			    .timestamp = now,
-			    .lifetime = ndp_msg_opt_prefix_valid_time (msg, offset),
-			};
-
-			if (nm_rdisc_add_route (rdisc, &route))
-				changed |= NM_RDISC_CONFIG_ROUTES;
-		}
-
-		/* Address */
-		if (   r_plen == 64
-		    && ndp_msg_opt_prefix_flag_auto_addr_conf (msg, offset)) {
-			NMRDiscAddress address = {
-			    .address = r_network,
-			    .timestamp = now,
-			    .lifetime = ndp_msg_opt_prefix_valid_time (msg, offset),
-			    .preferred = ndp_msg_opt_prefix_preferred_time (msg, offset),
-			};
-
-			if (address.preferred > address.lifetime)
-				address.preferred = address.lifetime;
-			if (nm_rdisc_complete_and_add_address (rdisc, &address))
-				changed |= NM_RDISC_CONFIG_ADDRESSES;
-		}
-	}
-	ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_ROUTE) {
-		NMRDiscRoute route = {
-		    .gateway = gateway_addr,
-		    .plen = ndp_msg_opt_route_prefix_len (msg, offset),
-		    .timestamp = now,
-		    .lifetime = ndp_msg_opt_route_lifetime (msg, offset),
-		    .preference = translate_preference (ndp_msg_opt_route_preference (msg, offset)),
-		};
-
-		if (route.plen == 0 || route.plen > 128)
-			continue;
-
-		/* Routers through this particular gateway */
-		nm_utils_ip6_address_clear_host_address (&route.network, ndp_msg_opt_route_prefix (msg, offset), route.plen);
-		if (nm_rdisc_add_route (rdisc, &route))
-			changed |= NM_RDISC_CONFIG_ROUTES;
-	}
-
-	/* DNS information */
-	ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_RDNSS) {
-		static struct in6_addr *addr;
-		int addr_index;
-
-		ndp_msg_opt_rdnss_for_each_addr (addr, addr_index, msg, offset) {
-			NMRDiscDNSServer dns_server = {
-			    .address = *addr,
-			    .timestamp = now,
-			    .lifetime = ndp_msg_opt_rdnss_lifetime (msg, offset),
-			};
-
-			/* Pad the lifetime somewhat to give a bit of slack in cases
-			 * where one RA gets lost or something (which can happen on unreliable
-			 * links like WiFi where certain types of frames are not retransmitted).
-			 * Note that 0 has special meaning and is therefore not adjusted.
-			 */
-			if (dns_server.lifetime && dns_server.lifetime < 7200)
-				dns_server.lifetime = 7200;
-			if (nm_rdisc_add_dns_server (rdisc, &dns_server))
-				changed |= NM_RDISC_CONFIG_DNS_SERVERS;
-		}
-	}
-	ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_DNSSL) {
-		char *domain;
-		int domain_index;
-
-		ndp_msg_opt_dnssl_for_each_domain (domain, domain_index, msg, offset) {
-			NMRDiscDNSDomain dns_domain = {
-			    .domain = domain,
-			    .timestamp = now,
-			    .lifetime = ndp_msg_opt_rdnss_lifetime (msg, offset),
-			};
-
-			/* Pad the lifetime somewhat to give a bit of slack in cases
-			 * where one RA gets lost or something (which can happen on unreliable
-			 * links like WiFi where certain types of frames are not retransmitted).
-			 * Note that 0 has special meaning and is therefore not adjusted.
-			 */
-			if (dns_domain.lifetime && dns_domain.lifetime < 7200)
-				dns_domain.lifetime = 7200;
-			if (nm_rdisc_add_dns_domain (rdisc, &dns_domain))
-				changed |= NM_RDISC_CONFIG_DNS_DOMAINS;
-		}
-	}
-
-	hop_limit = ndp_msgra_curhoplimit (msgra);
-	if (rdata->public.hop_limit != hop_limit) {
-		rdata->public.hop_limit = hop_limit;
-		changed |= NM_RDISC_CONFIG_HOP_LIMIT;
-	}
-
-	/* MTU */
-	ndp_msg_opt_for_each_offset(offset, msg, NDP_MSG_OPT_MTU) {
-		guint32 mtu = ndp_msg_opt_mtu(msg, offset);
-		if (mtu >= 1280) {
-			if (rdata->public.mtu != mtu) {
-				rdata->public.mtu = mtu;
-				changed |= NM_RDISC_CONFIG_MTU;
-			}
-		} else {
-			/* All sorts of bad things would happen if we accepted this.
-			 * Kernel would set it, but would flush out all IPv6 addresses away
-			 * from the link, even the link-local, and we wouldn't be able to
-			 * listen for further RAs that could fix the MTU. */
-			_LOGW ("MTU too small for IPv6 ignored: %d", mtu);
-		}
-	}
-
-	nm_rdisc_ra_received (rdisc, now, changed);
-	return 0;
-}
-
-static gboolean
-event_ready (GIOChannel *source, GIOCondition condition, NMRDisc *rdisc)
-{
-	nm_auto_pop_netns NMPNetns *netns = NULL;
-	NMLndpRDiscPrivate *priv = NM_LNDP_RDISC_GET_PRIVATE ((NMLndpRDisc *) rdisc);
-
-	_LOGD ("processing libndp events");
-
-	if (!nm_rdisc_netns_push (rdisc, &netns))
-		return G_SOURCE_CONTINUE;
-
-	ndp_callall_eventfd_handler (priv->ndp);
-	return G_SOURCE_CONTINUE;
-}
-
-static void
-start (NMRDisc *rdisc)
-{
-	NMLndpRDiscPrivate *priv = NM_LNDP_RDISC_GET_PRIVATE ((NMLndpRDisc *) rdisc);
-	int fd = ndp_get_eventfd (priv->ndp);
-
-	priv->event_channel = g_io_channel_unix_new (fd);
-	priv->event_id = g_io_add_watch (priv->event_channel, G_IO_IN, (GIOFunc) event_ready, rdisc);
-
-	/* Flush any pending messages to avoid using obsolete information */
-	event_ready (priv->event_channel, 0, rdisc);
-
-	ndp_msgrcv_handler_register (priv->ndp, receive_ra, NDP_MSG_RA, nm_rdisc_get_ifindex (rdisc), rdisc);
-}
-
-/*****************************************************************************/
-
-static inline int
-ipv6_sysctl_get (NMPlatform *platform, const char *ifname, const char *property, int min, int max, int defval)
-{
-	return (int) nm_platform_sysctl_get_int_checked (platform,
-	                                                 nm_utils_ip6_property_path (ifname, property),
-	                                                 10,
-	                                                 min,
-	                                                 max,
-	                                                 defval);
-}
-
-static void
-nm_lndp_rdisc_init (NMLndpRDisc *lndp_rdisc)
-{
-}
-
-NMRDisc *
-nm_lndp_rdisc_new (NMPlatform *platform,
-                   int ifindex,
-                   const char *ifname,
-                   NMUtilsStableType stable_type,
-                   const char *network_id,
-                   NMSettingIP6ConfigAddrGenMode addr_gen_mode,
-                   GError **error)
-{
-	nm_auto_pop_netns NMPNetns *netns = NULL;
-	NMRDisc *rdisc;
-	NMLndpRDiscPrivate *priv;
-	int errsv;
-
-	g_return_val_if_fail (NM_IS_PLATFORM (platform), NULL);
-	g_return_val_if_fail (!error || !*error, NULL);
-
-	if (!nm_platform_netns_push (platform, &netns))
-		return NULL;
-
-	rdisc = g_object_new (NM_TYPE_LNDP_RDISC,
-	                      NM_RDISC_PLATFORM, platform,
-	                      NM_RDISC_STABLE_TYPE, (int) stable_type,
-	                      NM_RDISC_IFINDEX, ifindex,
-	                      NM_RDISC_IFNAME, ifname,
-	                      NM_RDISC_NETWORK_ID, network_id,
-	                      NM_RDISC_ADDR_GEN_MODE, (int) addr_gen_mode,
-	                      NM_RDISC_MAX_ADDRESSES, ipv6_sysctl_get (platform, ifname,
-	                                                               "max_addresses",
-	                                                               0, G_MAXINT32, NM_RDISC_MAX_ADDRESSES_DEFAULT),
-	                      NM_RDISC_ROUTER_SOLICITATIONS, ipv6_sysctl_get (platform, ifname,
-	                                                                      "router_solicitations",
-	                                                                      1, G_MAXINT32, NM_RDISC_ROUTER_SOLICITATIONS_DEFAULT),
-	                      NM_RDISC_ROUTER_SOLICITATION_INTERVAL, ipv6_sysctl_get (platform, ifname,
-	                                                                              "router_solicitation_interval",
-	                                                                              1, G_MAXINT32, NM_RDISC_ROUTER_SOLICITATION_INTERVAL_DEFAULT),
-	                      NULL);
-
-	priv = NM_LNDP_RDISC_GET_PRIVATE ((NMLndpRDisc *) rdisc);
-
-	errsv = ndp_open (&priv->ndp);
-
-	if (errsv != 0) {
-		errsv = errsv > 0 ? errsv : -errsv;
-		g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
-		             "failure creating libndp socket: %s (%d)",
-		             g_strerror (errsv), errsv);
-		g_object_unref (rdisc);
-		return NULL;
-	}
-	return rdisc;
-}
-
-static void
-dispose (GObject *object)
-{
-	NMRDisc *rdisc = (NMRDisc *) object;
-	NMLndpRDiscPrivate *priv = NM_LNDP_RDISC_GET_PRIVATE ((NMLndpRDisc *) rdisc);
-
-	nm_clear_g_source (&priv->event_id);
-	g_clear_pointer (&priv->event_channel, g_io_channel_unref);
-
-	if (priv->ndp) {
-		ndp_msgrcv_handler_unregister (priv->ndp, receive_ra, NDP_MSG_RA, nm_rdisc_get_ifindex (rdisc), rdisc);
-		ndp_close (priv->ndp);
-		priv->ndp = NULL;
-	}
-
-	G_OBJECT_CLASS (nm_lndp_rdisc_parent_class)->dispose (object);
-}
-
-static void
-nm_lndp_rdisc_class_init (NMLndpRDiscClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	NMRDiscClass *rdisc_class = NM_RDISC_CLASS (klass);
-
-	object_class->dispose = dispose;
-	rdisc_class->start = start;
-	rdisc_class->send_rs = send_rs;
-}
diff --git a/src/rdisc/nm-lndp-rdisc.h b/src/rdisc/nm-lndp-rdisc.h
deleted file mode 100644
index e2b47c04..00000000
--- a/src/rdisc/nm-lndp-rdisc.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-lndp-rdisc.h - Implementation of router discovery using libndp
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_LNDP_RDISC_H__
-#define __NETWORKMANAGER_LNDP_RDISC_H__
-
-#include "nm-rdisc.h"
-#include "nm-core-utils.h"
-
-#define NM_TYPE_LNDP_RDISC            (nm_lndp_rdisc_get_type ())
-#define NM_LNDP_RDISC(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_LNDP_RDISC, NMLndpRDisc))
-#define NM_LNDP_RDISC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_LNDP_RDISC, NMLndpRDiscClass))
-#define NM_IS_LNDP_RDISC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_LNDP_RDISC))
-#define NM_IS_LNDP_RDISC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_LNDP_RDISC))
-#define NM_LNDP_RDISC_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_LNDP_RDISC, NMLndpRDiscClass))
-
-typedef struct _NMLndpRDisc NMLndpRDisc;
-typedef struct _NMLndpRDiscClass NMLndpRDiscClass;
-
-GType nm_lndp_rdisc_get_type (void);
-
-NMRDisc *nm_lndp_rdisc_new (NMPlatform *platform,
-                            int ifindex,
-                            const char *ifname,
-                            NMUtilsStableType stable_type,
-                            const char *network_id,
-                            NMSettingIP6ConfigAddrGenMode addr_gen_mode,
-                            GError **error);
-
-#endif /* __NETWORKMANAGER_LNDP_RDISC_H__ */
diff --git a/src/rdisc/nm-rdisc-private.h b/src/rdisc/nm-rdisc-private.h
deleted file mode 100644
index abc5a399..00000000
--- a/src/rdisc/nm-rdisc-private.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-rdisc.h - Perform IPv6 router discovery
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright 2015 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_RDISC_PRIVATE_H__
-#define __NETWORKMANAGER_RDISC_PRIVATE_H__
-
-#include "nm-rdisc.h"
-
-/* Functions only used by rdisc implementations */
-
-struct _NMRDiscDataInternal {
-	NMRDiscData public;
-	GArray *gateways;
-	GArray *addresses;
-	GArray *routes;
-	GArray *dns_servers;
-	GArray *dns_domains;
-};
-
-typedef struct _NMRDiscDataInternal NMRDiscDataInternal;
-
-void nm_rdisc_ra_received (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed);
-
-gboolean nm_rdisc_add_gateway              (NMRDisc *rdisc, const NMRDiscGateway *new);
-gboolean nm_rdisc_complete_and_add_address (NMRDisc *rdisc, NMRDiscAddress *new);
-gboolean nm_rdisc_add_route                (NMRDisc *rdisc, const NMRDiscRoute *new);
-gboolean nm_rdisc_add_dns_server           (NMRDisc *rdisc, const NMRDiscDNSServer *new);
-gboolean nm_rdisc_add_dns_domain           (NMRDisc *rdisc, const NMRDiscDNSDomain *new);
-
-/*********************************************************************************************/
-
-#define _NMLOG_DOMAIN                     LOGD_IP6
-#define _NMLOG(level, ...)                _LOG(level, _NMLOG_DOMAIN,  rdisc, __VA_ARGS__)
-
-#define _LOG(level, domain, self, ...) \
-    G_STMT_START { \
-        const NMLogLevel __level = (level); \
-        const NMLogDomain __domain = (domain); \
-        \
-        if (nm_logging_enabled (__level, __domain)) { \
-            NMRDisc *const __self = (self); \
-            char __prefix[64]; \
-            \
-            _nm_log (__level, __domain, 0, \
-                     "%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \
-                     (__self \
-                        ? ({ \
-                            const char *__ifname = nm_rdisc_get_ifname (__self); \
-                            nm_sprintf_buf (__prefix, "%s[%p,%s%s%s]", \
-                                            _NMLOG_PREFIX_NAME, __self, \
-                                            NM_PRINT_FMT_QUOTE_STRING (__ifname)); \
-                            }) \
-                        : _NMLOG_PREFIX_NAME) \
-                     _NM_UTILS_MACRO_REST (__VA_ARGS__)); \
-        } \
-    } G_STMT_END
-
-/*********************************************************************************************/
-
-#endif /* __NETWORKMANAGER_RDISC_PRIVATE_H__ */
diff --git a/src/rdisc/nm-rdisc.c b/src/rdisc/nm-rdisc.c
deleted file mode 100644
index 3bc69750..00000000
--- a/src/rdisc/nm-rdisc.c
+++ /dev/null
@@ -1,1073 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-rdisc.c - Perform IPv6 router discovery
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include "nm-rdisc.h"
-
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <string.h>
-
-#include "nm-setting-ip6-config.h"
-
-#include "nm-rdisc-private.h"
-#include "nm-utils.h"
-#include "nm-platform.h"
-#include "nmp-netns.h"
-
-#define _NMLOG_PREFIX_NAME                "rdisc"
-
-/*****************************************************************************/
-
-struct _NMRDiscPrivate {
-	/* this *must* be the first field. */
-	NMRDiscDataInternal rdata;
-
-	gint32 solicitations_left;
-	guint send_rs_id;
-	gint32 last_rs;
-	guint ra_timeout_id;  /* first RA timeout */
-	guint timeout_id;   /* prefix/dns/etc lifetime timeout */
-	char *last_send_rs_error;
-	NMUtilsIPv6IfaceId iid;
-
-	/* immutable values: */
-	int ifindex;
-	char *ifname;
-	char *network_id;
-	NMSettingIP6ConfigAddrGenMode addr_gen_mode;
-	NMUtilsStableType stable_type;
-	gint32 max_addresses;
-	gint32 router_solicitations;
-	gint32 router_solicitation_interval;
-
-	NMPlatform *platform;
-	NMPNetns *netns;
-};
-
-typedef struct _NMRDiscPrivate NMRDiscPrivate;
-
-NM_GOBJECT_PROPERTIES_DEFINE_BASE (
-	PROP_PLATFORM,
-	PROP_IFINDEX,
-	PROP_IFNAME,
-	PROP_STABLE_TYPE,
-	PROP_NETWORK_ID,
-	PROP_ADDR_GEN_MODE,
-	PROP_MAX_ADDRESSES,
-	PROP_ROUTER_SOLICITATIONS,
-	PROP_ROUTER_SOLICITATION_INTERVAL,
-);
-
-enum {
-	CONFIG_CHANGED,
-	RA_TIMEOUT,
-	LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-G_DEFINE_TYPE (NMRDisc, nm_rdisc, G_TYPE_OBJECT)
-
-#define NM_RDISC_GET_PRIVATE(self) _NM_GET_PRIVATE_PTR(self, NMRDisc, NM_IS_RDISC)
-
-/*****************************************************************************/
-
-static void _config_changed_log (NMRDisc *rdisc, NMRDiscConfigMap changed);
-
-/*****************************************************************************/
-
-NMPNetns *
-nm_rdisc_netns_get (NMRDisc *self)
-{
-	g_return_val_if_fail (NM_IS_RDISC (self), NULL);
-
-	return NM_RDISC_GET_PRIVATE (self)->netns;
-}
-
-gboolean
-nm_rdisc_netns_push (NMRDisc *self, NMPNetns **netns)
-{
-	NMRDiscPrivate *priv;
-
-	g_return_val_if_fail (NM_IS_RDISC (self), FALSE);
-
-	priv = NM_RDISC_GET_PRIVATE (self);
-	if (   priv->netns
-	    && !nmp_netns_push (priv->netns)) {
-		NM_SET_OUT (netns, NULL);
-		return FALSE;
-	}
-
-	NM_SET_OUT (netns, priv->netns);
-	return TRUE;
-}
-
-/*****************************************************************************/
-
-int
-nm_rdisc_get_ifindex (NMRDisc *self)
-{
-	g_return_val_if_fail (NM_IS_RDISC (self), 0);
-
-	return NM_RDISC_GET_PRIVATE (self)->ifindex;
-}
-
-const char *
-nm_rdisc_get_ifname (NMRDisc *self)
-{
-	g_return_val_if_fail (NM_IS_RDISC (self), NULL);
-
-	return NM_RDISC_GET_PRIVATE (self)->ifname;
-}
-
-/*****************************************************************************/
-
-static const NMRDiscData *
-_data_complete (NMRDiscDataInternal *data)
-{
-#define _SET(data, field) \
-	G_STMT_START { \
-		if ((data->public.field##_n = data->field->len) > 0) \
-			data->public.field = (gpointer) data->field->data; \
-		else \
-			data->public.field = NULL; \
-	} G_STMT_END
-	_SET (data, gateways);
-	_SET (data, addresses);
-	_SET (data, routes);
-	_SET (data, dns_servers);
-	_SET (data, dns_domains);
-#undef _SET
-	return &data->public;
-}
-
-static void
-_emit_config_change (NMRDisc *self, NMRDiscConfigMap changed)
-{
-	_config_changed_log (self, changed);
-	g_signal_emit (self, signals[CONFIG_CHANGED], 0,
-	               _data_complete (&NM_RDISC_GET_PRIVATE (self)->rdata),
-	               (guint) changed);
-}
-
-/*****************************************************************************/
-
-gboolean
-nm_rdisc_add_gateway (NMRDisc *rdisc, const NMRDiscGateway *new)
-{
-	NMRDiscDataInternal *rdata = &NM_RDISC_GET_PRIVATE(rdisc)->rdata;
-	int i, insert_idx = -1;
-
-	for (i = 0; i < rdata->gateways->len; i++) {
-		NMRDiscGateway *item = &g_array_index (rdata->gateways, NMRDiscGateway, i);
-
-		if (IN6_ARE_ADDR_EQUAL (&item->address, &new->address)) {
-			if (new->lifetime == 0) {
-				g_array_remove_index (rdata->gateways, i--);
-				return TRUE;
-			}
-
-			if (item->preference != new->preference) {
-				g_array_remove_index (rdata->gateways, i--);
-				continue;
-			}
-
-			memcpy (item, new, sizeof (*new));
-			return FALSE;
-		}
-
-		/* Put before less preferable gateways. */
-		if (item->preference < new->preference && insert_idx < 0)
-			insert_idx = i;
-	}
-
-	if (new->lifetime)
-		g_array_insert_val (rdata->gateways, MAX (insert_idx, 0), *new);
-	return !!new->lifetime;
-}
-
-/**
- * complete_address:
- * @rdisc: the #NMRDisc
- * @addr: the #NMRDiscAddress
- *
- * Adds the host part to the address that has network part set.
- * If the address already has a host part, add a different host part
- * if possible (this is useful in case DAD failed).
- *
- * Can fail if a different address can not be generated (DAD failure
- * for an EUI-64 address or DAD counter overflow).
- *
- * Returns: %TRUE if the address could be completed, %FALSE otherwise.
- **/
-static gboolean
-complete_address (NMRDisc *rdisc, NMRDiscAddress *addr)
-{
-	NMRDiscPrivate *priv;
-	GError *error = NULL;
-
-	g_return_val_if_fail (NM_IS_RDISC (rdisc), FALSE);
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	if (priv->addr_gen_mode == NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY) {
-		if (!nm_utils_ipv6_addr_set_stable_privacy (priv->stable_type,
-		                                            &addr->address,
-		                                            priv->ifname,
-		                                            priv->network_id,
-		                                            addr->dad_counter++,
-		                                            &error)) {
-			_LOGW ("complete-address: failed to generate an stable-privacy address: %s",
-			       error->message);
-			g_clear_error (&error);
-			return FALSE;
-		}
-		_LOGD ("complete-address: using an stable-privacy address");
-		return TRUE;
-	}
-
-	if (!priv->iid.id) {
-		_LOGW ("complete-address: can't generate an EUI-64 address: no interface identifier");
-		return FALSE;
-	}
-
-	if (addr->address.s6_addr32[2] == 0x0 && addr->address.s6_addr32[3] == 0x0) {
-		_LOGD ("complete-address: adding an EUI-64 address");
-		nm_utils_ipv6_addr_set_interface_identifier (&addr->address, priv->iid);
-		return TRUE;
-	}
-
-	_LOGW ("complete-address: can't generate a new EUI-64 address");
-	return FALSE;
-}
-
-gboolean
-nm_rdisc_complete_and_add_address (NMRDisc *rdisc, NMRDiscAddress *new)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-	int i;
-
-	if (!complete_address (rdisc, new))
-		return FALSE;
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	for (i = 0; i < rdata->addresses->len; i++) {
-		NMRDiscAddress *item = &g_array_index (rdata->addresses, NMRDiscAddress, i);
-
-		if (IN6_ARE_ADDR_EQUAL (&item->address, &new->address)) {
-			gboolean changed;
-
-			if (new->lifetime == 0) {
-				g_array_remove_index (rdata->addresses, i--);
-				return TRUE;
-			}
-
-			changed = item->timestamp + item->lifetime  != new->timestamp + new->lifetime ||
-			          item->timestamp + item->preferred != new->timestamp + new->preferred;
-			*item = *new;
-			return changed;
-		}
-	}
-
-	/* we create at most max_addresses autoconf addresses. This is different from
-	 * what the kernel does, because it considers *all* addresses (including
-	 * static and other temporary addresses).
-	 **/
-	if (priv->max_addresses && rdata->addresses->len >= priv->max_addresses)
-		return FALSE;
-
-	if (new->lifetime)
-		g_array_insert_val (rdata->addresses, i, *new);
-	return !!new->lifetime;
-}
-
-gboolean
-nm_rdisc_add_route (NMRDisc *rdisc, const NMRDiscRoute *new)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-	int i, insert_idx = -1;
-
-	if (new->plen == 0 || new->plen > 128) {
-		/* Only expect non-default routes.  The router has no idea what the
-		 * local configuration or user preferences are, so sending routes
-		 * with a prefix length of 0 must be ignored by NMRDisc.
-		 *
-		 * Also, upper layers also don't expect that NMRDisc exposes routes
-		 * with a plen or zero or larger then 128.
-		 */
-		g_return_val_if_reached (FALSE);
-	}
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	for (i = 0; i < rdata->routes->len; i++) {
-		NMRDiscRoute *item = &g_array_index (rdata->routes, NMRDiscRoute, i);
-
-		if (IN6_ARE_ADDR_EQUAL (&item->network, &new->network) && item->plen == new->plen) {
-			if (new->lifetime == 0) {
-				g_array_remove_index (rdata->routes, i--);
-				return TRUE;
-			}
-
-			if (item->preference != new->preference) {
-				g_array_remove_index (rdata->routes, i--);
-				continue;
-			}
-
-			memcpy (item, new, sizeof (*new));
-			return FALSE;
-		}
-
-		/* Put before less preferable routes. */
-		if (item->preference < new->preference && insert_idx < 0)
-			insert_idx = i;
-	}
-
-	if (new->lifetime)
-		g_array_insert_val (rdata->routes, CLAMP (insert_idx, 0, G_MAXINT), *new);
-	return !!new->lifetime;
-}
-
-gboolean
-nm_rdisc_add_dns_server (NMRDisc *rdisc, const NMRDiscDNSServer *new)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-	int i;
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	for (i = 0; i < rdata->dns_servers->len; i++) {
-		NMRDiscDNSServer *item = &g_array_index (rdata->dns_servers, NMRDiscDNSServer, i);
-
-		if (IN6_ARE_ADDR_EQUAL (&item->address, &new->address)) {
-			if (new->lifetime == 0) {
-				g_array_remove_index (rdata->dns_servers, i);
-				return TRUE;
-			}
-			if (item->timestamp != new->timestamp || item->lifetime != new->lifetime) {
-				*item = *new;
-				return TRUE;
-			}
-			return FALSE;
-		}
-	}
-
-	if (new->lifetime)
-		g_array_insert_val (rdata->dns_servers, i, *new);
-	return !!new->lifetime;
-}
-
-/* Copies new->domain if 'new' is added to the dns_domains list */
-gboolean
-nm_rdisc_add_dns_domain (NMRDisc *rdisc, const NMRDiscDNSDomain *new)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-	NMRDiscDNSDomain *item;
-	int i;
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	for (i = 0; i < rdata->dns_domains->len; i++) {
-		item = &g_array_index (rdata->dns_domains, NMRDiscDNSDomain, i);
-
-		if (!g_strcmp0 (item->domain, new->domain)) {
-			gboolean changed;
-
-			if (new->lifetime == 0) {
-				g_array_remove_index (rdata->dns_domains, i);
-				return TRUE;
-			}
-
-			changed = (item->timestamp != new->timestamp ||
-			           item->lifetime != new->lifetime);
-			if (changed) {
-				item->timestamp = new->timestamp;
-				item->lifetime = new->lifetime;
-			}
-			return changed;
-		}
-	}
-
-	if (new->lifetime) {
-		g_array_insert_val (rdata->dns_domains, i, *new);
-		item = &g_array_index (rdata->dns_domains, NMRDiscDNSDomain, i);
-		item->domain = g_strdup (new->domain);
-	}
-	return !!new->lifetime;
-}
-
-/******************************************************************/
-
-/**
- * nm_rdisc_set_iid:
- * @rdisc: the #NMRDisc
- * @iid: the new interface ID
- *
- * Sets the "Modified EUI-64" interface ID to be used when generating
- * IPv6 addresses using received prefixes. Identifiers are either generated
- * from the hardware addresses or manually set by the operator with
- * "ip token" command.
- *
- * Upon token change (or initial setting) all addresses generated using
- * the old identifier are removed. The caller should ensure the addresses
- * will be reset by soliciting router advertisements.
- *
- * In case the stable privacy addressing is used %FALSE is returned and
- * addresses are left untouched.
- *
- * Returns: %TRUE if addresses need to be regenerated, %FALSE otherwise.
- **/
-gboolean
-nm_rdisc_set_iid (NMRDisc *rdisc, const NMUtilsIPv6IfaceId iid)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-
-	g_return_val_if_fail (NM_IS_RDISC (rdisc), FALSE);
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	if (priv->iid.id != iid.id) {
-		priv->iid = iid;
-
-		if (priv->addr_gen_mode == NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY)
-			return FALSE;
-
-		if (rdata->addresses->len) {
-			_LOGD ("IPv6 interface identifier changed, flushing addresses");
-			g_array_remove_range (rdata->addresses, 0, rdata->addresses->len);
-			_emit_config_change (rdisc, NM_RDISC_CONFIG_ADDRESSES);
-		}
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-static gboolean
-send_rs_timeout (NMRDisc *rdisc)
-{
-	nm_auto_pop_netns NMPNetns *netns = NULL;
-	NMRDiscClass *klass = NM_RDISC_GET_CLASS (rdisc);
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-	GError *error = NULL;
-
-	priv->send_rs_id = 0;
-
-	if (!nm_rdisc_netns_push (rdisc, &netns))
-		return G_SOURCE_REMOVE;
-
-	if (klass->send_rs (rdisc, &error)) {
-		_LOGD ("router solicitation sent");
-		priv->solicitations_left--;
-		g_clear_pointer (&priv->last_send_rs_error, g_free);
-	} else {
-		gboolean different_message;
-
-		different_message = g_strcmp0 (priv->last_send_rs_error, error->message) != 0;
-		_NMLOG (different_message ? LOGL_WARN : LOGL_DEBUG,
-		        "failure sending router solicitation: %s", error->message);
-		if (different_message) {
-			g_clear_pointer (&priv->last_send_rs_error, g_free);
-			priv->last_send_rs_error = g_strdup (error->message);
-		}
-		g_clear_error (&error);
-	}
-
-	priv->last_rs = nm_utils_get_monotonic_timestamp_s ();
-	if (priv->solicitations_left > 0) {
-		_LOGD ("scheduling router solicitation retry in %d seconds.",
-		       (int) priv->router_solicitation_interval);
-		priv->send_rs_id = g_timeout_add_seconds (priv->router_solicitation_interval,
-		                                          (GSourceFunc) send_rs_timeout, rdisc);
-	} else {
-		_LOGD ("did not receive a router advertisement after %d solicitations.",
-		       (int) priv->router_solicitations);
-	}
-
-	return G_SOURCE_REMOVE;
-}
-
-static void
-solicit (NMRDisc *rdisc)
-{
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-	gint64 next, now;
-
-	if (priv->send_rs_id)
-		return;
-
-	now = nm_utils_get_monotonic_timestamp_s ();
-
-	priv->solicitations_left = priv->router_solicitations;
-
-	next = (((gint64) priv->last_rs) + priv->router_solicitation_interval) - now;
-	next = CLAMP (next, 0, G_MAXINT32);
-	_LOGD ("scheduling explicit router solicitation request in %" G_GINT64_FORMAT " seconds.",
-	       next);
-	priv->send_rs_id = g_timeout_add_seconds ((guint32) next, (GSourceFunc) send_rs_timeout, rdisc);
-}
-
-static gboolean
-rdisc_ra_timeout_cb (gpointer user_data)
-{
-	NMRDisc *rdisc = NM_RDISC (user_data);
-
-	NM_RDISC_GET_PRIVATE (rdisc)->ra_timeout_id = 0;
-	g_signal_emit (rdisc, signals[RA_TIMEOUT], 0);
-	return G_SOURCE_REMOVE;
-}
-
-void
-nm_rdisc_start (NMRDisc *rdisc)
-{
-	nm_auto_pop_netns NMPNetns *netns = NULL;
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-	NMRDiscClass *klass = NM_RDISC_GET_CLASS (rdisc);
-	gint64 ra_wait_secs;
-
-	g_assert (klass->start);
-
-	_LOGD ("starting router discovery: %d", priv->ifindex);
-
-	if (!nm_rdisc_netns_push (rdisc, &netns))
-		return;
-
-	nm_clear_g_source (&priv->ra_timeout_id);
-	ra_wait_secs = (((gint64) priv->router_solicitations) * priv->router_solicitation_interval) + 1;
-	ra_wait_secs = CLAMP (ra_wait_secs, 30, 120);
-	priv->ra_timeout_id = g_timeout_add_seconds (ra_wait_secs, rdisc_ra_timeout_cb, rdisc);
-	_LOGD ("scheduling RA timeout in %d seconds", (int) ra_wait_secs);
-
-	if (klass->start)
-		klass->start (rdisc);
-
-	solicit (rdisc);
-}
-
-void
-nm_rdisc_dad_failed (NMRDisc *rdisc, struct in6_addr *address)
-{
-	NMRDiscDataInternal *rdata;
-	int i;
-	gboolean changed = FALSE;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->addresses->len; i++) {
-		NMRDiscAddress *item = &g_array_index (rdata->addresses, NMRDiscAddress, i);
-
-		if (!IN6_ARE_ADDR_EQUAL (&item->address, address))
-			continue;
-
-		_LOGD ("DAD failed for discovered address %s", nm_utils_inet6_ntop (address, NULL));
-		if (!complete_address (rdisc, item))
-			g_array_remove_index (rdata->addresses, i--);
-		changed = TRUE;
-	}
-
-	if (changed)
-		_emit_config_change (rdisc, NM_RDISC_CONFIG_ADDRESSES);
-}
-
-#define CONFIG_MAP_MAX_STR 7
-
-static void
-config_map_to_string (NMRDiscConfigMap map, char *p)
-{
-	if (map & NM_RDISC_CONFIG_DHCP_LEVEL)
-		*p++ = 'd';
-	if (map & NM_RDISC_CONFIG_GATEWAYS)
-		*p++ = 'G';
-	if (map & NM_RDISC_CONFIG_ADDRESSES)
-		*p++ = 'A';
-	if (map & NM_RDISC_CONFIG_ROUTES)
-		*p++ = 'R';
-	if (map & NM_RDISC_CONFIG_DNS_SERVERS)
-		*p++ = 'S';
-	if (map & NM_RDISC_CONFIG_DNS_DOMAINS)
-		*p++ = 'D';
-	*p = '\0';
-}
-
-static const char *
-dhcp_level_to_string (NMRDiscDHCPLevel dhcp_level)
-{
-	switch (dhcp_level) {
-	case NM_RDISC_DHCP_LEVEL_NONE:
-		return "none";
-	case NM_RDISC_DHCP_LEVEL_OTHERCONF:
-		return "otherconf";
-	case NM_RDISC_DHCP_LEVEL_MANAGED:
-		return "managed";
-	default:
-		return "INVALID";
-	}
-}
-
-#define expiry(item) (item->timestamp + item->lifetime)
-
-static void
-_config_changed_log (NMRDisc *rdisc, NMRDiscConfigMap changed)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-	int i;
-	char changedstr[CONFIG_MAP_MAX_STR];
-	char addrstr[INET6_ADDRSTRLEN];
-
-	if (!_LOGD_ENABLED ())
-		return;
-
-	priv = NM_RDISC_GET_PRIVATE (rdisc);
-	rdata = &priv->rdata;
-
-	config_map_to_string (changed, changedstr);
-	_LOGD ("router discovery configuration changed [%s]:", changedstr);
-	_LOGD ("  dhcp-level %s", dhcp_level_to_string (priv->rdata.public.dhcp_level));
-	for (i = 0; i < rdata->gateways->len; i++) {
-		NMRDiscGateway *gateway = &g_array_index (rdata->gateways, NMRDiscGateway, i);
-
-		inet_ntop (AF_INET6, &gateway->address, addrstr, sizeof (addrstr));
-		_LOGD ("  gateway %s pref %d exp %u", addrstr, gateway->preference, expiry (gateway));
-	}
-	for (i = 0; i < rdata->addresses->len; i++) {
-		NMRDiscAddress *address = &g_array_index (rdata->addresses, NMRDiscAddress, i);
-
-		inet_ntop (AF_INET6, &address->address, addrstr, sizeof (addrstr));
-		_LOGD ("  address %s exp %u", addrstr, expiry (address));
-	}
-	for (i = 0; i < rdata->routes->len; i++) {
-		NMRDiscRoute *route = &g_array_index (rdata->routes, NMRDiscRoute, i);
-
-		inet_ntop (AF_INET6, &route->network, addrstr, sizeof (addrstr));
-		_LOGD ("  route %s/%d via %s pref %d exp %u", addrstr, (int) route->plen,
-		       nm_utils_inet6_ntop (&route->gateway, NULL), route->preference,
-		       expiry (route));
-	}
-	for (i = 0; i < rdata->dns_servers->len; i++) {
-		NMRDiscDNSServer *dns_server = &g_array_index (rdata->dns_servers, NMRDiscDNSServer, i);
-
-		inet_ntop (AF_INET6, &dns_server->address, addrstr, sizeof (addrstr));
-		_LOGD ("  dns_server %s exp %u", addrstr, expiry (dns_server));
-	}
-	for (i = 0; i < rdata->dns_domains->len; i++) {
-		NMRDiscDNSDomain *dns_domain = &g_array_index (rdata->dns_domains, NMRDiscDNSDomain, i);
-
-		_LOGD ("  dns_domain %s exp %u", dns_domain->domain, expiry (dns_domain));
-	}
-}
-
-static void
-clean_gateways (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint32 *nextevent)
-{
-	NMRDiscDataInternal *rdata;
-	guint i;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->gateways->len; i++) {
-		NMRDiscGateway *item = &g_array_index (rdata->gateways, NMRDiscGateway, i);
-		guint64 expiry = (guint64) item->timestamp + item->lifetime;
-
-		if (item->lifetime == G_MAXUINT32)
-			continue;
-
-		if (now >= expiry) {
-			g_array_remove_index (rdata->gateways, i--);
-			*changed |= NM_RDISC_CONFIG_GATEWAYS;
-		} else if (*nextevent > expiry)
-			*nextevent = expiry;
-	}
-}
-
-static void
-clean_addresses (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint32 *nextevent)
-{
-	NMRDiscDataInternal *rdata;
-	guint i;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->addresses->len; i++) {
-		NMRDiscAddress *item = &g_array_index (rdata->addresses, NMRDiscAddress, i);
-		guint64 expiry = (guint64) item->timestamp + item->lifetime;
-
-		if (item->lifetime == G_MAXUINT32)
-			continue;
-
-		if (now >= expiry) {
-			g_array_remove_index (rdata->addresses, i--);
-			*changed |= NM_RDISC_CONFIG_ADDRESSES;
-		} else if (*nextevent > expiry)
-			*nextevent = expiry;
-	}
-}
-
-static void
-clean_routes (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint32 *nextevent)
-{
-	NMRDiscDataInternal *rdata;
-	guint i;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->routes->len; i++) {
-		NMRDiscRoute *item = &g_array_index (rdata->routes, NMRDiscRoute, i);
-		guint64 expiry = (guint64) item->timestamp + item->lifetime;
-
-		if (item->lifetime == G_MAXUINT32)
-			continue;
-
-		if (now >= expiry) {
-			g_array_remove_index (rdata->routes, i--);
-			*changed |= NM_RDISC_CONFIG_ROUTES;
-		} else if (*nextevent > expiry)
-			*nextevent = expiry;
-	}
-}
-
-static void
-clean_dns_servers (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint32 *nextevent)
-{
-	NMRDiscDataInternal *rdata;
-	guint i;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->dns_servers->len; i++) {
-		NMRDiscDNSServer *item = &g_array_index (rdata->dns_servers, NMRDiscDNSServer, i);
-		guint64 expiry = (guint64) item->timestamp + item->lifetime;
-		guint64 refresh = (guint64) item->timestamp + item->lifetime / 2;
-
-		if (item->lifetime == G_MAXUINT32)
-			continue;
-
-		if (now >= expiry) {
-			g_array_remove_index (rdata->dns_servers, i--);
-			*changed |= NM_RDISC_CONFIG_DNS_SERVERS;
-		} else if (now >= refresh)
-			solicit (rdisc);
-		else if (*nextevent > refresh)
-			*nextevent = refresh;
-	}
-}
-
-static void
-clean_dns_domains (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap *changed, guint32 *nextevent)
-{
-	NMRDiscDataInternal *rdata;
-	guint i;
-
-	rdata = &NM_RDISC_GET_PRIVATE (rdisc)->rdata;
-
-	for (i = 0; i < rdata->dns_domains->len; i++) {
-		NMRDiscDNSDomain *item = &g_array_index (rdata->dns_domains, NMRDiscDNSDomain, i);
-		guint64 expiry = (guint64) item->timestamp + item->lifetime;
-		guint64 refresh = (guint64) item->timestamp + item->lifetime / 2;
-
-		if (item->lifetime == G_MAXUINT32)
-			continue;
-
-		if (now >= expiry) {
-			g_array_remove_index (rdata->dns_domains, i--);
-			*changed |= NM_RDISC_CONFIG_DNS_DOMAINS;
-		} else if (now >= refresh)
-			solicit (rdisc);
-		else if (*nextevent > refresh)
-			*nextevent = refresh;
-	}
-}
-
-static gboolean timeout_cb (gpointer user_data);
-
-static void
-check_timestamps (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed)
-{
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-	/* Use a magic date in the distant future (~68 years) */
-	guint32 never = G_MAXINT32;
-	guint32 nextevent = never;
-
-	nm_clear_g_source (&priv->timeout_id);
-
-	clean_gateways (rdisc, now, &changed, &nextevent);
-	clean_addresses (rdisc, now, &changed, &nextevent);
-	clean_routes (rdisc, now, &changed, &nextevent);
-	clean_dns_servers (rdisc, now, &changed, &nextevent);
-	clean_dns_domains (rdisc, now, &changed, &nextevent);
-
-	if (changed)
-		_emit_config_change (rdisc, changed);
-
-	if (nextevent != never) {
-		g_return_if_fail (nextevent > now);
-		_LOGD ("scheduling next now/lifetime check: %u seconds",
-		       nextevent - now);
-		priv->timeout_id = g_timeout_add_seconds (nextevent - now, timeout_cb, rdisc);
-	}
-}
-
-static gboolean
-timeout_cb (gpointer user_data)
-{
-	NMRDisc *self = user_data;
-
-	NM_RDISC_GET_PRIVATE (self)->timeout_id = 0;
-	check_timestamps (self, nm_utils_get_monotonic_timestamp_s (), 0);
-	return G_SOURCE_REMOVE;
-}
-
-void
-nm_rdisc_ra_received (NMRDisc *rdisc, guint32 now, NMRDiscConfigMap changed)
-{
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-
-	nm_clear_g_source (&priv->ra_timeout_id);
-	nm_clear_g_source (&priv->send_rs_id);
-	g_clear_pointer (&priv->last_send_rs_error, g_free);
-	check_timestamps (rdisc, now, changed);
-}
-
-/******************************************************************/
-
-static void
-dns_domain_free (gpointer data)
-{
-	g_free (((NMRDiscDNSDomain *)(data))->domain);
-}
-
-static void
-set_property (GObject *object, guint prop_id,
-              const GValue *value, GParamSpec *pspec)
-{
-	NMRDisc *self = NM_RDISC (object);
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (self);
-
-	switch (prop_id) {
-	case PROP_PLATFORM:
-		/* construct-only */
-		priv->platform = g_value_get_object (value) ? : NM_PLATFORM_GET;
-		if (!priv->platform)
-			g_return_if_reached ();
-
-		g_object_ref (priv->platform);
-
-		priv->netns = nm_platform_netns_get (priv->platform);
-		if (priv->netns)
-			g_object_ref (priv->netns);
-
-		g_return_if_fail (!priv->netns || priv->netns == nmp_netns_get_current ());
-		break;
-	case PROP_IFINDEX:
-		/* construct-only */
-		priv->ifindex = g_value_get_int (value);
-		g_return_if_fail (priv->ifindex > 0);
-		break;
-	case PROP_IFNAME:
-		/* construct-only */
-		priv->ifname = g_value_dup_string (value);
-		g_return_if_fail (priv->ifname && priv->ifname[0]);
-		break;
-	case PROP_STABLE_TYPE:
-		/* construct-only */
-		priv->stable_type = g_value_get_int (value);
-		break;
-	case PROP_NETWORK_ID:
-		/* construct-only */
-		priv->network_id = g_value_dup_string (value);
-		break;
-	case PROP_ADDR_GEN_MODE:
-		/* construct-only */
-		priv->addr_gen_mode = g_value_get_int (value);
-		break;
-	case PROP_MAX_ADDRESSES:
-		/* construct-only */
-		priv->max_addresses = g_value_get_int (value);
-		break;
-	case PROP_ROUTER_SOLICITATIONS:
-		/* construct-only */
-		priv->router_solicitations = g_value_get_int (value);
-		break;
-	case PROP_ROUTER_SOLICITATION_INTERVAL:
-		/* construct-only */
-		priv->router_solicitation_interval = g_value_get_int (value);
-		break;
-	default:
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-		break;
-	}
-}
-
-static void
-nm_rdisc_init (NMRDisc *rdisc)
-{
-	NMRDiscPrivate *priv;
-	NMRDiscDataInternal *rdata;
-
-	priv = G_TYPE_INSTANCE_GET_PRIVATE (rdisc, NM_TYPE_RDISC, NMRDiscPrivate);
-	rdisc->_priv = priv;
-
-	rdata = &priv->rdata;
-
-	rdata->gateways = g_array_new (FALSE, FALSE, sizeof (NMRDiscGateway));
-	rdata->addresses = g_array_new (FALSE, FALSE, sizeof (NMRDiscAddress));
-	rdata->routes = g_array_new (FALSE, FALSE, sizeof (NMRDiscRoute));
-	rdata->dns_servers = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSServer));
-	rdata->dns_domains = g_array_new (FALSE, FALSE, sizeof (NMRDiscDNSDomain));
-	g_array_set_clear_func (rdata->dns_domains, dns_domain_free);
-	priv->rdata.public.hop_limit = 64;
-
-	/* Start at very low number so that last_rs - router_solicitation_interval
-	 * is much lower than nm_utils_get_monotonic_timestamp_s() at startup.
-	 */
-	priv->last_rs = G_MININT32;
-}
-
-static void
-dispose (GObject *object)
-{
-	NMRDisc *rdisc = NM_RDISC (object);
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-
-	nm_clear_g_source (&priv->ra_timeout_id);
-	nm_clear_g_source (&priv->send_rs_id);
-	g_clear_pointer (&priv->last_send_rs_error, g_free);
-
-	nm_clear_g_source (&priv->timeout_id);
-
-	G_OBJECT_CLASS (nm_rdisc_parent_class)->dispose (object);
-}
-
-static void
-finalize (GObject *object)
-{
-	NMRDisc *rdisc = NM_RDISC (object);
-	NMRDiscPrivate *priv = NM_RDISC_GET_PRIVATE (rdisc);
-	NMRDiscDataInternal *rdata = &priv->rdata;
-
-	g_free (priv->ifname);
-	g_free (priv->network_id);
-
-	g_array_unref (rdata->gateways);
-	g_array_unref (rdata->addresses);
-	g_array_unref (rdata->routes);
-	g_array_unref (rdata->dns_servers);
-	g_array_unref (rdata->dns_domains);
-
-	g_clear_object (&priv->netns);
-	g_clear_object (&priv->platform);
-
-	G_OBJECT_CLASS (nm_rdisc_parent_class)->finalize (object);
-}
-
-static void
-nm_rdisc_class_init (NMRDiscClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-	g_type_class_add_private (klass, sizeof (NMRDiscPrivate));
-
-	object_class->set_property = set_property;
-	object_class->dispose = dispose;
-	object_class->finalize = finalize;
-
-	obj_properties[PROP_PLATFORM] =
-	    g_param_spec_object (NM_RDISC_PLATFORM, "", "",
-	                         NM_TYPE_PLATFORM,
-	                         G_PARAM_WRITABLE |
-	                         G_PARAM_CONSTRUCT_ONLY |
-	                         G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_IFINDEX] =
-	    g_param_spec_int (NM_RDISC_IFINDEX, "", "",
-	                      0, G_MAXINT, 0,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_IFNAME] =
-	    g_param_spec_string (NM_RDISC_IFNAME, "", "",
-	                         NULL,
-	                         G_PARAM_WRITABLE |
-	                         G_PARAM_CONSTRUCT_ONLY |
-	                         G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_STABLE_TYPE] =
-	    g_param_spec_int (NM_RDISC_STABLE_TYPE, "", "",
-	                      NM_UTILS_STABLE_TYPE_UUID, NM_UTILS_STABLE_TYPE_STABLE_ID, NM_UTILS_STABLE_TYPE_UUID,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_NETWORK_ID] =
-	    g_param_spec_string (NM_RDISC_NETWORK_ID, "", "",
-	                         NULL,
-	                         G_PARAM_WRITABLE |
-	                         G_PARAM_CONSTRUCT_ONLY |
-	                         G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_ADDR_GEN_MODE] =
-	    g_param_spec_int (NM_RDISC_ADDR_GEN_MODE, "", "",
-	                      NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_MAX_ADDRESSES] =
-	    g_param_spec_int (NM_RDISC_MAX_ADDRESSES, "", "",
-	                      0, G_MAXINT32, NM_RDISC_MAX_ADDRESSES_DEFAULT,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_ROUTER_SOLICITATIONS] =
-	    g_param_spec_int (NM_RDISC_ROUTER_SOLICITATIONS, "", "",
-	                      1, G_MAXINT32, NM_RDISC_ROUTER_SOLICITATIONS_DEFAULT,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	obj_properties[PROP_ROUTER_SOLICITATION_INTERVAL] =
-	    g_param_spec_int (NM_RDISC_ROUTER_SOLICITATION_INTERVAL, "", "",
-	                      1, G_MAXINT32, NM_RDISC_ROUTER_SOLICITATION_INTERVAL_DEFAULT,
-	                      G_PARAM_WRITABLE |
-	                      G_PARAM_CONSTRUCT_ONLY |
-	                      G_PARAM_STATIC_STRINGS);
-	g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
-
-	signals[CONFIG_CHANGED] =
-	    g_signal_new (NM_RDISC_CONFIG_CHANGED,
-	                  G_OBJECT_CLASS_TYPE (klass),
-	                  G_SIGNAL_RUN_FIRST,
-	                  0,
-	                  NULL, NULL, NULL,
-	                  G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_UINT);
-	signals[RA_TIMEOUT] =
-	    g_signal_new (NM_RDISC_RA_TIMEOUT,
-	                  G_OBJECT_CLASS_TYPE (klass),
-	                  G_SIGNAL_RUN_FIRST,
-	                  0,
-	                  NULL, NULL, NULL,
-	                  G_TYPE_NONE, 0);
-}
diff --git a/src/rdisc/nm-rdisc.h b/src/rdisc/nm-rdisc.h
deleted file mode 100644
index 9e5e9349..00000000
--- a/src/rdisc/nm-rdisc.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* nm-rdisc.h - Perform IPv6 router discovery
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#ifndef __NETWORKMANAGER_RDISC_H__
-#define __NETWORKMANAGER_RDISC_H__
-
-#include <stdlib.h>
-#include <netinet/in.h>
-
-#include "nm-setting-ip6-config.h"
-#include "NetworkManagerUtils.h"
-
-#define NM_TYPE_RDISC            (nm_rdisc_get_type ())
-#define NM_RDISC(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_RDISC, NMRDisc))
-#define NM_RDISC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_RDISC, NMRDiscClass))
-#define NM_IS_RDISC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_RDISC))
-#define NM_IS_RDISC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_RDISC))
-#define NM_RDISC_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_RDISC, NMRDiscClass))
-
-#define NM_RDISC_PLATFORM       "platform"
-#define NM_RDISC_IFINDEX        "ifindex"
-#define NM_RDISC_IFNAME         "ifname"
-#define NM_RDISC_NETWORK_ID     "network-id"
-#define NM_RDISC_ADDR_GEN_MODE  "addr-gen-mode"
-#define NM_RDISC_STABLE_TYPE    "stable-type"
-#define NM_RDISC_MAX_ADDRESSES  "max-addresses"
-#define NM_RDISC_ROUTER_SOLICITATIONS "router-solicitations"
-#define NM_RDISC_ROUTER_SOLICITATION_INTERVAL "router-solicitation-interval"
-
-#define NM_RDISC_CONFIG_CHANGED "config-changed"
-#define NM_RDISC_RA_TIMEOUT     "ra-timeout"
-
-typedef enum {
-	NM_RDISC_DHCP_LEVEL_UNKNOWN,
-	NM_RDISC_DHCP_LEVEL_NONE,
-	NM_RDISC_DHCP_LEVEL_OTHERCONF,
-	NM_RDISC_DHCP_LEVEL_MANAGED
-} NMRDiscDHCPLevel;
-
-typedef enum {
-	NM_RDISC_PREFERENCE_INVALID,
-	NM_RDISC_PREFERENCE_LOW,
-	NM_RDISC_PREFERENCE_MEDIUM,
-	NM_RDISC_PREFERENCE_HIGH
-} NMRDiscPreference;
-
-typedef struct {
-	struct in6_addr address;
-	guint32 timestamp;
-	guint32 lifetime;
-	NMRDiscPreference preference;
-} NMRDiscGateway;
-
-typedef struct {
-	struct in6_addr address;
-	guint8 dad_counter;
-	guint32 timestamp;
-	guint32 lifetime;
-	guint32 preferred;
-} NMRDiscAddress;
-
-typedef struct {
-	struct in6_addr network;
-	guint8 plen;
-	struct in6_addr gateway;
-	guint32 timestamp;
-	guint32 lifetime;
-	NMRDiscPreference preference;
-} NMRDiscRoute;
-
-typedef struct {
-	struct in6_addr address;
-	guint32 timestamp;
-	guint32 lifetime;
-} NMRDiscDNSServer;
-
-typedef struct {
-	char *domain;
-	guint32 timestamp;
-	guint32 lifetime;
-} NMRDiscDNSDomain;
-
-typedef enum {
-	NM_RDISC_CONFIG_DHCP_LEVEL                          = 1 << 0,
-	NM_RDISC_CONFIG_GATEWAYS                            = 1 << 1,
-	NM_RDISC_CONFIG_ADDRESSES                           = 1 << 2,
-	NM_RDISC_CONFIG_ROUTES                              = 1 << 3,
-	NM_RDISC_CONFIG_DNS_SERVERS                         = 1 << 4,
-	NM_RDISC_CONFIG_DNS_DOMAINS                         = 1 << 5,
-	NM_RDISC_CONFIG_HOP_LIMIT                           = 1 << 6,
-	NM_RDISC_CONFIG_MTU                                 = 1 << 7,
-} NMRDiscConfigMap;
-
-#define NM_RDISC_MAX_ADDRESSES_DEFAULT 16
-#define NM_RDISC_ROUTER_SOLICITATIONS_DEFAULT 3
-#define NM_RDISC_ROUTER_SOLICITATION_INTERVAL_DEFAULT 4
-
-struct _NMRDiscPrivate;
-struct _NMRDiscDataInternal;
-
-typedef struct {
-	NMRDiscDHCPLevel dhcp_level;
-	guint32 mtu;
-	int hop_limit;
-
-	guint gateways_n;
-	guint addresses_n;
-	guint routes_n;
-	guint dns_servers_n;
-	guint dns_domains_n;
-
-	const NMRDiscGateway *gateways;
-	const NMRDiscAddress *addresses;
-	const NMRDiscRoute *routes;
-	const NMRDiscDNSServer *dns_servers;
-	const NMRDiscDNSDomain *dns_domains;
-} NMRDiscData;
-
-/**
- * NMRDisc:
- *
- * Interface-specific structure that handles incoming router advertisements,
- * caches advertised items and removes them when they are obsolete.
- */
-typedef struct {
-	GObject parent;
-	union {
-		struct _NMRDiscPrivate *_priv;
-		struct _NMRDiscDataInternal *rdata;
-	};
-} NMRDisc;
-
-typedef struct {
-	GObjectClass parent;
-
-	void (*start) (NMRDisc *rdisc);
-	gboolean (*send_rs) (NMRDisc *rdisc, GError **error);
-} NMRDiscClass;
-
-GType nm_rdisc_get_type (void);
-
-int nm_rdisc_get_ifindex (NMRDisc *self);
-const char *nm_rdisc_get_ifname (NMRDisc *self);
-
-gboolean nm_rdisc_set_iid (NMRDisc *rdisc, const NMUtilsIPv6IfaceId iid);
-void nm_rdisc_start (NMRDisc *rdisc);
-void nm_rdisc_dad_failed (NMRDisc *rdisc, struct in6_addr *address);
-
-NMPlatform *nm_rdisc_get_platform (NMRDisc *self);
-NMPNetns *nm_rdisc_netns_get (NMRDisc *self);
-gboolean nm_rdisc_netns_push (NMRDisc *self, NMPNetns **netns);
-
-#endif /* __NETWORKMANAGER_RDISC_H__ */
diff --git a/src/rdisc/tests/Makefile.am b/src/rdisc/tests/Makefile.am
deleted file mode 100644
index b054179e..00000000
--- a/src/rdisc/tests/Makefile.am
+++ /dev/null
@@ -1,36 +0,0 @@
-AM_CPPFLAGS = \
-	-I${top_srcdir} \
-	-I$(top_srcdir)/shared \
-	-I$(top_builddir)/shared \
-	-I${top_srcdir}/src \
-	-I${top_srcdir}/src/platform \
-	-I${top_srcdir}/libnm-core \
-	-I${top_builddir}/libnm-core \
-	-I${srcdir}/.. \
-	-DG_LOG_DOMAIN=\""NetworkManager"\" \
-	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-	$(GLIB_CFLAGS) \
-	$(LIBNDP_CFLAGS)
-
-AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
-AM_LDFLAGS = \
-	$(GLIB_LIBS) \
-	$(CODE_COVERAGE_LDFLAGS)
-
-@GNOME_CODE_COVERAGE_RULES@
-
-noinst_PROGRAMS = test-rdisc-linux test-rdisc-fake
-
-test_rdisc_linux_SOURCES = \
-	test-rdisc-linux.c
-test_rdisc_linux_LDADD = \
-	$(top_builddir)/src/libNetworkManager.la
-
-test_rdisc_fake_SOURCES = \
-	test-rdisc-fake.c
-test_rdisc_fake_LDADD = \
-	$(top_builddir)/src/libNetworkManagerTest.la
-
-@VALGRIND_RULES@
-TESTS = test-rdisc-fake
-
diff --git a/src/rdisc/tests/Makefile.in b/src/rdisc/tests/Makefile.in
deleted file mode 100644
index 3cbc48a0..00000000
--- a/src/rdisc/tests/Makefile.in
+++ /dev/null
@@ -1,1164 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-noinst_PROGRAMS = test-rdisc-linux$(EXEEXT) test-rdisc-fake$(EXEEXT)
-TESTS = test-rdisc-fake$(EXEEXT)
-subdir = src/rdisc/tests
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/attributes.m4 \
-	$(top_srcdir)/m4/ax_lib_readline.m4 \
-	$(top_srcdir)/m4/compiler_options.m4 \
-	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/git-sha-record.m4 \
-	$(top_srcdir)/m4/gnome-code-coverage.m4 \
-	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \
-	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intltool.m4 \
-	$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \
-	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
-	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
-	$(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
-am_test_rdisc_fake_OBJECTS = test-rdisc-fake.$(OBJEXT)
-test_rdisc_fake_OBJECTS = $(am_test_rdisc_fake_OBJECTS)
-test_rdisc_fake_DEPENDENCIES =  \
-	$(top_builddir)/src/libNetworkManagerTest.la
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-am_test_rdisc_linux_OBJECTS = test-rdisc-linux.$(OBJEXT)
-test_rdisc_linux_OBJECTS = $(am_test_rdisc_linux_OBJECTS)
-test_rdisc_linux_DEPENDENCIES =  \
-	$(top_builddir)/src/libNetworkManager.la
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(test_rdisc_fake_SOURCES) $(test_rdisc_linux_SOURCES)
-DIST_SOURCES = $(test_rdisc_fake_SOURCES) $(test_rdisc_linux_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS = @EXEEXT@ .test
-LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-am__DIST_COMMON = $(srcdir)/Makefile.in \
-	$(top_srcdir)/build-aux/depcomp \
-	$(top_srcdir)/build-aux/test-driver
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALL_LINGUAS = @ALL_LINGUAS@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AM_TESTS_FD_REDIRECT = @AM_TESTS_FD_REDIRECT@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BLUEZ5_CFLAGS = @BLUEZ5_CFLAGS@
-BLUEZ5_LIBS = @BLUEZ5_LIBS@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
-CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
-CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DBUS_CFLAGS = @DBUS_CFLAGS@
-DBUS_LIBS = @DBUS_LIBS@
-DBUS_SYS_DIR = @DBUS_SYS_DIR@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DHCLIENT_PATH = @DHCLIENT_PATH@
-DHCPCD_PATH = @DHCPCD_PATH@
-DISTRO_NETWORK_SERVICE = @DISTRO_NETWORK_SERVICE@
-DLLTOOL = @DLLTOOL@
-DL_LIBS = @DL_LIBS@
-DNSMASQ_PATH = @DNSMASQ_PATH@
-DNSSEC_TRIGGER_SCRIPT = @DNSSEC_TRIGGER_SCRIPT@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GENHTML = @GENHTML@
-GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_MAKEFILE = @GLIB_MAKEFILE@
-GLIB_MKENUMS = @GLIB_MKENUMS@
-GMSGFMT = @GMSGFMT@
-GMSGFMT_015 = @GMSGFMT_015@
-GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
-GNUTLS_LIBS = @GNUTLS_LIBS@
-GREP = @GREP@
-GTKDOC_CHECK = @GTKDOC_CHECK@
-GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
-GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
-GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
-GTKDOC_MKPDF = @GTKDOC_MKPDF@
-GTKDOC_REBASE = @GTKDOC_REBASE@
-GUDEV_CFLAGS = @GUDEV_CFLAGS@
-GUDEV_LIBS = @GUDEV_LIBS@
-HTML_DIR = @HTML_DIR@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INTLLIBS = @INTLLIBS@
-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-INTLTOOL_MERGE = @INTLTOOL_MERGE@
-INTLTOOL_PERL = @INTLTOOL_PERL@
-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
-INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
-INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
-INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
-INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
-INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
-IPTABLES_PATH = @IPTABLES_PATH@
-JANSSON_CFLAGS = @JANSSON_CFLAGS@
-JANSSON_LIBS = @JANSSON_LIBS@
-KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
-LCOV = @LCOV@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBAUDIT_CFLAGS = @LIBAUDIT_CFLAGS@
-LIBAUDIT_LIBS = @LIBAUDIT_LIBS@
-LIBICONV = @LIBICONV@
-LIBINTL = @LIBINTL@
-LIBM = @LIBM@
-LIBNDP_CFLAGS = @LIBNDP_CFLAGS@
-LIBNDP_LIBS = @LIBNDP_LIBS@
-LIBNL_CFLAGS = @LIBNL_CFLAGS@
-LIBNL_LIBS = @LIBNL_LIBS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@
-LIBSOUP_LIBS = @LIBSOUP_LIBS@
-LIBSYSTEMD_CFLAGS = @LIBSYSTEMD_CFLAGS@
-LIBSYSTEMD_LIBS = @LIBSYSTEMD_LIBS@
-LIBTEAMDCTL_CFLAGS = @LIBTEAMDCTL_CFLAGS@
-LIBTEAMDCTL_LIBS = @LIBTEAMDCTL_LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LOG_DRIVER = @LOG_DRIVER@
-LTLIBICONV = @LTLIBICONV@
-LTLIBINTL = @LTLIBINTL@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@
-MM_GLIB_LIBS = @MM_GLIB_LIBS@
-MOC = @MOC@
-MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
-MSGMERGE = @MSGMERGE@
-NEWT_CFLAGS = @NEWT_CFLAGS@
-NEWT_LIBS = @NEWT_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NM_CONFIG_DEFAULT_AUTH_POLKIT_TEXT = @NM_CONFIG_DEFAULT_AUTH_POLKIT_TEXT@
-NM_CONFIG_DEFAULT_DNS_RC_MANAGER = @NM_CONFIG_DEFAULT_DNS_RC_MANAGER@
-NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT = @NM_CONFIG_DEFAULT_LOGGING_AUDIT_TEXT@
-NM_CONFIG_LOGGING_BACKEND_DEFAULT_TEXT = @NM_CONFIG_LOGGING_BACKEND_DEFAULT_TEXT@
-NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
-NM_MICRO_VERSION = @NM_MICRO_VERSION@
-NM_MINOR_VERSION = @NM_MINOR_VERSION@
-NM_MODIFY_SYSTEM_POLICY = @NM_MODIFY_SYSTEM_POLICY@
-NM_VERSION = @NM_VERSION@
-NSS_CFLAGS = @NSS_CFLAGS@
-NSS_LIBS = @NSS_LIBS@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PERL = @PERL@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-POLKIT_CFLAGS = @POLKIT_CFLAGS@
-POLKIT_LIBS = @POLKIT_LIBS@
-POSUB = @POSUB@
-PPPD_PATH = @PPPD_PATH@
-PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
-QT_CFLAGS = @QT_CFLAGS@
-QT_LIBS = @QT_LIBS@
-RANLIB = @RANLIB@
-READLINE_LIBS = @READLINE_LIBS@
-SANITIZERS = @SANITIZERS@
-SANITIZER_ENV = @SANITIZER_ENV@
-SED = @SED@
-SELINUX_CFLAGS = @SELINUX_CFLAGS@
-SELINUX_LIBS = @SELINUX_LIBS@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-SYSTEMD_200_CFLAGS = @SYSTEMD_200_CFLAGS@
-SYSTEMD_200_LIBS = @SYSTEMD_200_LIBS@
-SYSTEMD_INHIBIT_CFLAGS = @SYSTEMD_INHIBIT_CFLAGS@
-SYSTEMD_INHIBIT_LIBS = @SYSTEMD_INHIBIT_LIBS@
-SYSTEMD_JOURNAL_CFLAGS = @SYSTEMD_JOURNAL_CFLAGS@
-SYSTEMD_JOURNAL_LIBS = @SYSTEMD_JOURNAL_LIBS@
-SYSTEMD_LOGIN_CFLAGS = @SYSTEMD_LOGIN_CFLAGS@
-SYSTEMD_LOGIN_LIBS = @SYSTEMD_LOGIN_LIBS@
-SYSTEM_CA_PATH = @SYSTEM_CA_PATH@
-UDEV_DIR = @UDEV_DIR@
-USE_NLS = @USE_NLS@
-UUID_CFLAGS = @UUID_CFLAGS@
-UUID_LIBS = @UUID_LIBS@
-VALGRIND_RULES = @VALGRIND_RULES@
-VAPIGEN = @VAPIGEN@
-VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
-VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
-VERSION = @VERSION@
-XGETTEXT = @XGETTEXT@
-XGETTEXT_015 = @XGETTEXT_015@
-XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-intltool__v_merge_options_ = @intltool__v_merge_options_@
-intltool__v_merge_options_0 = @intltool__v_merge_options_0@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-nmbinary = @nmbinary@
-nmconfdir = @nmconfdir@
-nmdatadir = @nmdatadir@
-nmlibdir = @nmlibdir@
-nmrundir = @nmrundir@
-nmstatedir = @nmstatedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-subdirs = @subdirs@
-sysconfdir = @sysconfdir@
-systemdsystemunitdir = @systemdsystemunitdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-with_dhclient = @with_dhclient@
-with_dhcpcd = @with_dhcpcd@
-with_netconfig = @with_netconfig@
-with_resolvconf = @with_resolvconf@
-with_valgrind = @with_valgrind@
-AM_CPPFLAGS = \
-	-I${top_srcdir} \
-	-I$(top_srcdir)/shared \
-	-I$(top_builddir)/shared \
-	-I${top_srcdir}/src \
-	-I${top_srcdir}/src/platform \
-	-I${top_srcdir}/libnm-core \
-	-I${top_builddir}/libnm-core \
-	-I${srcdir}/.. \
-	-DG_LOG_DOMAIN=\""NetworkManager"\" \
-	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
-	$(GLIB_CFLAGS) \
-	$(LIBNDP_CFLAGS)
-
-AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
-AM_LDFLAGS = \
-	$(GLIB_LIBS) \
-	$(CODE_COVERAGE_LDFLAGS)
-
-test_rdisc_linux_SOURCES = \
-	test-rdisc-linux.c
-
-test_rdisc_linux_LDADD = \
-	$(top_builddir)/src/libNetworkManager.la
-
-test_rdisc_fake_SOURCES = \
-	test-rdisc-fake.c
-
-test_rdisc_fake_LDADD = \
-	$(top_builddir)/src/libNetworkManagerTest.la
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/rdisc/tests/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/rdisc/tests/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
-	echo " rm -f" $$list; \
-	rm -f $$list || exit $$?; \
-	test -n "$(EXEEXT)" || exit 0; \
-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
-	echo " rm -f" $$list; \
-	rm -f $$list
-
-test-rdisc-fake$(EXEEXT): $(test_rdisc_fake_OBJECTS) $(test_rdisc_fake_DEPENDENCIES) $(EXTRA_test_rdisc_fake_DEPENDENCIES) 
-	@rm -f test-rdisc-fake$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(test_rdisc_fake_OBJECTS) $(test_rdisc_fake_LDADD) $(LIBS)
-
-test-rdisc-linux$(EXEEXT): $(test_rdisc_linux_OBJECTS) $(test_rdisc_linux_DEPENDENCIES) $(EXTRA_test_rdisc_linux_DEPENDENCIES) 
-	@rm -f test-rdisc-linux$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(test_rdisc_linux_OBJECTS) $(test_rdisc_linux_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rdisc-fake.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rdisc-linux.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	elif test -n "$$redo_logs"; then \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all 
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-test-rdisc-fake.log: test-rdisc-fake$(EXEEXT)
-	@p='test-rdisc-fake$(EXEEXT)'; \
-	b='test-rdisc-fake'; \
-	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-@am__EXEEXT_TRUE@.test$(EXEEXT).log:
-@am__EXEEXT_TRUE@	@p='$<'; \
-@am__EXEEXT_TRUE@	$(am__set_b); \
-@am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-@am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
-@am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-@am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
-	clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
-	ctags ctags-am distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	recheck tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-@GNOME_CODE_COVERAGE_RULES@
-
-@VALGRIND_RULES@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/rdisc/tests/test-rdisc-fake.c b/src/rdisc/tests/test-rdisc-fake.c
deleted file mode 100644
index 02ffb510..00000000
--- a/src/rdisc/tests/test-rdisc-fake.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* rdisc.c - test program
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2015 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include <string.h>
-#include <syslog.h>
-
-#include "nm-rdisc.h"
-#include "nm-fake-rdisc.h"
-
-#include "nm-fake-platform.h"
-
-#include "nm-test-utils-core.h"
-
-static NMFakeRDisc *
-rdisc_new (void)
-{
-	NMRDisc *rdisc;
-	const int ifindex = 1;
-	const char *ifname = nm_platform_link_get_name (NM_PLATFORM_GET, ifindex);
-	NMUtilsIPv6IfaceId iid = { };
-
-	rdisc = nm_fake_rdisc_new (ifindex, ifname);
-	iid.id_u8[7] = 1;
-	nm_rdisc_set_iid (rdisc, iid);
-	g_assert (rdisc);
-	return NM_FAKE_RDISC (rdisc);
-}
-
-static void
-match_gateway (const NMRDiscData *rdata, guint idx, const char *addr, guint32 ts, guint32 lt, NMRDiscPreference pref)
-{
-	const NMRDiscGateway *gw;
-	char buf[INET6_ADDRSTRLEN];
-
-	g_assert (rdata);
-	g_assert_cmpint (idx, <, rdata->gateways_n);
-	g_assert (rdata->gateways);
-
-	gw = &rdata->gateways[idx];
-
-	g_assert_cmpstr (inet_ntop (AF_INET6, &gw->address, buf, sizeof (buf)), ==, addr);
-	g_assert_cmpint (gw->timestamp, ==, ts);
-	g_assert_cmpint (gw->lifetime, ==, lt);
-	g_assert_cmpint (gw->preference, ==, pref);
-}
-
-static void
-match_address (const NMRDiscData *rdata, guint idx, const char *addr, guint32 ts, guint32 lt, guint32 preferred)
-{
-	const NMRDiscAddress *a;
-	char buf[INET6_ADDRSTRLEN];
-
-	g_assert (rdata);
-	g_assert_cmpint (idx, <, rdata->addresses_n);
-	g_assert (rdata->addresses);
-
-	a = &rdata->addresses[idx];
-
-	g_assert_cmpstr (inet_ntop (AF_INET6, &a->address, buf, sizeof (buf)), ==, addr);
-	g_assert_cmpint (a->timestamp, ==, ts);
-	g_assert_cmpint (a->lifetime, ==, lt);
-	g_assert_cmpint (a->preferred, ==, preferred);
-}
-
-static void
-match_route (const NMRDiscData *rdata, guint idx, const char *nw, int plen, const char *gw, guint32 ts, guint32 lt, NMRDiscPreference pref)
-{
-	const NMRDiscRoute *route;
-	char buf[INET6_ADDRSTRLEN];
-
-	g_assert (rdata);
-	g_assert_cmpint (idx, <, rdata->routes_n);
-	g_assert (rdata->routes);
-	g_assert (plen > 0 && plen <= 128);
-
-	route = &rdata->routes[idx];
-
-	g_assert_cmpstr (inet_ntop (AF_INET6, &route->network, buf, sizeof (buf)), ==, nw);
-	g_assert_cmpint ((int) route->plen, ==, plen);
-	g_assert_cmpstr (inet_ntop (AF_INET6, &route->gateway, buf, sizeof (buf)), ==, gw);
-	g_assert_cmpint (route->timestamp, ==, ts);
-	g_assert_cmpint (route->lifetime, ==, lt);
-	g_assert_cmpint (route->preference, ==, pref);
-}
-
-static void
-match_dns_server (const NMRDiscData *rdata, guint idx, const char *addr, guint32 ts, guint32 lt)
-{
-	const NMRDiscDNSServer *dns;
-	char buf[INET6_ADDRSTRLEN];
-
-	g_assert (rdata);
-	g_assert_cmpint (idx, <, rdata->dns_servers_n);
-	g_assert (rdata->dns_servers);
-
-	dns = &rdata->dns_servers[idx];
-
-	g_assert_cmpstr (inet_ntop (AF_INET6, &dns->address, buf, sizeof (buf)), ==, addr);
-	g_assert_cmpint (dns->timestamp, ==, ts);
-	g_assert_cmpint (dns->lifetime, ==, lt);
-}
-
-static void
-match_dns_domain (const NMRDiscData *rdata, guint idx, const char *domain, guint32 ts, guint32 lt)
-{
-	const NMRDiscDNSDomain *dns;
-
-	g_assert (rdata);
-	g_assert_cmpint (idx, <, rdata->dns_domains_n);
-	g_assert (rdata->dns_domains);
-
-	dns = &rdata->dns_domains[idx];
-
-	g_assert_cmpstr (dns->domain, ==, domain);
-	g_assert_cmpint (dns->timestamp, ==, ts);
-	g_assert_cmpint (dns->lifetime, ==, lt);
-}
-
-typedef struct {
-	GMainLoop *loop;
-	guint counter;
-	guint rs_counter;
-	guint32 timestamp1;
-	guint32 first_solicit;
-	guint32 timeout_id;
-} TestData;
-
-static void
-test_simple_changed (NMRDisc *rdisc, const NMRDiscData *rdata, guint changed_int, TestData *data)
-{
-	NMRDiscConfigMap changed = changed_int;
-
-	g_assert_cmpint (changed, ==, NM_RDISC_CONFIG_DHCP_LEVEL |
-	                              NM_RDISC_CONFIG_GATEWAYS |
-	                              NM_RDISC_CONFIG_ADDRESSES |
-	                              NM_RDISC_CONFIG_ROUTES |
-	                              NM_RDISC_CONFIG_DNS_SERVERS |
-	                              NM_RDISC_CONFIG_DNS_DOMAINS |
-	                              NM_RDISC_CONFIG_HOP_LIMIT |
-	                              NM_RDISC_CONFIG_MTU);
-	g_assert_cmpint (rdata->dhcp_level, ==, NM_RDISC_DHCP_LEVEL_OTHERCONF);
-	match_gateway (rdata, 0, "fe80::1", data->timestamp1, 10, NM_RDISC_PREFERENCE_MEDIUM);
-	match_address (rdata, 0, "2001:db8:a:a::1", data->timestamp1, 10, 10);
-	match_route (rdata, 0, "2001:db8:a:a::", 64, "fe80::1", data->timestamp1, 10, 10);
-	match_dns_server (rdata, 0, "2001:db8:c:c::1", data->timestamp1, 10);
-	match_dns_domain (rdata, 0, "foobar.com", data->timestamp1, 10);
-
-	g_assert (nm_fake_rdisc_done (NM_FAKE_RDISC (rdisc)));
-	data->counter++;
-	g_main_loop_quit (data->loop);
-}
-
-static void
-test_simple (void)
-{
-	NMFakeRDisc *rdisc = rdisc_new ();
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	TestData data = { g_main_loop_new (NULL, FALSE), 0, 0, now };
-	guint id;
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_OTHERCONF, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 10, NM_RDISC_PREFERENCE_MEDIUM);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:a::", 64, "fe80::1", now, 10, 10, 10);
-	nm_fake_rdisc_add_dns_server (rdisc, id, "2001:db8:c:c::1", now, 10);
-	nm_fake_rdisc_add_dns_domain (rdisc, id, "foobar.com", now, 10);
-
-	g_signal_connect (rdisc,
-	                  NM_RDISC_CONFIG_CHANGED,
-	                  G_CALLBACK (test_simple_changed),
-	                  &data);
-
-	nm_rdisc_start (NM_RDISC (rdisc));
-	g_main_loop_run (data.loop);
-	g_assert_cmpint (data.counter, ==, 1);
-
-	g_object_unref (rdisc);
-	g_main_loop_unref (data.loop);
-}
-
-static void
-test_everything_rs_sent (NMRDisc *rdisc, TestData *data)
-{
-	g_assert_cmpint (data->rs_counter, ==, 0);
-	data->rs_counter++;
-}
-
-static void
-test_everything_changed (NMRDisc *rdisc, const NMRDiscData *rdata, guint changed_int, TestData *data)
-{
-	NMRDiscConfigMap changed = changed_int;
-
-	if (data->counter == 0) {
-		g_assert_cmpint (data->rs_counter, ==, 1);
-		g_assert_cmpint (changed, ==, NM_RDISC_CONFIG_DHCP_LEVEL |
-		                              NM_RDISC_CONFIG_GATEWAYS |
-		                              NM_RDISC_CONFIG_ADDRESSES |
-		                              NM_RDISC_CONFIG_ROUTES |
-		                              NM_RDISC_CONFIG_DNS_SERVERS |
-		                              NM_RDISC_CONFIG_DNS_DOMAINS |
-		                              NM_RDISC_CONFIG_HOP_LIMIT |
-		                              NM_RDISC_CONFIG_MTU);
-		match_gateway (rdata, 0, "fe80::1", data->timestamp1, 10, NM_RDISC_PREFERENCE_MEDIUM);
-		match_address (rdata, 0, "2001:db8:a:a::1", data->timestamp1, 10, 10);
-		match_route (rdata, 0, "2001:db8:a:a::", 64, "fe80::1", data->timestamp1, 10, 10);
-		match_dns_server (rdata, 0, "2001:db8:c:c::1", data->timestamp1, 10);
-		match_dns_domain (rdata, 0, "foobar.com", data->timestamp1, 10);
-	} else if (data->counter == 1) {
-		g_assert_cmpint (changed, ==, NM_RDISC_CONFIG_GATEWAYS |
-		                              NM_RDISC_CONFIG_ADDRESSES |
-		                              NM_RDISC_CONFIG_ROUTES |
-		                              NM_RDISC_CONFIG_DNS_SERVERS |
-		                              NM_RDISC_CONFIG_DNS_DOMAINS);
-
-		g_assert_cmpint (rdata->gateways_n, ==, 1);
-		match_gateway (rdata, 0, "fe80::2", data->timestamp1, 10, NM_RDISC_PREFERENCE_MEDIUM);
-		g_assert_cmpint (rdata->addresses_n, ==, 1);
-		match_address (rdata, 0, "2001:db8:a:b::1", data->timestamp1, 10, 10);
-		g_assert_cmpint (rdata->routes_n, ==, 1);
-		match_route (rdata, 0, "2001:db8:a:b::", 64, "fe80::2", data->timestamp1, 10, 10);
-		g_assert_cmpint (rdata->dns_servers_n, ==, 1);
-		match_dns_server (rdata, 0, "2001:db8:c:c::2", data->timestamp1, 10);
-		g_assert_cmpint (rdata->dns_domains_n, ==, 1);
-		match_dns_domain (rdata, 0, "foobar2.com", data->timestamp1, 10);
-
-		g_assert (nm_fake_rdisc_done (NM_FAKE_RDISC (rdisc)));
-		g_main_loop_quit (data->loop);
-	} else
-		g_assert_not_reached ();
-
-	data->counter++;
-}
-
-static void
-test_everything (void)
-{
-	NMFakeRDisc *rdisc = rdisc_new ();
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	TestData data = { g_main_loop_new (NULL, FALSE), 0, 0, now };
-	guint id;
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 10, NM_RDISC_PREFERENCE_MEDIUM);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:a::", 64, "fe80::1", now, 10, 10, 10);
-	nm_fake_rdisc_add_dns_server (rdisc, id, "2001:db8:c:c::1", now, 10);
-	nm_fake_rdisc_add_dns_domain (rdisc, id, "foobar.com", now, 10);
-
-	/* expire everything from the first RA in the second */
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 0, NM_RDISC_PREFERENCE_MEDIUM);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:a::", 64, "fe80::1", now, 0, 0, 0);
-	nm_fake_rdisc_add_dns_server (rdisc, id, "2001:db8:c:c::1", now, 0);
-	nm_fake_rdisc_add_dns_domain (rdisc, id, "foobar.com", now, 0);
-
-	/* and add some new stuff */
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::2", now, 10, NM_RDISC_PREFERENCE_MEDIUM);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:b::", 64, "fe80::2", now, 10, 10, 10);
-	nm_fake_rdisc_add_dns_server (rdisc, id, "2001:db8:c:c::2", now, 10);
-	nm_fake_rdisc_add_dns_domain (rdisc, id, "foobar2.com", now, 10);
-
-	g_signal_connect (rdisc,
-	                  NM_RDISC_CONFIG_CHANGED,
-	                  G_CALLBACK (test_everything_changed),
-	                  &data);
-	g_signal_connect (rdisc,
-	                  NM_FAKE_RDISC_RS_SENT,
-	                  G_CALLBACK (test_everything_rs_sent),
-	                  &data);
-
-	nm_rdisc_start (NM_RDISC (rdisc));
-	g_main_loop_run (data.loop);
-	g_assert_cmpint (data.counter, ==, 2);
-	g_assert_cmpint (data.rs_counter, ==, 1);
-
-	g_object_unref (rdisc);
-	g_main_loop_unref (data.loop);
-}
-
-static void
-test_preference_changed (NMRDisc *rdisc, const NMRDiscData *rdata, guint changed_int, TestData *data)
-{
-	NMRDiscConfigMap changed = changed_int;
-
-	if (data->counter == 1) {
-		g_assert_cmpint (changed, ==, NM_RDISC_CONFIG_GATEWAYS |
-		                              NM_RDISC_CONFIG_ADDRESSES |
-		                              NM_RDISC_CONFIG_ROUTES);
-		g_assert_cmpint (rdata->gateways_n, ==, 2);
-		match_gateway (rdata, 0, "fe80::2", data->timestamp1 + 1, 10, NM_RDISC_PREFERENCE_MEDIUM);
-		match_gateway (rdata, 1, "fe80::1", data->timestamp1, 10, NM_RDISC_PREFERENCE_LOW);
-		g_assert_cmpint (rdata->addresses_n, ==, 2);
-		match_address (rdata, 0, "2001:db8:a:a::1", data->timestamp1, 10, 10);
-		match_address (rdata, 1, "2001:db8:a:b::1", data->timestamp1 + 1, 10, 10);
-		g_assert_cmpint (rdata->routes_n, ==, 2);
-		match_route (rdata, 0, "2001:db8:a:b::", 64, "fe80::2", data->timestamp1 + 1, 10, 10);
-		match_route (rdata, 1, "2001:db8:a:a::", 64, "fe80::1", data->timestamp1, 10, 5);
-	} else if (data->counter == 2) {
-		g_assert_cmpint (changed, ==, NM_RDISC_CONFIG_GATEWAYS |
-		                              NM_RDISC_CONFIG_ADDRESSES |
-		                              NM_RDISC_CONFIG_ROUTES);
-
-		g_assert_cmpint (rdata->gateways_n, ==, 2);
-		match_gateway (rdata, 0, "fe80::1", data->timestamp1 + 2, 10, NM_RDISC_PREFERENCE_HIGH);
-		match_gateway (rdata, 1, "fe80::2", data->timestamp1 + 1, 10, NM_RDISC_PREFERENCE_MEDIUM);
-		g_assert_cmpint (rdata->addresses_n, ==, 2);
-		match_address (rdata, 0, "2001:db8:a:a::1", data->timestamp1 + 2, 10, 10);
-		match_address (rdata, 1, "2001:db8:a:b::1", data->timestamp1 + 1, 10, 10);
-		g_assert_cmpint (rdata->routes_n, ==, 2);
-		match_route (rdata, 0, "2001:db8:a:a::", 64, "fe80::1", data->timestamp1 + 2, 10, 15);
-		match_route (rdata, 1, "2001:db8:a:b::", 64, "fe80::2", data->timestamp1 + 1, 10, 10);
-
-		g_assert (nm_fake_rdisc_done (NM_FAKE_RDISC (rdisc)));
-		g_main_loop_quit (data->loop);
-	}
-
-	data->counter++;
-}
-
-static void
-test_preference (void)
-{
-	NMFakeRDisc *rdisc = rdisc_new ();
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	TestData data = { g_main_loop_new (NULL, FALSE), 0, 0, now };
-	guint id;
-
-	/* Test that when a low-preference and medium gateway send advertisements,
-	 * that if the low-preference gateway switches to high-preference, we do
-	 * not get duplicates in the gateway list.
-	 */
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 10, NM_RDISC_PREFERENCE_LOW);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:a::", 64, "fe80::1", now, 10, 10, 5);
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::2", ++now, 10, NM_RDISC_PREFERENCE_MEDIUM);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:b::", 64, "fe80::2", now, 10, 10, 10);
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", ++now, 10, NM_RDISC_PREFERENCE_HIGH);
-	nm_fake_rdisc_add_prefix (rdisc, id, "2001:db8:a:a::", 64, "fe80::1", now, 10, 10, 15);
-
-	g_signal_connect (rdisc,
-	                  NM_RDISC_CONFIG_CHANGED,
-	                  G_CALLBACK (test_preference_changed),
-	                  &data);
-
-	nm_rdisc_start (NM_RDISC (rdisc));
-	g_main_loop_run (data.loop);
-	g_assert_cmpint (data.counter, ==, 3);
-
-	g_object_unref (rdisc);
-	g_main_loop_unref (data.loop);
-}
-
-static void
-test_dns_solicit_loop_changed (NMRDisc *rdisc, const NMRDiscData *rdata, guint changed_int, TestData *data)
-{
-	data->counter++;
-}
-
-static gboolean
-success_timeout (TestData *data)
-{
-	data->timeout_id = 0;
-	g_main_loop_quit (data->loop);
-	return G_SOURCE_REMOVE;
-}
-
-static void
-test_dns_solicit_loop_rs_sent (NMFakeRDisc *rdisc, TestData *data)
-{
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	guint id;
-
-	if (data->rs_counter > 0 && data->rs_counter < 6) {
-		if (data->rs_counter == 1) {
-			data->first_solicit = now;
-			/* Kill the test after 10 seconds if it hasn't failed yet */
-			data->timeout_id = g_timeout_add_seconds (10, (GSourceFunc) success_timeout, data);
-		}
-
-		/* On all but the first solicitation, which should be triggered by the
-		 * DNS servers reaching 1/2 lifetime, emit a new RA without the DNS
-		 * servers again.
-		 */
-		id = nm_fake_rdisc_add_ra (rdisc, 0, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-		g_assert (id);
-		nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 10, NM_RDISC_PREFERENCE_MEDIUM);
-
-		nm_fake_rdisc_emit_new_ras (rdisc);
-	} else if (data->rs_counter >= 6) {
-		/* Fail if we've sent too many solicitations in the past 4 seconds */
-		g_assert_cmpint (now - data->first_solicit, >, 4);
-		g_source_remove (data->timeout_id);
-		g_main_loop_quit (data->loop);
-	}
-	data->rs_counter++;
-}
-
-static void
-test_dns_solicit_loop (void)
-{
-	NMFakeRDisc *rdisc = rdisc_new ();
-	guint32 now = nm_utils_get_monotonic_timestamp_s ();
-	TestData data = { g_main_loop_new (NULL, FALSE), 0, 0, now, 0 };
-	guint id;
-
-	/* Ensure that no solicitation loop happens when DNS servers or domains
-	 * stop being sent in advertisements.  This can happen if two routers
-	 * send RAs, but the one sending DNS info stops responding, or if one
-	 * router removes the DNS info from the RA without zero-lifetiming them
-	 * first.
-	 */
-
-	id = nm_fake_rdisc_add_ra (rdisc, 1, NM_RDISC_DHCP_LEVEL_NONE, 4, 1500);
-	g_assert (id);
-	nm_fake_rdisc_add_gateway (rdisc, id, "fe80::1", now, 10, NM_RDISC_PREFERENCE_LOW);
-	nm_fake_rdisc_add_dns_server (rdisc, id, "2001:db8:c:c::1", now, 6);
-
-	g_signal_connect (rdisc,
-	                  NM_RDISC_CONFIG_CHANGED,
-	                  G_CALLBACK (test_dns_solicit_loop_changed),
-	                  &data);
-	g_signal_connect (rdisc,
-	                  NM_FAKE_RDISC_RS_SENT,
-	                  G_CALLBACK (test_dns_solicit_loop_rs_sent),
-	                  &data);
-
-	nm_rdisc_start (NM_RDISC (rdisc));
-	g_main_loop_run (data.loop);
-	g_assert_cmpint (data.counter, ==, 3);
-
-	g_object_unref (rdisc);
-	g_main_loop_unref (data.loop);
-}
-
-NMTST_DEFINE ();
-
-int
-main (int argc, char **argv)
-{
-	nmtst_init_with_logging (&argc, &argv, NULL, "DEFAULT");
-
-	if (nmtst_test_quick ()) {
-		g_print ("Skipping test: don't run long running test %s (NMTST_DEBUG=slow)\n", g_get_prgname () ?: "test-rdisc-fake");
-		return g_test_run ();
-	}
-
-	nm_fake_platform_setup ();
-
-	g_test_add_func ("/rdisc/simple", test_simple);
-	g_test_add_func ("/rdisc/everything-changed", test_everything);
-	g_test_add_func ("/rdisc/preference-changed", test_preference);
-	g_test_add_func ("/rdisc/dns-solicit-loop", test_dns_solicit_loop);
-
-	return g_test_run ();
-}
diff --git a/src/rdisc/tests/test-rdisc-linux.c b/src/rdisc/tests/test-rdisc-linux.c
deleted file mode 100644
index 299abf3e..00000000
--- a/src/rdisc/tests/test-rdisc-linux.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-/* rdisc.c - test program
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (C) 2013 Red Hat, Inc.
- */
-
-#include "nm-default.h"
-
-#include <string.h>
-#include <syslog.h>
-
-#include "nm-rdisc.h"
-#include "nm-lndp-rdisc.h"
-
-#include "nm-linux-platform.h"
-
-#include "nm-test-utils-core.h"
-
-NMTST_DEFINE ();
-
-int
-main (int argc, char **argv)
-{
-	GMainLoop *loop;
-	NMRDisc *rdisc;
-	int ifindex = 1;
-	const char *ifname;
-	NMUtilsIPv6IfaceId iid = { };
-	GError *error = NULL;
-
-	nmtst_init_with_logging (&argc, &argv, NULL, "DEFAULT");
-
-	if (getuid () != 0) {
-		g_print ("Missing permission: must run as root\n");
-		return EXIT_FAILURE;
-	}
-
-	loop = g_main_loop_new (NULL, FALSE);
-
-	nm_linux_platform_setup ();
-
-	if (argv[1]) {
-		ifname = argv[1];
-		ifindex = nm_platform_link_get_ifindex (NM_PLATFORM_GET, ifname);
-	} else {
-		g_print ("Missing command line argument \"interface-name\"\n");
-		return EXIT_FAILURE;
-	}
-
-	rdisc = nm_lndp_rdisc_new (NM_PLATFORM_GET,
-	                           ifindex,
-	                           ifname,
-	                           NM_UTILS_STABLE_TYPE_UUID,
-	                           "8ce666e8-d34d-4fb1-b858-f15a7al28086",
-	                           NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64,
-	                           &error);
-	if (!rdisc) {
-		g_print ("Failed to create NMRDisc instance: %s\n", error->message);
-		g_error_free (error);
-		return EXIT_FAILURE;
-	}
-
-	iid.id_u8[7] = 1;
-	nm_rdisc_set_iid (rdisc, iid);
-	nm_rdisc_start (rdisc);
-	g_main_loop_run (loop);
-
-	g_clear_object (&rdisc);
-
-	return EXIT_SUCCESS;
-}