dhcpcd.conf.5.in: Fix various typos, add more markup, etc.
Fix some minor spelling and grammar issues, add more markup in places to help contextualize terms, add a touch more detail to 'Defining new options', make acronym formatting more consistent, etc.
Use a consistent format for RFC references: a space between RFC and the ID number, as this is the most commonly-used format in man pages, and indeed in the RFCs themselves. Also, a few minor grammatical fixes.
Roy Marples [Sat, 2 Jun 2018 09:27:45 +0000 (10:27 +0100)]
ip6: if forked from ia callback, don't run ia handlers
It's pointless and resolves an issue where the handler would try
and listen to an address when not in master mode, but it's already
listened to in the child.
Roy Marples [Tue, 8 May 2018 11:27:42 +0000 (12:27 +0100)]
dhcp6: match IA type with request
So we don't send IA_NA, IA_TA and IA_PD addresses in the
IA_NA request if they all share the same IAID.
While here, fix a bug where IA_TA addresses would append
the DHCP6 unknown option 0 by mistakenly trying to put T1
and T2 timers in where there should be none.
Roy Marples [Mon, 7 May 2018 20:20:26 +0000 (21:20 +0100)]
dhcp6: IAID is now unique for IA type
RFC3315 is a bit ambigious about this. At the start it says that
IAID is supposed to be unique across the client, but futher down
it starts to mention that the IAID number space is unqiuie to the
IA type.
RFC3315bis clarifies it's unique for the client and IA type, so
you can now have ia_na 1 and ia_pd 1.
Roy Marples [Sun, 29 Apr 2018 20:38:58 +0000 (21:38 +0100)]
auth: allow different tokens for send and receive
It was silly of me to assume that the same key would be used for
both sending and receiving. Because token protocol is not digested,
replace the digest argument with 0x123/0x456 where 0x123 is the
sending key and 0x456 is the receiving key.
Receiving key defaults to sending key, sending key defaults to zero.
This should allow existing configurations to work as is.
Roy Marples [Sun, 29 Apr 2018 20:28:15 +0000 (21:28 +0100)]
auth: allow zero value replay detection data
It seems one ISP doesn't use Replay Data and always sets it to zero.
See the comment in the commit as to why this is technically legal,
even if it goes against the intent of the RFC.
Roy Marples [Thu, 26 Apr 2018 18:35:43 +0000 (19:35 +0100)]
RFC 3315 21.4.4.1 says that SOLICT and DELAYED authentication
should set RDM and replay data to zero.
draft-ietf-dhc-dhcpv6-clarify-auth-01 (expired) suggests that
INFORMATION REQ should be zero in this case as well.
As it's coming from a very similar angle, I agree.
Roy Marples [Wed, 28 Mar 2018 18:25:16 +0000 (18:25 +0000)]
routes: allow a head clear with a context
This is because optionally defined routes may not have an interface
at the global level.
Also, init route lists earlier so they can be freed without error.
Roy Marples [Mon, 19 Mar 2018 15:39:05 +0000 (15:39 +0000)]
link: detect buffer overflow / desync and relearn interface state
It's possible for the internal kernel buffer that reports network
events to overflow.
On Linux and NetBSD* this is handled by ENOBUFS being returned
by recv(2). On OpenBSD there is a special route(4) message RTM_DESYNC.
All other OS's don't seem to report this error, so dhcpcd cannot
detect it.
* I will commit a patch to NetBSD soon for this and will request a
pullup to NetBSD-8.
Roy Marples [Sat, 10 Mar 2018 11:50:08 +0000 (11:50 +0000)]
dhcp6: deny unicast in non master mode
It seems that some DHCP6 servers or firewalls really insist on the
client sending from the correct source port.
This is the safest thing for the time being.
Roy Marples [Tue, 13 Feb 2018 10:33:06 +0000 (10:33 +0000)]
dhcp: reset interval during init
This fixes NetBSD where the lease is persisted at carrier down.
When the carrier comes back up again we need the interval
to reset to zero so that DHCP happens quicker.
Roy Marples [Fri, 2 Feb 2018 11:24:58 +0000 (11:24 +0000)]
inet6: simplify setup of kernel
Rename if_checkipv6 to if_setup_inet6 so it's more descriptive.
simpify code as we don't really care about the result.
Restore the prior behavior of not disabling kernel RA handling
if dhcpcd is not doing it.