]> git.ipfire.org Git - thirdparty/dhcpcd.git/log
thirdparty/dhcpcd.git
5 years agoinet6: Move BSD get/set scope function to ipv6 for general use
Roy Marples [Thu, 7 May 2020 13:29:44 +0000 (14:29 +0100)] 
inet6: Move BSD get/set scope function to ipv6 for general use

It seems that FreeBSD doesn't allow binding to scoped addresses,
so let's use our functions everwhere rather than directly
setting scope.

5 years agoprivsep: Remove unsued function.
Roy Marples [Wed, 6 May 2020 23:08:41 +0000 (00:08 +0100)] 
privsep: Remove unsued function.

5 years agoDHCP: Use correct buffer for receiving UDP
Roy Marples [Tue, 5 May 2020 19:03:49 +0000 (19:03 +0000)] 
DHCP: Use correct buffer for receiving UDP

Big wup!
While here, ensure buffer is aligned to the structure we want
to read.

5 years agoprivsep: Allow a blank string to force privsep users home directory
Roy Marples [Tue, 5 May 2020 16:55:10 +0000 (17:55 +0100)] 
privsep: Allow a blank string to force privsep users home directory

So FreeBSD users can set it like other OS's if they so choose.

5 years agoprivsep: Document any overridden chroot directory.
Roy Marples [Tue, 5 May 2020 16:34:54 +0000 (17:34 +0100)] 
privsep: Document any overridden chroot directory.

5 years agoLog chrootdir set.
Roy Marples [Mon, 4 May 2020 15:32:37 +0000 (16:32 +0100)] 
Log chrootdir set.

5 years agodhcpcd: Discard the freopen result.
Roy Marples [Fri, 1 May 2020 10:19:49 +0000 (11:19 +0100)] 
dhcpcd: Discard the freopen result.

5 years agoprivsep: Discard the freopen result.
Roy Marples [Fri, 1 May 2020 10:18:05 +0000 (11:18 +0100)] 
privsep: Discard the freopen result.

5 years agoAlign whitespace
Roy Marples [Thu, 30 Apr 2020 20:30:01 +0000 (21:30 +0100)] 
Align whitespace

5 years agoprivsep: allow --chrootdir= to configure a default chroot directory
Roy Marples [Thu, 30 Apr 2020 20:26:16 +0000 (21:26 +0100)] 
privsep: allow --chrootdir= to configure a default chroot directory

5 years agoprivsep: Add --chroot configurable
Roy Marples [Thu, 30 Apr 2020 20:13:45 +0000 (21:13 +0100)] 
privsep: Add --chroot configurable

Overrides the directory to chroot to away from the privilege separation
users home directory.

5 years agoinet6: Mark temp addrs for regen
Roy Marples [Wed, 29 Apr 2020 21:41:35 +0000 (22:41 +0100)] 
inet6: Mark temp addrs for regen

This solves an infinite loop where new temp addrs regened are
added at the tail and we loop endlessly.

5 years agoinet6: Set default ND timers before a RA arrives after preservation
Roy Marples [Wed, 29 Apr 2020 15:33:57 +0000 (16:33 +0100)] 
inet6: Set default ND timers before a RA arrives after preservation

Other OS will just remove the RA's on carrier down and thus set
default values, but not so on NetBSD.
As such as need to set default values just before settings any values
from the incoming RA.
This allows us to change networks sensibly.

5 years agoinet6: Expire ND on the second, not after it
Roy Marples [Wed, 29 Apr 2020 15:06:04 +0000 (15:06 +0000)] 
inet6: Expire ND on the second, not after it

Otherwise the timing is slightly confused.

5 years agoinet6: Apply the best RA which is still valid.
Roy Marples [Wed, 29 Apr 2020 14:32:15 +0000 (15:32 +0100)] 
inet6: Apply the best RA which is still valid.

If there is no such RA, then apply some defaults.

5 years agoLinux: Only set positive reachable timers
Roy Marples [Wed, 29 Apr 2020 14:31:49 +0000 (15:31 +0100)] 
Linux: Only set positive reachable timers

5 years agoNetBSD: Gear up for kernel RA removal.
Roy Marples [Wed, 29 Apr 2020 13:55:23 +0000 (14:55 +0100)] 
NetBSD: Gear up for kernel RA removal.

