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

Reply via email to