diff options
author | bz <bz@FreeBSD.org> | 2016-03-22 15:43:47 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2016-03-22 15:43:47 +0000 |
commit | d4cf5308871d8ff632f24b10bf5f746694bc1a28 (patch) | |
tree | 68439076545834a579b32cf60cc107026e339fd1 /sys/netinet6/in6_ifattach.c | |
parent | f5ed7025e9fbc9640aa45a995379ad422195b78d (diff) | |
download | FreeBSD-src-d4cf5308871d8ff632f24b10bf5f746694bc1a28.zip FreeBSD-src-d4cf5308871d8ff632f24b10bf5f746694bc1a28.tar.gz |
Mfp4 @180378:
Factor out nd6 and in6_attach initialization to their own files.
Also move destruction into those files though still called from
the central initialization.
Sponsored by: CK Software GmbH
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Reviewed by: gnn
Differential Revision: https://reviews.freebsd.org/D5033
Diffstat (limited to 'sys/netinet6/in6_ifattach.c')
-rw-r--r-- | sys/netinet6/in6_ifattach.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 64981b3..471dd82 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -890,3 +890,29 @@ in6_purgemaddrs(struct ifnet *ifp) IN6_MULTI_UNLOCK(); } + +void +in6_ifattach_destroy(void) +{ + + callout_drain(&V_in6_tmpaddrtimer_ch); +} + +static void +in6_ifattach_init(void *dummy) +{ + + /* Timer for regeneranation of temporary addresses randomize ID. */ + callout_init(&V_in6_tmpaddrtimer_ch, 0); + callout_reset(&V_in6_tmpaddrtimer_ch, + (V_ip6_temp_preferred_lifetime - V_ip6_desync_factor - + V_ip6_temp_regen_advance) * hz, + in6_tmpaddrtimer, curvnet); +} + +/* + * Cheat. + * This must be after route_init(), which is now SI_ORDER_THIRD. + */ +SYSINIT(in6_ifattach_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_MIDDLE, + in6_ifattach_init, NULL); |