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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to