svn commit: r356490 - stable/12/sys/netinet6
Bjoern A. Zeeb
bz at FreeBSD.org
Wed Jan 8 15:50:46 UTC 2020
Author: bz
Date: Wed Jan 8 15:50:45 2020
New Revision: 356490
URL: https://svnweb.freebsd.org/changeset/base/356490
Log:
MFC r344301 (by thj):
When dropping a fragment queue, account for the number of fragments in the
queue. This improves accounting between the number of fragments received and
the number of fragments dropped.
Modified:
stable/12/sys/netinet6/frag6.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/netinet6/frag6.c
==============================================================================
--- stable/12/sys/netinet6/frag6.c Wed Jan 8 15:41:04 2020 (r356489)
+++ stable/12/sys/netinet6/frag6.c Wed Jan 8 15:50:45 2020 (r356490)
@@ -672,7 +672,7 @@ insert:
af6 = af6->ip6af_down) {
if (af6->ip6af_off != plen) {
if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) {
- IP6STAT_INC(ip6s_fragdropped);
+ IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag);
frag6_freef(q6, bucket);
}
IP6QB_UNLOCK(bucket);
@@ -682,7 +682,7 @@ insert:
}
if (af6->ip6af_up->ip6af_mff) {
if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) {
- IP6STAT_INC(ip6s_fragdropped);
+ IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag);
frag6_freef(q6, bucket);
}
IP6QB_UNLOCK(bucket);
@@ -826,7 +826,8 @@ frag6_slowtimo(void)
--q6->ip6q_ttl;
q6 = q6->ip6q_next;
if (q6->ip6q_prev->ip6q_ttl == 0) {
- IP6STAT_INC(ip6s_fragtimeout);
+ IP6STAT_ADD(ip6s_fragtimeout,
+ q6->ip6q_prev->ip6q_nfrag);
/* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */
frag6_freef(q6->ip6q_prev, bucket);
}
@@ -844,7 +845,8 @@ frag6_slowtimo(void)
(V_ip6_maxfragpackets > 0 &&
V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) &&
head->ip6q_prev != head) {
- IP6STAT_INC(ip6s_fragoverflow);
+ IP6STAT_ADD(ip6s_fragoverflow,
+ q6->ip6q_prev->ip6q_nfrag);
/* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */
frag6_freef(head->ip6q_prev, bucket);
}
@@ -861,7 +863,8 @@ frag6_slowtimo(void)
IP6QB_LOCK(bucket);
head = IP6QB_HEAD(bucket);
if (head->ip6q_prev != head) {
- IP6STAT_INC(ip6s_fragoverflow);
+ IP6STAT_ADD(ip6s_fragoverflow,
+ q6->ip6q_prev->ip6q_nfrag);
/* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */
frag6_freef(head->ip6q_prev, bucket);
}
More information about the svn-src-stable
mailing list