diff options
| author | Roy Marples <roy@marples.name> | 2015-01-17 02:29:54 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2015-01-17 02:29:54 +0000 |
| commit | a1f7b32ceffa4e707a051e58573e60b6603a942b (patch) | |
| tree | 654890c2855ba699425f643e42da712f655bfb7c /if.h | |
| parent | c3d69056f1bc64fd9d52050813da385e653b7c5d (diff) | |
| download | dhcpcd-a1f7b32ceffa4e707a051e58573e60b6603a942b.tar.xz | |
Implement RFC4941, Privacy Extensions for Stateless Address Autoconfiguration
in IPv6 when dhcpcd is overriding the in-kernel RA support.
For Linux kernels (3.18+) which support IFA_F_MANAGETEMPADDR the bulk of
this changeset is compiled out and the kernel will manage the temporary
addresses entirely.
For BSD, this is a fully compliant implementation with the caveat
that when dhcpcd is restarted the last non deprecated temp address on the
interface will be treated as being created when it was last updated
rather when it was actually added. Thus this may voilate section 3.3.
As dhcpcd won't restart in normal operation, this isn't an issue.
For Linux (3.18+) which supports IFA_F_MANAGETEMPADDR, the bulk of this
changeset is compiled out as the kernel will manage the temporary addresses.
For older Linux this is a fully compliant implementation with the caveat that
when restarted new temporary addresses will be generated.
Fixes [2ddfcb190f]
Diffstat (limited to 'if.h')
| -rw-r--r-- | if.h | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -125,12 +125,16 @@ int if_route(const struct rt *rt, int); #ifdef INET6 int if_checkipv6(struct dhcpcd_ctx *ctx, const struct interface *, int); +int ip6_use_tempaddr(const char *ifname); +int ip6_temp_preferred_lifetime(const char *ifname); +int ip6_temp_valid_lifetime(const char *ifname); int if_address6(const struct ipv6_addr *, int); #define if_addaddress6(a) if_address6(a, 1) #define if_deladdress6(a) if_address6(a, -1) int if_addrflags6(const struct in6_addr *, const struct interface *); +int if_getlifetime6(struct ipv6_addr *); int if_route6(const struct rt6 *rt, int); #define if_addroute6(rt) if_route6(rt, 1) |
