Lines 787-797
Link Here
|
787 |
IPSTAT_INC(ips_odropped); |
787 |
IPSTAT_INC(ips_odropped); |
788 |
goto done; |
788 |
goto done; |
789 |
} |
789 |
} |
790 |
/* make sure the flowid is the same for the fragmented mbufs */ |
790 |
/* make sure the packet header gets copied */ |
791 |
M_HASHTYPE_SET(m, M_HASHTYPE_GET(m0)); |
791 |
if (m_dup_pkthdr(m, m0, M_NOWAIT) == 0) { |
792 |
m->m_pkthdr.flowid = m0->m_pkthdr.flowid; |
792 |
m_free(m); |
793 |
/* copy multicast flag, if any */ |
793 |
error = ENOBUFS; |
794 |
m->m_flags |= (m0->m_flags & M_MCAST); |
794 |
IPSTAT_INC(ips_odropped); |
|
|
795 |
goto done; |
796 |
} |
795 |
/* |
797 |
/* |
796 |
* In the first mbuf, leave room for the link header, then |
798 |
* In the first mbuf, leave room for the link header, then |
797 |
* copy the original IP header including options. The payload |
799 |
* copy the original IP header including options. The payload |
Lines 821-831
Link Here
|
821 |
goto done; |
823 |
goto done; |
822 |
} |
824 |
} |
823 |
m->m_pkthdr.len = mhlen + len; |
825 |
m->m_pkthdr.len = mhlen + len; |
824 |
m->m_pkthdr.rcvif = NULL; |
|
|
825 |
#ifdef MAC |
826 |
#ifdef MAC |
826 |
mac_netinet_fragment(m0, m); |
827 |
mac_netinet_fragment(m0, m); |
827 |
#endif |
828 |
#endif |
828 |
m->m_pkthdr.csum_flags = m0->m_pkthdr.csum_flags; |
|
|
829 |
mhip->ip_off = htons(mhip->ip_off); |
829 |
mhip->ip_off = htons(mhip->ip_off); |
830 |
mhip->ip_sum = 0; |
830 |
mhip->ip_sum = 0; |
831 |
if (m->m_pkthdr.csum_flags & CSUM_IP & ~if_hwassist_flags) { |
831 |
if (m->m_pkthdr.csum_flags & CSUM_IP & ~if_hwassist_flags) { |