Tue Jul 3 03:37:04 2018 UTC ()
Fix net.inet6.ip6.ifq node doesn't exist

The node (and child nodes) is initialized in sysctl_net_pktq_setup, but the call
of sysctl_net_pktq_setup is skipped unexpectedly.

sysctl_net_pktq_setup is skipped if in6_present is false that indicates the
netinet6 component isn't loaded on rump kernels.  However the flag is
accidentally always false because the flag is turned on in in6_dom_init that is
called after if_sysctl_setup on both normal and rump kernels.

Fix the issue by moving if_sysctl_setup after in6_dom_init (domaininit on normal
kernels).  This fix is ad-hoc but good enough for netbsd-8.  We should refine
the initialization order of network components in the future.

Pointed out by hikaru@


(ozaki-r)
diff -r1.497 -r1.498 src/sys/kern/init_main.c
diff -r1.428 -r1.429 src/sys/net/if.c
diff -r1.263 -r1.264 src/sys/net/if.h
diff -r1.9 -r1.10 src/sys/rump/net/lib/libnet/net_component.c

cvs diff -r1.497 -r1.498 src/sys/kern/init_main.c (expand / switch to unified diff)

--- src/sys/kern/init_main.c 2018/04/16 14:51:59 1.497
+++ src/sys/kern/init_main.c 2018/07/03 03:37:03 1.498
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: init_main.c,v 1.497 2018/04/16 14:51:59 kamil Exp $ */ 1/* $NetBSD: init_main.c,v 1.498 2018/07/03 03:37:03 ozaki-r Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. 4 * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer. 11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution. 14 * documentation and/or other materials provided with the distribution.
@@ -87,27 +87,27 @@ @@ -87,27 +87,27 @@
87 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 87 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
88 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 88 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
89 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 89 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
90 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 90 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
91 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 91 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
92 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 92 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
93 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 93 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
94 * SUCH DAMAGE. 94 * SUCH DAMAGE.
95 * 95 *
96 * @(#)init_main.c 8.16 (Berkeley) 5/14/95 96 * @(#)init_main.c 8.16 (Berkeley) 5/14/95
97 */ 97 */
98 98
99#include <sys/cdefs.h> 99#include <sys/cdefs.h>
100__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.497 2018/04/16 14:51:59 kamil Exp $"); 100__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.498 2018/07/03 03:37:03 ozaki-r Exp $");
101 101
102#include "opt_ddb.h" 102#include "opt_ddb.h"
103#include "opt_inet.h" 103#include "opt_inet.h"
104#include "opt_ipsec.h" 104#include "opt_ipsec.h"
105#include "opt_modular.h" 105#include "opt_modular.h"
106#include "opt_ntp.h" 106#include "opt_ntp.h"
107#include "opt_pipe.h" 107#include "opt_pipe.h"
108#include "opt_syscall_debug.h" 108#include "opt_syscall_debug.h"
109#include "opt_sysv.h" 109#include "opt_sysv.h"
110#include "opt_fileassoc.h" 110#include "opt_fileassoc.h"
111#include "opt_ktrace.h" 111#include "opt_ktrace.h"
112#include "opt_pax.h" 112#include "opt_pax.h"
113#include "opt_compat_netbsd.h" 113#include "opt_compat_netbsd.h"
@@ -562,26 +562,27 @@ main(void) @@ -562,26 +562,27 @@ main(void)
562 ipsec_attach(); 562 ipsec_attach();
563#endif 563#endif
564 564
565 /* 565 /*
566 * Initialize protocols. Block reception of incoming packets 566 * Initialize protocols. Block reception of incoming packets
567 * until everything is ready. 567 * until everything is ready.
568 */ 568 */
569 s = splnet(); 569 s = splnet();
570 ifinit(); 570 ifinit();
571#if defined(INET) || defined(INET6) 571#if defined(INET) || defined(INET6)
572 lltableinit(); 572 lltableinit();
573#endif 573#endif
574 domaininit(true); 574 domaininit(true);
 575 ifinit_post();
