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@diff -r1.497 -r1.498 src/sys/kern/init_main.c
(ozaki-r)
--- 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. */ |
--- 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 | */ | |
278 | void | 278 | void | |
279 | ifinit(void) | 279 | ifinit(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() */ | |||
325 | void | |||
326 | ifinit_post(void) | |||
327 | { | |||
328 | ||||
329 | if_sysctl_setup(NULL); | |||
330 | } | |||
331 | ||||
326 | ifnet_t * | 332 | ifnet_t * | |
327 | if_alloc(u_char type) | 333 | if_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 | |||
332 | void | 338 | void | |
333 | if_free(ifnet_t *ifp) | 339 | if_free(ifnet_t *ifp) | |
334 | { | 340 | { | |
335 | kmem_free(ifp, sizeof(ifnet_t)); | 341 | kmem_free(ifp, sizeof(ifnet_t)); | |
336 | } | 342 | } | |
337 | 343 | |||
338 | void | 344 | void |
--- 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 *); | |||
1080 | int if_attach(struct ifnet *); /* Deprecated. Use if_initialize and if_register */ | 1080 | int if_attach(struct ifnet *); /* Deprecated. Use if_initialize and if_register */ | |
1081 | void if_attachdomain(void); | 1081 | void if_attachdomain(void); | |
1082 | void if_deactivate(struct ifnet *); | 1082 | void if_deactivate(struct ifnet *); | |
1083 | bool if_is_deactivated(const struct ifnet *); | 1083 | bool if_is_deactivated(const struct ifnet *); | |
1084 | void if_purgeaddrs(struct ifnet *, int, void (*)(struct ifaddr *)); | 1084 | void if_purgeaddrs(struct ifnet *, int, void (*)(struct ifaddr *)); | |
1085 | void if_detach(struct ifnet *); | 1085 | void if_detach(struct ifnet *); | |
1086 | void if_down(struct ifnet *); | 1086 | void if_down(struct ifnet *); | |
1087 | void if_down_locked(struct ifnet *); | 1087 | void if_down_locked(struct ifnet *); | |
1088 | void if_link_state_change(struct ifnet *, int); | 1088 | void if_link_state_change(struct ifnet *, int); | |
1089 | void if_link_state_change_softint(struct ifnet *, int); | 1089 | void if_link_state_change_softint(struct ifnet *, int); | |
1090 | void if_up(struct ifnet *); | 1090 | void if_up(struct ifnet *); | |
1091 | void ifinit(void); | 1091 | void ifinit(void); | |
1092 | void ifinit1(void); | 1092 | void ifinit1(void); | |
1093 | void ifinit_post(void); | |||
1093 | int ifaddrpref_ioctl(struct socket *, u_long, void *, struct ifnet *); | 1094 | int ifaddrpref_ioctl(struct socket *, u_long, void *, struct ifnet *); | |
1094 | extern int (*ifioctl)(struct socket *, u_long, void *, struct lwp *); | 1095 | extern int (*ifioctl)(struct socket *, u_long, void *, struct lwp *); | |
1095 | int ifioctl_common(struct ifnet *, u_long, void *); | 1096 | int ifioctl_common(struct ifnet *, u_long, void *); | |
1096 | int ifpromisc(struct ifnet *, int); | 1097 | int ifpromisc(struct ifnet *, int); | |
1097 | int ifpromisc_locked(struct ifnet *, int); | 1098 | int ifpromisc_locked(struct ifnet *, int); | |
1098 | int if_addr_init(ifnet_t *, struct ifaddr *, bool); | 1099 | int if_addr_init(ifnet_t *, struct ifaddr *, bool); | |
1099 | int if_do_dad(struct ifnet *); | 1100 | int if_do_dad(struct ifnet *); | |
1100 | int if_mcast_op(ifnet_t *, const unsigned long, const struct sockaddr *); | 1101 | int if_mcast_op(ifnet_t *, const unsigned long, const struct sockaddr *); | |
1101 | int if_flags_set(struct ifnet *, const short); | 1102 | int if_flags_set(struct ifnet *, const short); | |
1102 | int if_clone_list(int, char *, int *); | 1103 | int if_clone_list(int, char *, int *); | |
1103 | 1104 | |||
1104 | struct ifnet *ifunit(const char *); | 1105 | struct ifnet *ifunit(const char *); | |
1105 | struct ifnet *if_get(const char *, struct psref *); | 1106 | struct ifnet *if_get(const char *, struct psref *); |
--- 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 | |||
44 | RUMP_COMPONENT(RUMP_COMPONENT_NET) | 44 | RUMP_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 | |||
65 | RUMP_COMPONENT(RUMP_COMPONENT_NET_IF) | 65 | RUMP_COMPONENT(RUMP_COMPONENT_NET_IF) | |
66 | { | 66 | { | |
67 | 67 | |||
68 | ifinit_post(); | |||
68 | loopinit(); | 69 | loopinit(); | |
69 | } | 70 | } |