linkmtu will vanish from nd_ifinfo along with other things.
Also, there is not need to pre-fetch ifinfo because flags are no
longer updated when setting ifinfo back again.

5 years agoDHCP: Close sockets on carrier down
Roy Marples [Tue, 28 Apr 2020 16:39:48 +0000 (16:39 +0000)] 
DHCP: Close sockets on carrier down

This allows any BPF filter to reset family on carrier up.

5 years agoBump dates for prior.
Roy Marples [Tue, 28 Apr 2020 16:00:29 +0000 (17:00 +0100)] 
Bump dates for prior.

5 years agoGrammar nits
Sascha Wildner [Tue, 28 Apr 2020 15:56:26 +0000 (16:56 +0100)] 
Grammar nits

5 years agoWhitespace
Roy Marples [Tue, 28 Apr 2020 15:37:44 +0000 (16:37 +0100)] 
Whitespace

5 years agoAlign more CMSG foo.
Roy Marples [Sun, 26 Apr 2020 20:05:06 +0000 (21:05 +0100)] 
Align more CMSG foo.

5 years agoDHCP6: Implement DECLINE support for duplicated addresses
Roy Marples [Sun, 26 Apr 2020 16:22:42 +0000 (17:22 +0100)] 
DHCP6: Implement DECLINE support for duplicated addresses

This is the final piece of DHCP6 to implement!
Part of this change drops the use of the IPV6_AF_DUPLICATED flag
and we just use IN6_IFF_DUPLICATED now.

5 years agoThis should really be sa_family_t.
Roy Marples [Fri, 24 Apr 2020 11:23:05 +0000 (12:23 +0100)] 
This should really be sa_family_t.

5 years agodhcpcd: Fix separation of per interface and per family
Roy Marples [Thu, 23 Apr 2020 22:45:38 +0000 (23:45 +0100)] 
dhcpcd: Fix separation of per interface and per family

While here improve privsep proess titles for this.

5 years agoif: support changing hardware address type on Linux
Roy Marples [Thu, 23 Apr 2020 14:15:41 +0000 (14:15 +0000)] 
if: support changing hardware address type on Linux

5 years agoRemove unsed define.
Roy Marples [Thu, 23 Apr 2020 13:40:03 +0000 (13:40 +0000)] 
Remove unsed define.

5 years agoRename ifp->family -> ifp->hwtype so it's less confusing
Roy Marples [Thu, 23 Apr 2020 13:33:48 +0000 (14:33 +0100)] 
Rename ifp->family -> ifp->hwtype so it's less confusing

5 years agoprivsep: Open the IPV6 ND socket when running IPv6
Roy Marples [Wed, 22 Apr 2020 15:57:40 +0000 (16:57 +0100)] 
privsep: Open the IPV6 ND socket when running IPv6

IPv6 RS could be turned off globally

5 years ago01-test: Avoid use of grep and sort which might be in /usr
Roy Marples [Tue, 21 Apr 2020 13:31:39 +0000 (14:31 +0100)] 
01-test: Avoid use of grep and sort which might be in /usr

This is a touch more long winded, but is fully shell and
the output *should* be identical.

5 years agohostname: Ensure it's not clobbered by SLAAC
Mark Davies [Tue, 21 Apr 2020 09:34:09 +0000 (10:34 +0100)] 
hostname: Ensure it's not clobbered by SLAAC

Because it cannot carry a hostname and user could be forcing it.

5 years agoRelease dhcpcd-9.0.2
Roy Marples [Tue, 21 Apr 2020 09:32:00 +0000 (10:32 +0100)] 
Release dhcpcd-9.0.2

5 years agoalign CMSG buffer
Roy Marples [Tue, 21 Apr 2020 08:55:50 +0000 (09:55 +0100)] 
align CMSG buffer

5 years agoDHCP: Avoid mis-aligned BOOTP structure
Roy Marples [Mon, 20 Apr 2020 21:18:41 +0000 (22:18 +0100)] 
DHCP: Avoid mis-aligned BOOTP structure

This was caused by the recent change to pass back the frame header.

5 years agoOpenBSD: set IN6_IFF_AUTOCONF for addresses generated from a RA
Roy Marples [Mon, 20 Apr 2020 14:31:57 +0000 (15:31 +0100)] 
OpenBSD: set IN6_IFF_AUTOCONF for addresses generated from a RA