575 if_attachdomain(); 576 if_attachdomain();
576 splx(s); 577 splx(s);
577 578
578#ifdef GPROF 579#ifdef GPROF
579 /* Initialize kernel profiling. */ 580 /* Initialize kernel profiling. */
580 kmstartup(); 581 kmstartup();
581#endif 582#endif
582 583
583 /* Initialize system accounting. */ 584 /* Initialize system accounting. */
584 acct_init(); 585 acct_init();
585 586
586#ifndef PIPE_SOCKETPAIR 587#ifndef PIPE_SOCKETPAIR
587 /* Initialize pipes. */ 588 /* Initialize pipes. */

cvs diff -r1.428 -r1.429 src/sys/net/if.c (expand / switch to unified diff)

--- src/sys/net/if.c 2018/06/26 06:48:02 1.428
+++ src/sys/net/if.c 2018/07/03 03:37:03 1.429
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: if.c,v 1.428 2018/06/26 06:48:02 msaitoh Exp $ */ 1/* $NetBSD: if.c,v 1.429 2018/07/03 03:37:03 ozaki-r Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc. 4 * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by William Studenmund and Jason R. Thorpe. 8 * by William Studenmund and Jason R. Thorpe.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -80,27 +80,27 @@ @@ -80,27 +80,27 @@
80 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 80 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
81 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 81 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
82 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 82 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
83 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 83 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
84 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 84 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
85 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 85 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
86 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 86 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
87 * SUCH DAMAGE. 87 * SUCH DAMAGE.
88 * 88 *
89 * @(#)if.c 8.5 (Berkeley) 1/9/95 89 * @(#)if.c 8.5 (Berkeley) 1/9/95
90 */ 90 */
91 91
92#include <sys/cdefs.h> 92#include <sys/cdefs.h>
93__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.428 2018/06/26 06:48:02 msaitoh Exp $"); 93__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.429 2018/07/03 03:37:03 ozaki-r Exp $");
94 94
95#if defined(_KERNEL_OPT) 95#if defined(_KERNEL_OPT)
96#include "opt_inet.h" 96#include "opt_inet.h"
97#include "opt_ipsec.h" 97#include "opt_ipsec.h"
98#include "opt_atalk.h" 98#include "opt_atalk.h"
99#include "opt_natm.h" 99#include "opt_natm.h"
100#include "opt_wlan.h" 100#include "opt_wlan.h"
101#include "opt_net_mpsafe.h" 101#include "opt_net_mpsafe.h"
102#include "opt_mrouting.h" 102#include "opt_mrouting.h"
103#endif 103#endif
104 104
105#include <sys/param.h> 105#include <sys/param.h>
106#include <sys/mbuf.h> 106#include <sys/mbuf.h>
@@ -269,28 +269,26 @@ if_listener_cb(kauth_cred_t cred, kauth_ @@ -269,28 +269,26 @@ if_listener_cb(kauth_cred_t cred, kauth_
269 return result; 269 return result;
270} 270}
271 271
272/* 272/*
273 * Network interface utility routines. 273 * Network interface utility routines.
274 * 274 *
275 * Routines with ifa_ifwith* names take sockaddr *'s as 275 * Routines with ifa_ifwith* names take sockaddr *'s as
276 * parameters. 276 * parameters.
277 */ 277 */
278void 278void
279ifinit(void) 279ifinit(void)
280{ 280{
281 281
282 if_sysctl_setup(NULL); 
283 
284#if (defined(INET) || defined(INET6)) 282#if (defined(INET) || defined(INET6))
285 encapinit(); 283 encapinit();
286#endif 284#endif
287 285
288 if_listener = kauth_listen_scope(KAUTH_SCOPE_NETWORK, 286 if_listener = kauth_listen_scope(KAUTH_SCOPE_NETWORK,
289 if_listener_cb, NULL); 287 if_listener_cb, NULL);
290 288
291 /* interfaces are available, inform socket code */ 289 /* interfaces are available, inform socket code */
292 ifioctl = doifioctl; 290 ifioctl = doifioctl;
293} 291}
294 292
295/* 293/*
296 * XXX Initialization before configure(). 294 * XXX Initialization before configure().
@@ -313,26 +311,34 @@ ifinit1(void) @@ -313,26 +311,34 @@ ifinit1(void)
313 ifa_psref_class = psref_class_create("ifa", IPL_SOFTNET); 311 ifa_psref_class = psref_class_create("ifa", IPL_SOFTNET);
314 PSLIST_INIT(&ifnet_pslist); 312 PSLIST_INIT(&ifnet_pslist);
315 313
316 if_indexlim = 8; 314 if_indexlim = 8;
317 315
318 if_pfil = pfil_head_create(PFIL_TYPE_IFNET, NULL); 316 if_pfil = pfil_head_create(PFIL_TYPE_IFNET, NULL);
319 KASSERT(if_pfil != NULL); 317 KASSERT(if_pfil != NULL);
320 318
321#if NETHER > 0 || NFDDI > 0 || defined(NETATALK) || NTOKEN > 0 || defined(WLAN) 319#if NETHER > 0 || NFDDI > 0 || defined(NETATALK) || NTOKEN > 0 || defined(WLAN)
322 etherinit(); 320 etherinit();
323#endif 321#endif
324} 322}
325 323
 324/* XXX must be after domaininit() */
 325void
 326ifinit_post(void)
 327{
 328
 329 if_sysctl_setup(NULL);
 330}
 331
