summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2013-08-19 10:34:10 +0000
committerandre <andre@FreeBSD.org>2013-08-19 10:34:10 +0000
commit1b3e4b45e506f2e415262de0bfe93bf190033f2e (patch)
tree8aa2057a009c2e10ae622896579df4e742a490a7 /sys/netinet
parentb1d72163135887489fa1e210e5c393aff5c24586 (diff)
downloadFreeBSD-src-1b3e4b45e506f2e415262de0bfe93bf190033f2e.zip
FreeBSD-src-1b3e4b45e506f2e415262de0bfe93bf190033f2e.tar.gz
Move ip_reassemble()'s use of the global M_FRAG mbuf flag to a protocol layer
specific flag instead. The flag is only relevant while the packet stays in the IP reassembly queue. Discussed with: trociny, glebius
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/ip_input.c6
-rw-r--r--sys/netinet/ip_var.h1
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 219f362..2d84f28 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -911,9 +911,9 @@ found:
IPSTAT_INC(ips_toosmall); /* XXX */
goto dropfrag;
}
- m->m_flags |= M_FRAG;
+ m->m_flags |= M_IP_FRAG;
} else
- m->m_flags &= ~M_FRAG;
+ m->m_flags &= ~M_IP_FRAG;
ip->ip_off = htons(ntohs(ip->ip_off) << 3);
/*
@@ -1060,7 +1060,7 @@ found:
next += ntohs(GETIP(q)->ip_len);
}
/* Make sure the last packet didn't have the IP_MF flag */
- if (p->m_flags & M_FRAG) {
+ if (p->m_flags & M_IP_FRAG) {
if (fp->ipq_nfrags > V_maxfragsperpacket) {
IPSTAT_ADD(ips_fragdropped, fp->ipq_nfrags);
ip_freef(head, fp);
diff --git a/sys/netinet/ip_var.h b/sys/netinet/ip_var.h
index 1ac1bd2..80c60d6 100644
--- a/sys/netinet/ip_var.h
+++ b/sys/netinet/ip_var.h
@@ -167,6 +167,7 @@ void kmod_ipstat_dec(int statnum);
*/
#define M_FASTFWD_OURS M_PROTO1 /* changed dst to local */
#define M_IP_NEXTHOP M_PROTO2 /* explicit ip nexthop */
+#define M_IP_FRAG M_PROTO4 /* fragment reassembly */
#ifdef __NO_STRICT_ALIGNMENT
#define IP_HDR_ALIGNED_P(ip) 1
OpenPOWER on IntegriCloud