NetBSD will follow suit once the code in the kernel to handle RA
has been removed.

5 years agoif: ensure interface flags persist when setting a flag
Roy Marples [Mon, 20 Apr 2020 13:11:00 +0000 (14:11 +0100)] 
if: ensure interface flags persist when setting a flag

Otherwise we stupidly drop IFF_MULTICAST on Linux.

5 years agoinet6: Add 'temporary' directive to the slaac option
Roy Marples [Sun, 19 Apr 2020 06:52:47 +0000 (07:52 +0100)] 
inet6: Add 'temporary' directive to the slaac option

This instructs dhcpcd to create a temporary address for each
address generated from a RA.
As such, dhcpcd no longer looks at the kernel option for it
as the functionality is being removed from some or never existed
in the first place.

5 years agoBSD: Dont warn if the kernel does not support flushing routers
Roy Marples [Sun, 19 Apr 2020 04:33:53 +0000 (05:33 +0100)] 
BSD: Dont warn if the kernel does not support flushing routers

As the implemention might be removed one day.

5 years agoDHCP6: don't log when things consitently fail
Roy Marples [Fri, 17 Apr 2020 12:25:33 +0000 (13:25 +0100)] 
DHCP6: don't log when things consitently fail

For example, the RA says obtain more inforamtion via DHCPv6 but
there is no DHCPv6 server to service the request.

5 years agoinet6: Only log RA's when they are from a new server
Roy Marples [Fri, 17 Apr 2020 12:22:54 +0000 (13:22 +0100)] 
inet6: Only log RA's when they are from a new server

We cannot log them normally as there are implementations which
vary the expiry times based on their own times so each message is
different. As such, we only log from new servers or coming back
from expiration.

5 years agoinet6: Don't regen temporary addresses without an IPv6 state
Roy Marples [Thu, 16 Apr 2020 22:28:34 +0000 (23:28 +0100)] 
inet6: Don't regen temporary addresses without an IPv6 state

As this is not possible.

5 years agodhcpcd: daemomize if no valid interfaces found
Roy Marples [Thu, 16 Apr 2020 22:27:47 +0000 (23:27 +0100)] 
dhcpcd: daemomize if no valid interfaces found

But if we're waitig for an ip address we still wait.

5 years agoconfigure: Set a blank default hostname for non Linux
Roy Marples [Thu, 16 Apr 2020 22:26:49 +0000 (23:26 +0100)] 
configure: Set a blank default hostname for non Linux

Wups, I was debugging.

5 years agoprivsep: Don't abort if we fail to init a protocol.
Roy Marples [Thu, 16 Apr 2020 20:00:58 +0000 (21:00 +0100)] 
privsep: Don't abort if we fail to init a protocol.

It's only an error if we cannot init anything.

5 years agoprivsep: Redirect to /dev/null unless test or quiet and not debug
Roy Marples [Wed, 15 Apr 2020 15:50:32 +0000 (16:50 +0100)] 
privsep: Redirect to /dev/null unless test or quiet and not debug

Keeps the rtsol like behaviour the same.

5 years agoDon't open a control socket in test mode.
Roy Marples [Wed, 15 Apr 2020 15:50:11 +0000 (16:50 +0100)] 
Don't open a control socket in test mode.

5 years agoRelease dhcpcd-9.0.1
Roy Marples [Mon, 13 Apr 2020 15:09:08 +0000 (16:09 +0100)] 
Release dhcpcd-9.0.1

5 years agoinstall: Dont move old files around to new locations
Roy Marples [Sun, 5 Apr 2020 15:50:59 +0000 (16:50 +0100)] 
install: Dont move old files around to new locations

privsep user dir may not exist and this code wont work for
dhcpcd-9 anyway.

5 years agoNote /dev/log issue on linux
Roy Marples [Sun, 5 Apr 2020 15:47:25 +0000 (16:47 +0100)] 
Note /dev/log issue on linux

5 years agoprivsep: Detect a suitable user for dhcpcd, otherwise use dhcpcd
Roy Marples [Sun, 5 Apr 2020 15:44:32 +0000 (16:44 +0100)] 
privsep: Detect a suitable user for dhcpcd, otherwise use dhcpcd

System users generally have _ preceeding their username.
Only use this user if it exists and their home dir is not /var/empty.
Otherwise default to using dhcpcd.