326ifnet_t * 332ifnet_t *
327if_alloc(u_char type) 333if_alloc(u_char type)
328{ 334{
329 return kmem_zalloc(sizeof(ifnet_t), KM_SLEEP); 335 return kmem_zalloc(sizeof(ifnet_t), KM_SLEEP);
330} 336}
331 337
332void 338void
333if_free(ifnet_t *ifp) 339if_free(ifnet_t *ifp)
334{ 340{
335 kmem_free(ifp, sizeof(ifnet_t)); 341 kmem_free(ifp, sizeof(ifnet_t));
336} 342}
337 343
338void 344void

cvs diff -r1.263 -r1.264 src/sys/net/if.h (expand / switch to unified diff)

--- src/sys/net/if.h 2018/06/21 10:37:49 1.263
+++ src/sys/net/if.h 2018/07/03 03:37:03 1.264
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: if.h,v 1.263 2018/06/21 10:37:49 knakahara Exp $ */ 1/* $NetBSD: if.h,v 1.264 2018/07/03 03:37:03 ozaki-r Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc. 4 * Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by William Studenmund and Jason R. Thorpe. 8 * by William Studenmund and Jason R. Thorpe.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -1080,26 +1080,27 @@ void if_register(struct ifnet *); @@ -1080,26 +1080,27 @@ void if_register(struct ifnet *);
1080int if_attach(struct ifnet *); /* Deprecated. Use if_initialize and if_register */ 1080int if_attach(struct ifnet *); /* Deprecated. Use if_initialize and if_register */
1081void if_attachdomain(void); 1081void if_attachdomain(void);
1082void if_deactivate(struct ifnet *); 1082void if_deactivate(struct ifnet *);
1083bool if_is_deactivated(const struct ifnet *); 1083bool if_is_deactivated(const struct ifnet *);
1084void if_purgeaddrs(struct ifnet *, int, void (*)(struct ifaddr *)); 1084void if_purgeaddrs(struct ifnet *, int, void (*)(struct ifaddr *));
1085void if_detach(struct ifnet *); 1085void if_detach(struct ifnet *);
1086void if_down(struct ifnet *); 1086void if_down(struct ifnet *);
1087void if_down_locked(struct ifnet *); 1087void if_down_locked(struct ifnet *);
1088void if_link_state_change(struct ifnet *, int); 1088void if_link_state_change(struct ifnet *, int);
1089void if_link_state_change_softint(struct ifnet *, int); 1089void if_link_state_change_softint(struct ifnet *, int);
1090void if_up(struct ifnet *); 1090void if_up(struct ifnet *);
1091void ifinit(void); 1091void ifinit(void);
1092void ifinit1(void); 1092void ifinit1(void);
 1093void ifinit_post(void);
