Port of the LRO fix from mxge driver to the generic

LRO code. Thanks to Andrew Gallatin for the change.

MFC after:  7 days
This commit is contained in:
Jack F Vogel 2011-04-07 21:20:26 +00:00
parent 3a1594a579
commit c31aa19c53
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=220428

View File

@ -279,8 +279,10 @@ tcp_lro_rx(struct lro_ctrl *cntl, struct mbuf *m_head, uint32_t csum)
lro->dest_ip == ip->ip_dst.s_addr) {
/* Try to append it */
if (__predict_false(seq != lro->next_seq)) {
/* out of order packet */
if (__predict_false(seq != lro->next_seq ||
(tcp_data_len == 0 &&
lro->ack_seq == tcp->th_ack))) {
/* out of order packet or dup ack */
SLIST_REMOVE(&cntl->lro_active, lro,
lro_entry, next);
tcp_lro_flush(cntl, lro);