5 years agoRevert "privsep: default to using _dhcpcd and not _dhcp"
Roy Marples [Sun, 5 Apr 2020 14:52:50 +0000 (15:52 +0100)] 
Revert "privsep: default to using _dhcpcd and not _dhcp"

This reverts commit 36c47a8df0951236a7842bbf8241e2932357ef61.

5 years agoprivsep: default to using _dhcpcd and not _dhcp
Roy Marples [Fri, 10 Apr 2020 09:17:38 +0000 (10:17 +0100)] 
privsep: default to using _dhcpcd and not _dhcp

_dhcp home dir defaults to /var/empty.
System integrators can and should be in charge of changing it when needed.
Packagers on the other hand don't have such a luxury and so should not
use _dhcp by default.

5 years agolinux: Remove warning when HAVE_IN6_ADDR_GEN_MODE_NONE isn't supported
Roy Marples [Thu, 9 Apr 2020 21:29:46 +0000 (22:29 +0100)] 
linux: Remove warning when HAVE_IN6_ADDR_GEN_MODE_NONE isn't supported

5 years agoroute: revert prior change to rt_new0
Roy Marples [Thu, 9 Apr 2020 20:55:33 +0000 (21:55 +0100)] 
route: revert prior change to rt_new0

5 years agodhcpcd: always emit version when starting.
Roy Marples [Thu, 9 Apr 2020 20:08:05 +0000 (21:08 +0100)] 
dhcpcd: always emit version when starting.

5 years agoRTA_PREF was added in kernel-4.1
Roy Marples [Thu, 9 Apr 2020 16:27:18 +0000 (16:27 +0000)] 
RTA_PREF was added in kernel-4.1

5 years agoLinux: Note router preference when adding routes
Roy Marples [Thu, 9 Apr 2020 16:19:07 +0000 (16:19 +0000)] 
Linux: Note router preference when adding routes

This appears to just be cosmetic.

5 years agoLinux: doesn't need to create temp addrs
Roy Marples [Thu, 9 Apr 2020 15:38:18 +0000 (15:38 +0000)] 
Linux: doesn't need to create temp addrs

5 years agoFix build on Linux
Roy Marples [Thu, 9 Apr 2020 15:36:42 +0000 (16:36 +0100)] 
Fix build on Linux

5 years agoRA: Rework temporary address management
Roy Marples [Thu, 9 Apr 2020 15:16:37 +0000 (16:16 +0100)] 
RA: Rework temporary address management

Vastly simpfly how they are generated and managed.

Temporary address generation now uses pure random numbers
rather than MD5ing over a random secret as arc4random should be
random enough. This change reflects RFC 4941bis.

5 years agolinux: mount --bind real directory holding /dev/log
Roy Marples [Wed, 8 Apr 2020 19:12:08 +0000 (20:12 +0100)] 
linux: mount --bind real directory holding /dev/log

As systemd has the real socket in /run which doesn't help anyone
but itself.

5 years agoBSD: Fix temporary address management
Roy Marples [Tue, 7 Apr 2020 12:18:35 +0000 (13:18 +0100)] 
BSD: Fix temporary address management

5 years agoprivsep: Don't overwrite initial sigmask
Roy Marples [Mon, 6 Apr 2020 20:13:39 +0000 (21:13 +0100)] 
privsep: Don't overwrite initial sigmask

We really don't want to do that ....

5 years agoscripts: Run with an empty sigmask
Christos Zoulas [Mon, 6 Apr 2020 20:11:45 +0000 (21:11 +0100)] 
scripts: Run with an empty sigmask

An empty signal mask is probably more appropriate, since most
programs presume that the signal mask is empty when they start
even when they are using signals.

5 years agoprivsep: If we fail to init privsep, continue
Roy Marples [Sun, 5 Apr 2020 06:47:14 +0000 (07:47 +0100)] 
privsep: If we fail to init privsep, continue

We continue if the privsep user cannot be found, so do the same
if passwd or similar is missing from the system.
This helps people who use dhcpcd in ramdisks to oneshot the config
for example to start iSCSI.

5 years agodhcpcd: dump all variables and optionally all interfaces
Roy Marples [Tue, 31 Mar 2020 10:51:24 +0000 (11:51 +0100)] 
dhcpcd: dump all variables and optionally all interfaces

This allows someone to view pretty much the whole state.

