Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet6/ip6_output.c
Show First 20 Lines • Show All 1,171 Lines • ▼ Show 20 Lines | if (dontfrag || (!alwaysfrag && tlen <= mtu)) { /* Cases 1-a and 2-a. */ | ||||
ip6 = mtod(m, struct ip6_hdr *); | ip6 = mtod(m, struct ip6_hdr *); | ||||
ia6 = in6_ifawithifp(ifp, &ip6->ip6_src); | ia6 = in6_ifawithifp(ifp, &ip6->ip6_src); | ||||
if (ia6) { | if (ia6) { | ||||
/* Record statistics for this interface address. */ | /* Record statistics for this interface address. */ | ||||
counter_u64_add(ia6->ia_ifa.ifa_opackets, 1); | counter_u64_add(ia6->ia_ifa.ifa_opackets, 1); | ||||
counter_u64_add(ia6->ia_ifa.ifa_obytes, | counter_u64_add(ia6->ia_ifa.ifa_obytes, | ||||
m->m_pkthdr.len); | m->m_pkthdr.len); | ||||
ifa_free(&ia6->ia_ifa); | |||||
} | } | ||||
error = ip6_output_send(inp, ifp, origifp, m, dst, ro, | error = ip6_output_send(inp, ifp, origifp, m, dst, ro, | ||||
(flags & IP_NO_SND_TAG_RL) ? false : true); | (flags & IP_NO_SND_TAG_RL) ? false : true); | ||||
goto done; | goto done; | ||||
} | } | ||||
/* Try to fragment the packet. Cases 1-b and 3. */ | /* Try to fragment the packet. Cases 1-b and 3. */ | ||||
if (mtu < IPV6_MMTU) { | if (mtu < IPV6_MMTU) { | ||||
▲ Show 20 Lines • Show All 2,189 Lines • Show Last 20 Lines |