svn commit: r254518 - head/sys/netinet
Andre Oppermann
andre at FreeBSD.org
Mon Aug 19 10:34:11 UTC 2013
Author: andre
Date: Mon Aug 19 10:34:10 2013
New Revision: 254518
URL: http://svnweb.freebsd.org/changeset/base/254518
Log:
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
Modified:
head/sys/netinet/ip_input.c
head/sys/netinet/ip_var.h
Modified: head/sys/netinet/ip_input.c
==============================================================================
--- head/sys/netinet/ip_input.c Mon Aug 19 10:30:15 2013 (r254517)
+++ head/sys/netinet/ip_input.c Mon Aug 19 10:34:10 2013 (r254518)
@@ -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);
Modified: head/sys/netinet/ip_var.h
==============================================================================
--- head/sys/netinet/ip_var.h Mon Aug 19 10:30:15 2013 (r254517)
+++ head/sys/netinet/ip_var.h Mon Aug 19 10:34:10 2013 (r254518)
@@ -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
More information about the svn-src-all
mailing list