5 years agoprivsep: Improve error when we cannot write the lease
Roy Marples [Mon, 30 Mar 2020 20:40:19 +0000 (21:40 +0100)] 
privsep: Improve error when we cannot write the lease

No permission without context isn't great.

5 years agohooks: Build all hooks before installing
Roy Marples [Mon, 30 Mar 2020 20:40:04 +0000 (21:40 +0100)] 
hooks: Build all hooks before installing

5 years agohooks: clean 30-hostname
Roy Marples [Mon, 30 Mar 2020 20:21:47 +0000 (21:21 +0100)] 
hooks: clean 30-hostname

As it's now built from 30-hostname.in

5 years agohooks: Remove 02-dump
Roy Marples [Mon, 30 Mar 2020 20:20:12 +0000 (21:20 +0100)] 
hooks: Remove 02-dump

As we now dump via the control socket, this is no longer needed.

5 years agoBSD: Don't install 00-linux hook
Roy Marples [Mon, 30 Mar 2020 17:15:07 +0000 (18:15 +0100)] 
BSD: Don't install 00-linux hook

5 years agoLinux: improve IPv6 router reachability
Roy Marples [Fri, 3 Apr 2020 18:05:41 +0000 (18:05 +0000)] 
Linux: improve IPv6 router reachability

Only mark as unreachable for NUD_FAILED.
Sadly the kernel emits this when the NDP entry is deleted for
whatever reason, which looks like a bug in the kernel.

5 years agoMerge pull request #13 from sthen/patch-1
Roy Marples [Fri, 3 Apr 2020 15:10:57 +0000 (16:10 +0100)] 
Merge pull request #13 from sthen/patch-1

use TEMP_PREFERRED/VALID_LIFETIME for OpenBSD

5 years agouse TEMP_PREFERRED/VALID_LIFETIME for OpenBSD 13/head
Stuart Henderson [Fri, 3 Apr 2020 12:23:49 +0000 (12:23 +0000)] 
use TEMP_PREFERRED/VALID_LIFETIME for OpenBSD

Shortly after dhcpcd started using these constants, they were dropped from OpenBSD kernel headers as they're only used by rad(8). Switch to dhcpcd's own constants instead, fixing build on recent -current.

5 years agoFix build without INET or INET6
Roy Marples [Thu, 2 Apr 2020 19:54:19 +0000 (19:54 +0000)] 
Fix build without INET or INET6

5 years agoRelease dhcpcd-9.0.0
Roy Marples [Thu, 2 Apr 2020 12:14:09 +0000 (13:14 +0100)] 
Release dhcpcd-9.0.0

5 years agoNote that setting pltime to zero for stale addresses isn't RFC compliant
Roy Marples [Wed, 1 Apr 2020 15:12:37 +0000 (16:12 +0100)] 
Note that setting pltime to zero for stale addresses isn't RFC compliant

But also note we need to do this to ensure the kernel tries to use
better addresses.

5 years agoresolv.conf: Uniquify contents
Roy Marples [Wed, 1 Apr 2020 12:22:15 +0000 (13:22 +0100)] 
resolv.conf: Uniquify contents

We might have >1 router that broadcasts the same DNS information.
While resolvconf(8) can easily take care of uniqifying the data,
not all systems have this nice tool so do the job here as well.

5 years agoND: Improve stale detection for >1 router
Roy Marples [Wed, 1 Apr 2020 11:19:47 +0000 (12:19 +0100)] 
ND: Improve stale detection for >1 router

5 years agoND: Check matching iface to make stale and add commentary
Roy Marples [Wed, 1 Apr 2020 08:16:47 +0000 (09:16 +0100)] 
ND: Check matching iface to make stale and add commentary

5 years agoND: If a secondary router adds the same prefix, use it's address
Roy Marples [Tue, 31 Mar 2020 21:33:25 +0000 (22:33 +0100)] 
ND: If a secondary router adds the same prefix, use it's address

With slaac private, it will generate a new address which would
be wrong.

5 years agoND: Only deprecate prefixes when all stale
Roy Marples [Tue, 31 Mar 2020 21:00:52 +0000 (22:00 +0100)] 
ND: Only deprecate prefixes when all stale

5 years agodhcpcd: disable address sanitization by default
Roy Marples [Tue, 31 Mar 2020 19:21:58 +0000 (20:21 +0100)] 
dhcpcd: disable address sanitization by default

