svn commit: r220428 - head/sys/netinet
Jack F Vogel
jfv at FreeBSD.org
Thu Apr 7 21:20:26 UTC 2011
Author: jfv
Date: Thu Apr 7 21:20:26 2011
New Revision: 220428
URL: http://svn.freebsd.org/changeset/base/220428
Log:
Port of the LRO fix from mxge driver to the generic
LRO code. Thanks to Andrew Gallatin for the change.
MFC after: 7 days
Modified:
head/sys/netinet/tcp_lro.c
Modified: head/sys/netinet/tcp_lro.c
==============================================================================
--- head/sys/netinet/tcp_lro.c Thu Apr 7 20:15:36 2011 (r220427)
+++ head/sys/netinet/tcp_lro.c Thu Apr 7 21:20:26 2011 (r220428)
@@ -279,8 +279,10 @@ tcp_lro_rx(struct lro_ctrl *cntl, struct
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);
More information about the svn-src-all
mailing list