1093int ifaddrpref_ioctl(struct socket *, u_long, void *, struct ifnet *); 1094int ifaddrpref_ioctl(struct socket *, u_long, void *, struct ifnet *);
1094extern int (*ifioctl)(struct socket *, u_long, void *, struct lwp *); 1095extern int (*ifioctl)(struct socket *, u_long, void *, struct lwp *);
1095int ifioctl_common(struct ifnet *, u_long, void *); 1096int ifioctl_common(struct ifnet *, u_long, void *);
1096int ifpromisc(struct ifnet *, int); 1097int ifpromisc(struct ifnet *, int);
1097int ifpromisc_locked(struct ifnet *, int); 1098int ifpromisc_locked(struct ifnet *, int);
1098int if_addr_init(ifnet_t *, struct ifaddr *, bool); 1099int if_addr_init(ifnet_t *, struct ifaddr *, bool);
1099int if_do_dad(struct ifnet *); 1100int if_do_dad(struct ifnet *);
1100int if_mcast_op(ifnet_t *, const unsigned long, const struct sockaddr *); 1101int if_mcast_op(ifnet_t *, const unsigned long, const struct sockaddr *);
1101int if_flags_set(struct ifnet *, const short); 1102int if_flags_set(struct ifnet *, const short);
1102int if_clone_list(int, char *, int *); 1103int if_clone_list(int, char *, int *);
1103 1104
1104struct ifnet *ifunit(const char *); 1105struct ifnet *ifunit(const char *);
1105struct ifnet *if_get(const char *, struct psref *); 1106struct ifnet *if_get(const char *, struct psref *);

cvs diff -r1.9 -r1.10 src/sys/rump/net/lib/libnet/net_component.c (expand / switch to unified diff)

--- src/sys/rump/net/lib/libnet/net_component.c 2017/02/16 08:39:10 1.9
+++ src/sys/rump/net/lib/libnet/net_component.c 2018/07/03 03:37:03 1.10
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: net_component.c,v 1.9 2017/02/16 08:39:10 knakahara Exp $ */ 1/* $NetBSD: net_component.c,v 1.10 2018/07/03 03:37:03 ozaki-r Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2009 Antti Kantee. All Rights Reserved. 4 * Copyright (c) 2009 Antti Kantee. All Rights Reserved.
5 * 5 *
6 * Development of this software was supported by The Nokia Foundation 6 * Development of this software was supported by The Nokia Foundation
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
11 * 1. Redistributions of source code must retain the above copyright 11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer. 12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright 13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the 14 * notice, this list of conditions and the following disclaimer in the
@@ -18,27 +18,27 @@ @@ -18,27 +18,27 @@
18 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE. 27 * SUCH DAMAGE.
28 */ 28 */
29 29
30#include <sys/cdefs.h> 30#include <sys/cdefs.h>
31__KERNEL_RCSID(0, "$NetBSD: net_component.c,v 1.9 2017/02/16 08:39:10 knakahara Exp $"); 31__KERNEL_RCSID(0, "$NetBSD: net_component.c,v 1.10 2018/07/03 03:37:03 ozaki-r Exp $");
32 32
33#include <sys/param.h> 33#include <sys/param.h>
34#include <sys/domain.h> 34#include <sys/domain.h>
35#include <sys/protosw.h> 35#include <sys/protosw.h>
36 36
37#include <net/if.h> 37#include <net/if.h>
38#include <net/if_llatbl.h> 38#include <net/if_llatbl.h>
39#include <net/if_l2tp.h> 39#include <net/if_l2tp.h>
40#include <net/route.h> 40#include <net/route.h>
41 41
42#include <rump-sys/kern.h> 42#include <rump-sys/kern.h>
43 43
44RUMP_COMPONENT(RUMP_COMPONENT_NET) 44RUMP_COMPONENT(RUMP_COMPONENT_NET)
@@ -55,15 +55,16 @@ RUMP_COMPONENT(RUMP_COMPONENT_NET_ROUTE) @@ -55,15 +55,16 @@ RUMP_COMPONENT(RUMP_COMPONENT_NET_ROUTE)
55 extern struct domain compat_50_routedomain; 55 extern struct domain compat_50_routedomain;
56#endif 56#endif
57 57
58 domain_attach(&linkdomain); 58 domain_attach(&linkdomain);
59 domain_attach(&routedomain); 59 domain_attach(&routedomain);
60#ifdef COMPAT_50 60#ifdef COMPAT_50
61 domain_attach(&compat_50_routedomain); 61 domain_attach(&compat_50_routedomain);
62#endif 62#endif
63} 63}
64 64
65RUMP_COMPONENT(RUMP_COMPONENT_NET_IF) 65RUMP_COMPONENT(RUMP_COMPONENT_NET_IF)
66{ 66{
67 67
 68 ifinit_post();
68 loopinit(); 69 loopinit();
69} 70}