As recent production kernels ship with ASLR by default which
stops dhcpcd running dead when this is enabled.
We dont want to break a systems boot, so force it via configure.

5 years agolinux: the default hostname is (none)
Roy Marples [Tue, 31 Mar 2020 18:45:17 +0000 (19:45 +0100)] 
linux: the default hostname is (none)

It's blank for the BSD's.
Respect this when relinquishing the hostname.

5 years agohostname: Default to blank instead of localhost
Roy Marples [Tue, 31 Mar 2020 17:23:05 +0000 (18:23 +0100)] 
hostname: Default to blank instead of localhost

No kernel sets a default value of localhost.

5 years agoDon't install /var/db/dhcpcd in the Makefile
Roy Marples [Tue, 31 Mar 2020 10:30:30 +0000 (11:30 +0100)] 
Don't install /var/db/dhcpcd in the Makefile

dhcpcd will create it in the right place by default.

5 years agoprivsep: Refuse chroot if privsep users home dir is /var/empty
Roy Marples [Mon, 30 Mar 2020 16:12:26 +0000 (17:12 +0100)] 
privsep: Refuse chroot if privsep users home dir is /var/empty

As we should not be filling it.
This means we don't mess up a stock install where the pkg admin
hasn't setup privsep correctly.

5 years agoBSD: Don't warn if the OS does not support miss filtering.
Roy Marples [Mon, 30 Mar 2020 15:56:12 +0000 (16:56 +0100)] 
BSD: Don't warn if the OS does not support miss filtering.

The compile warning is enough.

5 years agoFreeBSD: Remove unused compile warning
Roy Marples [Mon, 30 Mar 2020 15:36:30 +0000 (16:36 +0100)] 
FreeBSD: Remove unused compile warning

The actual warning about the lack of filtering is enough.

5 years agoscript: Start RA addresses from 1, not 0.
Roy Marples [Sat, 28 Mar 2020 17:52:52 +0000 (17:52 +0000)] 
script: Start RA addresses from 1, not 0.

5 years agodhcpcd: dump lease on the unpriviledged socket
Roy Marples [Sat, 28 Mar 2020 17:01:49 +0000 (17:01 +0000)] 
dhcpcd: dump lease on the unpriviledged socket

5 years agoFix compile on Linux
Roy Marples [Sat, 28 Mar 2020 16:05:28 +0000 (16:05 +0000)] 
Fix compile on Linux

5 years agodumplease: Separate ifaces
Roy Marples [Fri, 27 Mar 2020 22:07:14 +0000 (22:07 +0000)] 
dumplease: Separate ifaces

5 years agodhcpcd: dumping lease uses control socket to get the lease
Roy Marples [Fri, 27 Mar 2020 16:14:48 +0000 (16:14 +0000)] 
dhcpcd: dumping lease uses control socket to get the lease

Thanks to privsep it's hard to know where the lease is now stored.
As such, the only true location is from the running dhcpcd process.
The ability to read a raw lease from stdin has been dropped.

5 years agoprivsep: Don't close output streams if debugging or testing
Roy Marples [Fri, 27 Mar 2020 16:04:35 +0000 (16:04 +0000)] 
privsep: Don't close output streams if debugging or testing

5 years agooptions: move warning
Roy Marples [Fri, 27 Mar 2020 16:04:10 +0000 (16:04 +0000)] 
options: move warning

5 years agodhcpcd: Improve error when interface does not exist vs invalid config
Roy Marples [Tue, 17 Mar 2020 07:57:03 +0000 (07:57 +0000)] 
dhcpcd: Improve error when interface does not exist vs invalid config

5 years agoprivsep: Don't create DB directory in the real root as well.
Roy Marples [Sat, 14 Mar 2020 16:02:32 +0000 (16:02 +0000)] 
privsep: Don't create DB directory in the real root as well.

5 years agoBSD: use satosin6 rather than a direct cast
Roy Marples [Sat, 14 Mar 2020 10:40:22 +0000 (10:40 +0000)] 
BSD: use satosin6 rather than a direct cast

5 years agoRA: Prefer older routers at the preference
Roy Marples [Wed, 11 Mar 2020 01:11:41 +0000 (01:11 +0000)] 
RA: Prefer older routers at the preference