diff options
author | andre <andre@FreeBSD.org> | 2013-08-19 10:34:10 +0000 |
---|---|---|
committer | andre <andre@FreeBSD.org> | 2013-08-19 10:34:10 +0000 |
commit | 1b3e4b45e506f2e415262de0bfe93bf190033f2e (patch) | |
tree | 8aa2057a009c2e10ae622896579df4e742a490a7 /sys | |
parent | b1d72163135887489fa1e210e5c393aff5c24586 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/netinet/ip_input.c | 6 | ||||
-rw-r--r-- | sys/netinet/ip_var.h | 1 |
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 |