diff options
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/frag6.c | 6 | ||||
-rw-r--r-- | sys/netinet6/icmp6.c | 4 | ||||
-rw-r--r-- | sys/netinet6/in6_gif.c | 6 | ||||
-rw-r--r-- | sys/netinet6/in6_mcast.c | 5 | ||||
-rw-r--r-- | sys/netinet6/in6_proto.c | 2 | ||||
-rw-r--r-- | sys/netinet6/in6_rmx.c | 4 | ||||
-rw-r--r-- | sys/netinet6/in6_src.c | 4 | ||||
-rw-r--r-- | sys/netinet6/ip6_gre.c | 2 | ||||
-rw-r--r-- | sys/netinet6/ip6_input.c | 2 | ||||
-rw-r--r-- | sys/netinet6/ip6_mroute.c | 6 | ||||
-rw-r--r-- | sys/netinet6/mld6.c | 10 | ||||
-rw-r--r-- | sys/netinet6/nd6.c | 6 | ||||
-rw-r--r-- | sys/netinet6/nd6_nbr.c | 8 | ||||
-rw-r--r-- | sys/netinet6/nd6_rtr.c | 2 | ||||
-rw-r--r-- | sys/netinet6/scope6.c | 2 | ||||
-rw-r--r-- | sys/netinet6/send.c | 2 | ||||
-rw-r--r-- | sys/netinet6/udp6_usrreq.c | 28 |
17 files changed, 60 insertions, 39 deletions
diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c index 0d243f923a96..630b71c1934b 100644 --- a/sys/netinet6/frag6.c +++ b/sys/netinet6/frag6.c @@ -75,9 +75,9 @@ static struct mtx ip6qlock; /* * These fields all protected by ip6qlock. */ -static VNET_DEFINE(u_int, frag6_nfragpackets); -static VNET_DEFINE(u_int, frag6_nfrags); -static VNET_DEFINE(struct ip6q, ip6q); /* ip6 reassemble queue */ +VNET_DEFINE_STATIC(u_int, frag6_nfragpackets); +VNET_DEFINE_STATIC(u_int, frag6_nfrags); +VNET_DEFINE_STATIC(struct ip6q, ip6q); /* ip6 reassemble queue */ #define V_frag6_nfragpackets VNET(frag6_nfragpackets) #define V_frag6_nfrags VNET(frag6_nfrags) diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c index 4b6111c143dc..0bb5636602ff 100644 --- a/sys/netinet6/icmp6.c +++ b/sys/netinet6/icmp6.c @@ -124,8 +124,8 @@ VNET_PCPUSTAT_SYSUNINIT(icmp6stat); VNET_DECLARE(struct inpcbinfo, ripcbinfo); VNET_DECLARE(struct inpcbhead, ripcb); VNET_DECLARE(int, icmp6errppslim); -static VNET_DEFINE(int, icmp6errpps_count) = 0; -static VNET_DEFINE(struct timeval, icmp6errppslim_last); +VNET_DEFINE_STATIC(int, icmp6errpps_count) = 0; +VNET_DEFINE_STATIC(struct timeval, icmp6errppslim_last); VNET_DECLARE(int, icmp6_nodeinfo); #define V_ripcbinfo VNET(ripcbinfo) diff --git a/sys/netinet6/in6_gif.c b/sys/netinet6/in6_gif.c index 0293237ffcb7..b7c964c2cf3d 100644 --- a/sys/netinet6/in6_gif.c +++ b/sys/netinet6/in6_gif.c @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); #include <net/if_gif.h> #define GIF_HLIM 30 -static VNET_DEFINE(int, ip6_gif_hlim) = GIF_HLIM; +VNET_DEFINE_STATIC(int, ip6_gif_hlim) = GIF_HLIM; #define V_ip6_gif_hlim VNET(ip6_gif_hlim) SYSCTL_DECL(_net_inet6_ip6); @@ -86,8 +86,8 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_GIF_HLIM, gifhlim, * We keep interfaces in a hash table using src+dst as key. * Interfaces with GIF_IGNORE_SOURCE flag are linked into plain list. */ -static VNET_DEFINE(struct gif_list *, ipv6_hashtbl) = NULL; -static VNET_DEFINE(struct gif_list, ipv6_list) = CK_LIST_HEAD_INITIALIZER(); +VNET_DEFINE_STATIC(struct gif_list *, ipv6_hashtbl) = NULL; +VNET_DEFINE_STATIC(struct gif_list, ipv6_list) = CK_LIST_HEAD_INITIALIZER(); #define V_ipv6_hashtbl VNET(ipv6_hashtbl) #define V_ipv6_list VNET(ipv6_list) diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c index 091d4d31b347..f7eb57effb04 100644 --- a/sys/netinet6/in6_mcast.c +++ b/sys/netinet6/in6_mcast.c @@ -562,8 +562,13 @@ static void in6m_init(void) taskqgroup_config_gtask_init(NULL, &free_gtask, in6m_release_task, "in6m release task"); } +#ifdef EARLY_AP_STARTUP SYSINIT(in6m_init, SI_SUB_SMP + 1, SI_ORDER_FIRST, in6m_init, NULL); +#else +SYSINIT(in6m_init, SI_SUB_ROOT_CONF - 1, SI_ORDER_SECOND, + in6m_init, NULL); +#endif void diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c index 7a7f0c39f7ee..e426f0e0db68 100644 --- a/sys/netinet6/in6_proto.c +++ b/sys/netinet6/in6_proto.c @@ -171,7 +171,7 @@ struct protosw inet6sw[] = { .pr_type = SOCK_STREAM, .pr_domain = &inet6domain, .pr_protocol = IPPROTO_TCP, - .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD|PR_LISTEN, + .pr_flags = PR_CONNREQUIRED|PR_IMPLOPCL|PR_WANTRCVD|PR_LISTEN, .pr_input = tcp6_input, .pr_ctlinput = tcp6_ctlinput, .pr_ctloutput = tcp_ctloutput, diff --git a/sys/netinet6/in6_rmx.c b/sys/netinet6/in6_rmx.c index 728e53ef4645..0201ab982081 100644 --- a/sys/netinet6/in6_rmx.c +++ b/sys/netinet6/in6_rmx.c @@ -159,7 +159,7 @@ struct mtuex_arg { struct rib_head *rnh; time_t nextstop; }; -static VNET_DEFINE(struct callout, rtq_mtutimer); +VNET_DEFINE_STATIC(struct callout, rtq_mtutimer); #define V_rtq_mtutimer VNET(rtq_mtutimer) static int @@ -209,7 +209,7 @@ in6_mtutimo(void *rock) /* * Initialize our routing tree. */ -static VNET_DEFINE(int, _in6_rt_was_here); +VNET_DEFINE_STATIC(int, _in6_rt_was_here); #define V__in6_rt_was_here VNET(_in6_rt_was_here) int diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c index a293afabfd45..e14f0d46176b 100644 --- a/sys/netinet6/in6_src.c +++ b/sys/netinet6/in6_src.c @@ -127,7 +127,7 @@ static struct sx addrsel_sxlock; #define ADDRSEL_XUNLOCK() sx_xunlock(&addrsel_sxlock) #define ADDR_LABEL_NOTAPP (-1) -static VNET_DEFINE(struct in6_addrpolicy, defaultaddrpolicy); +VNET_DEFINE_STATIC(struct in6_addrpolicy, defaultaddrpolicy); #define V_defaultaddrpolicy VNET(defaultaddrpolicy) VNET_DEFINE(int, ip6_prefer_tempaddr) = 0; @@ -1094,7 +1094,7 @@ struct addrsel_policyent { TAILQ_HEAD(addrsel_policyhead, addrsel_policyent); -static VNET_DEFINE(struct addrsel_policyhead, addrsel_policytab); +VNET_DEFINE_STATIC(struct addrsel_policyhead, addrsel_policytab); #define V_addrsel_policytab VNET(addrsel_policytab) static void diff --git a/sys/netinet6/ip6_gre.c b/sys/netinet6/ip6_gre.c index 48aa8cb03ac2..8c60eb5918c4 100644 --- a/sys/netinet6/ip6_gre.c +++ b/sys/netinet6/ip6_gre.c @@ -65,7 +65,7 @@ SYSCTL_DECL(_net_inet6_ip6); SYSCTL_INT(_net_inet6_ip6, OID_AUTO, grehlim, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_gre_hlim), 0, "Default hop limit for encapsulated packets"); -static VNET_DEFINE(struct gre_list *, ipv6_hashtbl) = NULL; +VNET_DEFINE_STATIC(struct gre_list *, ipv6_hashtbl) = NULL; #define V_ipv6_hashtbl VNET(ipv6_hashtbl) #define GRE_HASH(src, dst) (V_ipv6_hashtbl[\ in6_gre_hashval((src), (dst)) & (GRE_HASH_SIZE - 1)]) diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index 87788cb3b6d0..84bf56fc3ac2 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -1267,7 +1267,7 @@ ip6_savecontrol_v4(struct inpcb *inp, struct mbuf *m, struct mbuf **mp, mbuf_tstmp2timespec(m, &t.ts); getboottimebin(&boottimebin); bintime2timespec(&boottimebin, &ts1); - timespecadd(&t.ts, &ts1); + timespecadd(&t.ts, &ts1, &t.ts); } else { nanotime(&t.ts); } diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index b4a7a3adda5b..9bbcc9ee85fa 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -150,7 +150,7 @@ static const struct encap_config ipv6_encap_cfg = { }; -static VNET_DEFINE(int, ip6_mrouter_ver) = 0; +VNET_DEFINE_STATIC(int, ip6_mrouter_ver) = 0; #define V_ip6_mrouter_ver VNET(ip6_mrouter_ver) SYSCTL_DECL(_net_inet6); @@ -235,7 +235,7 @@ static struct mtx mif6_mtx; #define MIF6_LOCK_DESTROY() mtx_destroy(&mif6_mtx) #ifdef MRT6DEBUG -static VNET_DEFINE(u_int, mrt6debug) = 0; /* debug level */ +VNET_DEFINE_STATIC(u_int, mrt6debug) = 0; /* debug level */ #define V_mrt6debug VNET(mrt6debug) #define DEBUG_MFC 0x02 #define DEBUG_FORWARD 0x04 @@ -288,7 +288,7 @@ SYSCTL_STRUCT(_net_inet6_pim, PIM6CTL_STATS, stats, CTLFLAG_RW, "PIM Statistics (struct pim6stat, netinet6/pim6_var.h)"); #define PIM6STAT_INC(name) pim6stat.name += 1 -static VNET_DEFINE(int, pim6); +VNET_DEFINE_STATIC(int, pim6); #define V_pim6 VNET(pim6) /* diff --git a/sys/netinet6/mld6.c b/sys/netinet6/mld6.c index 015ec39806dc..3d7f59569ce2 100644 --- a/sys/netinet6/mld6.c +++ b/sys/netinet6/mld6.c @@ -207,11 +207,11 @@ static MALLOC_DEFINE(M_MLD, "mld", "mld state"); /* * VIMAGE-wide globals. */ -static VNET_DEFINE(struct timeval, mld_gsrdelay) = {10, 0}; -static VNET_DEFINE(LIST_HEAD(, mld_ifsoftc), mli_head); -static VNET_DEFINE(int, interface_timers_running6); -static VNET_DEFINE(int, state_change_timers_running6); -static VNET_DEFINE(int, current_state_timers_running6); +VNET_DEFINE_STATIC(struct timeval, mld_gsrdelay) = {10, 0}; +VNET_DEFINE_STATIC(LIST_HEAD(, mld_ifsoftc), mli_head); +VNET_DEFINE_STATIC(int, interface_timers_running6); +VNET_DEFINE_STATIC(int, state_change_timers_running6); +VNET_DEFINE_STATIC(int, current_state_timers_running6); #define V_mld_gsrdelay VNET(mld_gsrdelay) #define V_mli_head VNET(mli_head) diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index f713759b76cc..388e48879b17 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -98,11 +98,11 @@ VNET_DEFINE(int, nd6_gctimer) = (60 * 60 * 24); /* 1 day: garbage * collection timer */ /* preventing too many loops in ND option parsing */ -static VNET_DEFINE(int, nd6_maxndopt) = 10; /* max # of ND options allowed */ +VNET_DEFINE_STATIC(int, nd6_maxndopt) = 10; /* max # of ND options allowed */ VNET_DEFINE(int, nd6_maxnudhint) = 0; /* max # of subsequent upper * layer hints */ -static VNET_DEFINE(int, nd6_maxqueuelen) = 1; /* max pkts cached in unresolved +VNET_DEFINE_STATIC(int, nd6_maxqueuelen) = 1; /* max pkts cached in unresolved * ND entries */ #define V_nd6_maxndopt VNET(nd6_maxndopt) #define V_nd6_maxqueuelen VNET(nd6_maxqueuelen) @@ -142,7 +142,7 @@ static int nd6_resolve_slow(struct ifnet *, int, struct mbuf *, static int nd6_need_cache(struct ifnet *); -static VNET_DEFINE(struct callout, nd6_slowtimo_ch); +VNET_DEFINE_STATIC(struct callout, nd6_slowtimo_ch); #define V_nd6_slowtimo_ch VNET(nd6_slowtimo_ch) VNET_DEFINE(struct callout, nd6_timer_ch); diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index 39a8ab0701bd..a3d7579b7c42 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -99,7 +99,7 @@ static void nd6_na_output_fib(struct ifnet *, const struct in6_addr *, static void nd6_ns_output_fib(struct ifnet *, const struct in6_addr *, const struct in6_addr *, const struct in6_addr *, uint8_t *, u_int); -static VNET_DEFINE(int, dad_enhanced) = 1; +VNET_DEFINE_STATIC(int, dad_enhanced) = 1; #define V_dad_enhanced VNET(dad_enhanced) SYSCTL_DECL(_net_inet6_ip6); @@ -107,7 +107,7 @@ SYSCTL_INT(_net_inet6_ip6, OID_AUTO, dad_enhanced, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(dad_enhanced), 0, "Enable Enhanced DAD, which adds a random nonce to NS messages for DAD."); -static VNET_DEFINE(int, dad_maxtry) = 15; /* max # of *tries* to +VNET_DEFINE_STATIC(int, dad_maxtry) = 15; /* max # of *tries* to transmit DAD packet */ #define V_dad_maxtry VNET(dad_maxtry) @@ -1120,8 +1120,8 @@ struct dadq { bool dad_ondadq; /* on dadq? Protected by DADQ_WLOCK. */ }; -static VNET_DEFINE(TAILQ_HEAD(, dadq), dadq); -static VNET_DEFINE(struct rwlock, dad_rwlock); +VNET_DEFINE_STATIC(TAILQ_HEAD(, dadq), dadq); +VNET_DEFINE_STATIC(struct rwlock, dad_rwlock); #define V_dadq VNET(dadq) #define V_dad_rwlock VNET(dad_rwlock) diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 4fa81cb750b3..ec1aa13730ca 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -94,7 +94,7 @@ static int rt6_deleteroute(const struct rtentry *, void *); VNET_DECLARE(int, nd6_recalc_reachtm_interval); #define V_nd6_recalc_reachtm_interval VNET(nd6_recalc_reachtm_interval) -static VNET_DEFINE(struct ifnet *, nd6_defifp); +VNET_DEFINE_STATIC(struct ifnet *, nd6_defifp); VNET_DEFINE(int, nd6_defifindex); #define V_nd6_defifp VNET(nd6_defifp) diff --git a/sys/netinet6/scope6.c b/sys/netinet6/scope6.c index 3f65e3765efb..092910da26fb 100644 --- a/sys/netinet6/scope6.c +++ b/sys/netinet6/scope6.c @@ -76,7 +76,7 @@ static struct mtx scope6_lock; #define SCOPE6_UNLOCK() mtx_unlock(&scope6_lock) #define SCOPE6_LOCK_ASSERT() mtx_assert(&scope6_lock, MA_OWNED) -static VNET_DEFINE(struct scope6_id, sid_default); +VNET_DEFINE_STATIC(struct scope6_id, sid_default); #define V_sid_default VNET(sid_default) #define SID(ifp) \ diff --git a/sys/netinet6/send.c b/sys/netinet6/send.c index e63098f75ff6..bc9880c82267 100644 --- a/sys/netinet6/send.c +++ b/sys/netinet6/send.c @@ -64,7 +64,7 @@ static MALLOC_DEFINE(M_SEND, "send", "Secure Neighbour Discovery"); /* * The socket used to communicate with the SeND daemon. */ -static VNET_DEFINE(struct socket *, send_so); +VNET_DEFINE_STATIC(struct socket *, send_so); #define V_send_so VNET(send_so) u_long send_sendspace = 8 * (1024 + sizeof(struct sockaddr_send)); diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index 38c6d9cd4a6f..08478d65e342 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -388,8 +388,12 @@ udp6_input(struct mbuf **mp, int *offp, int proto) NULL) { INP_RLOCK(last); if (__predict_true(last->inp_flags2 & INP_FREED) == 0) { - UDP_PROBE(receive, NULL, last, ip6, - last, uh); + if (nxt == IPPROTO_UDPLITE) + UDPLITE_PROBE(receive, NULL, last, + ip6, last, uh); + else + UDP_PROBE(receive, NULL, last, + ip6, last, uh); if (udp6_append(last, n, off, fromsa)) goto inp_lost; } @@ -422,7 +426,10 @@ udp6_input(struct mbuf **mp, int *offp, int proto) } INP_RLOCK(last); if (__predict_true(last->inp_flags2 & INP_FREED) == 0) { - UDP_PROBE(receive, NULL, last, ip6, last, uh); + if (nxt == IPPROTO_UDPLITE) + UDPLITE_PROBE(receive, NULL, last, ip6, last, uh); + else + UDP_PROBE(receive, NULL, last, ip6, last, uh); if (udp6_append(last, m, off, fromsa) == 0) INP_RUNLOCK(last); } else @@ -483,7 +490,10 @@ udp6_input(struct mbuf **mp, int *offp, int proto) ip6_sprintf(ip6bufs, &ip6->ip6_src), ntohs(uh->uh_sport)); } - UDP_PROBE(receive, NULL, NULL, ip6, NULL, uh); + if (nxt == IPPROTO_UDPLITE) + UDPLITE_PROBE(receive, NULL, NULL, ip6, NULL, uh); + else + UDP_PROBE(receive, NULL, NULL, ip6, NULL, uh); UDPSTAT_INC(udps_noport); if (m->m_flags & M_MCAST) { printf("UDP6: M_MCAST is set in a unicast packet.\n"); @@ -504,7 +514,10 @@ udp6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } } - UDP_PROBE(receive, NULL, inp, ip6, inp, uh); + if (nxt == IPPROTO_UDPLITE) + UDPLITE_PROBE(receive, NULL, inp, ip6, inp, uh); + else + UDP_PROBE(receive, NULL, inp, ip6, inp, uh); if (udp6_append(inp, m, off, fromsa) == 0) INP_RUNLOCK(inp); return (IPPROTO_DONE); @@ -919,7 +932,10 @@ udp6_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr6, flags |= IP_NODEFAULTFLOWID; #endif - UDP_PROBE(send, NULL, inp, ip6, inp, udp6); + if (nxt == IPPROTO_UDPLITE) + UDPLITE_PROBE(send, NULL, inp, ip6, inp, udp6); + else + UDP_PROBE(send, NULL, inp, ip6, inp, udp6); UDPSTAT_INC(udps_opackets); error = ip6_output(m, optp, &inp->inp_route6, flags, inp->in6p_moptions, NULL, inp); |