The flowid and hashtype should be copied from the originating packet
when fragmenting IP packets to preserve the order of the packets in a stream. Else the resulting fragments can be sent out of order when the hardware supports multiple transmit rings. Reviewed by: glebius @ MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
2bb086bf48
commit
609752f04f
@ -789,6 +789,10 @@ ip_fragment(struct ip *ip, struct mbuf **m_frag, int mtu,
|
||||
IPSTAT_INC(ips_odropped);
|
||||
goto done;
|
||||
}
|
||||
/* make sure the flowid is the same for the fragmented mbufs */
|
||||
M_HASHTYPE_SET(m, M_HASHTYPE_GET(m0));
|
||||
m->m_pkthdr.flowid = m0->m_pkthdr.flowid;
|
||||
/* copy multicast flag, if any */
|
||||
m->m_flags |= (m0->m_flags & M_MCAST);
|
||||
/*
|
||||
* In the first mbuf, leave room for the link header, then
|
||||
|
Loading…
Reference in New Issue
Block a user