| version 1.82, 2006/01/23 23:01:40 |
version 1.83, 2006/03/05 23:47:08 |
| Line 129 static int ip6qmaxlen = IFQ_MAXLEN; |
|
| Line 129 static int ip6qmaxlen = IFQ_MAXLEN; |
|
| struct in6_ifaddr *in6_ifaddr; |
struct in6_ifaddr *in6_ifaddr; |
| struct ifqueue ip6intrq; |
struct ifqueue ip6intrq; |
| |
|
| |
extern struct callout in6_tmpaddrtimer_ch; |
| |
|
| int ip6_forward_srcrt; /* XXX */ |
int ip6_forward_srcrt; /* XXX */ |
| int ip6_sourcecheck; /* XXX */ |
int ip6_sourcecheck; /* XXX */ |
| int ip6_sourcecheck_interval; /* XXX */ |
int ip6_sourcecheck_interval; /* XXX */ |
|
|
| addrsel_policy_init(); |
addrsel_policy_init(); |
| nd6_init(); |
nd6_init(); |
| frag6_init(); |
frag6_init(); |
| |
ip6_desync_factor = arc4random() % MAX_TEMP_DESYNC_FACTOR; |
| |
|
| ip6_init2((void *)0); |
ip6_init2((void *)0); |
| |
|
| Line 192 ip6_init2(dummy) |
|
| Line 195 ip6_init2(dummy) |
|
| /* nd6_timer_init */ |
/* nd6_timer_init */ |
| callout_init(&nd6_timer_ch); |
callout_init(&nd6_timer_ch); |
| callout_reset(&nd6_timer_ch, hz, nd6_timer, NULL); |
callout_reset(&nd6_timer_ch, hz, nd6_timer, NULL); |
| |
|
| |
/* timer for regeneranation of temporary addresses randomize ID */ |
| |
callout_init(&in6_tmpaddrtimer_ch); |
| |
callout_reset(&in6_tmpaddrtimer_ch, |
| |
(ip6_temp_preferred_lifetime - ip6_desync_factor - |
| |
ip6_temp_regen_advance) * hz, |
| |
in6_tmpaddrtimer, NULL); |
| } |
} |
| |
|
| /* |
/* |
|
|
| splx(s); |
splx(s); |
| if (m == 0) |
if (m == 0) |
| return; |
return; |
| |
/* drop the packet if IPv6 operation is disabled on the IF */ |
| |
if ((ND_IFINFO(m->m_pkthdr.rcvif)->flags & ND6_IFF_IFDISABLED)) { |
| |
m_freem(m); |
| |
return; |
| |
} |
| ip6_input(m); |
ip6_input(m); |
| } |
} |
| } |
} |
|
|
| if (ip6->ip6_plen == 0 && plen == 0) { |
if (ip6->ip6_plen == 0 && plen == 0) { |
| /* |
/* |
| * Note that if a valid jumbo payload option is |
* Note that if a valid jumbo payload option is |
| * contained, ip6_hoptops_input() must set a valid |
* contained, ip6_hopopts_input() must set a valid |
| * (non-zero) payload length to the variable plen. |
* (non-zero) payload length to the variable plen. |
| */ |
*/ |
| ip6stat.ip6s_badoptions++; |
ip6stat.ip6s_badoptions++; |
| Line 1337 ip6_nexthdr(m, off, proto, nxtp) |
|
| Line 1352 ip6_nexthdr(m, off, proto, nxtp) |
|
| |
|
| switch (proto) { |
switch (proto) { |
| case IPPROTO_IPV6: |
case IPPROTO_IPV6: |
| |
/* do not chase beyond intermediate IPv6 headers */ |
| |
if (off != 0) |
| |
return -1; |
| if (m->m_pkthdr.len < off + sizeof(ip6)) |
if (m->m_pkthdr.len < off + sizeof(ip6)) |
| return -1; |
return -1; |
| m_copydata(m, off, sizeof(ip6), (caddr_t)&ip6); |
m_copydata(m, off, sizeof(ip6), (caddr_t)&ip6); |
| Line 1696 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| Line 1714 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| #endif /* IPNOPRIVPORTS */ |
#endif /* IPNOPRIVPORTS */ |
| sysctl_createv(clog, 0, NULL, NULL, |
sysctl_createv(clog, 0, NULL, NULL, |
| CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "use_tempaddr", |
| |
SYSCTL_DESCR("Use temporary address"), |
| |
NULL, 0, &ip6_use_tempaddr, 0, |
| |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| |
CTL_CREATE, CTL_EOL); |
| |
sysctl_createv(clog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "temppltime", |
| |
SYSCTL_DESCR("preferred lifetime of a temporary address"), |
| |
NULL, 0, &ip6_temp_preferred_lifetime, 0, |
| |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| |
CTL_CREATE, CTL_EOL); |
| |
sysctl_createv(clog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "tempvltime", |
| |
SYSCTL_DESCR("valid lifetime of a temporary address"), |
| |
NULL, 0, &ip6_temp_valid_lifetime, 0, |
| |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| |
CTL_CREATE, CTL_EOL); |
| |
sysctl_createv(clog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| CTLTYPE_INT, "maxfrags", |
CTLTYPE_INT, "maxfrags", |
| SYSCTL_DESCR("Maximum fragments in reassembly queue"), |
SYSCTL_DESCR("Maximum fragments in reassembly queue"), |
| NULL, 0, &ip6_maxfrags, 0, |
NULL, 0, &ip6_maxfrags, 0, |
| Line 1715 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| Line 1754 SYSCTL_SETUP(sysctl_net_inet6_ip6_setup, |
|
| NULL, 0, &ip6_use_defzone, 0, |
NULL, 0, &ip6_use_defzone, 0, |
| CTL_NET, PF_INET6, IPPROTO_IPV6, |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| IPV6CTL_USE_DEFAULTZONE, CTL_EOL); |
IPV6CTL_USE_DEFAULTZONE, CTL_EOL); |
| |
sysctl_createv(clog, 0, NULL, NULL, |
| |
CTLFLAG_PERMANENT|CTLFLAG_READWRITE, |
| |
CTLTYPE_INT, "mcast_pmtu", |
| |
SYSCTL_DESCR("Enable pMTU discovery for multicast packet"), |
| |
NULL, 0, &ip6_mcast_pmtu, 0, |
| |
CTL_NET, PF_INET6, IPPROTO_IPV6, |
| |
CTL_CREATE, CTL_EOL); |
| } |
} |