summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_reass.c
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1995-05-11 01:41:06 +0000
committerdg <dg@FreeBSD.org>1995-05-11 01:41:06 +0000
commitfc19afab24e85f6a6fe0ee4943706b09f3f1846f (patch)
treee34f16c4ed6aff0abdef4cab3d9af06ded4f5fe1 /sys/netinet/tcp_reass.c
parent7169c208224599b610407976dda740781dfc7fbf (diff)
downloadFreeBSD-src-fc19afab24e85f6a6fe0ee4943706b09f3f1846f.zip
FreeBSD-src-fc19afab24e85f6a6fe0ee4943706b09f3f1846f.tar.gz
#ifdef'd my Nagel/ACK hack with "TCP_ACK_HACK", disabled by default. I'm
currently considering reducing the TCP fasttimo to 100ms to help improve things, but this would be done as a seperate step at some point in the future. This was done because it was causing some sometimes serious performance problems with T/TCP.
Diffstat (limited to 'sys/netinet/tcp_reass.c')
-rw-r--r--sys/netinet/tcp_reass.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index c074d4f..47fd018 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* From: @(#)tcp_input.c 8.5 (Berkeley) 4/10/94
- * $Id: tcp_input.c,v 1.22 1995/05/03 07:16:52 davidg Exp $
+ * $Id: tcp_input.c,v 1.23 1995/05/09 12:32:06 olah Exp $
*/
#ifndef TUBA_INCLUDE
@@ -84,6 +84,7 @@ struct inpcbinfo tcbinfo;
* Set DELACK for segments received in order, but ack immediately
* when segments are out of order (so fast retransmit can work).
*/
+#ifdef TCP_ACK_HACK
#define TCP_REASS(tp, ti, m, so, flags) { \
if ((ti)->ti_seq == (tp)->rcv_nxt && \
(tp)->seg_next == (struct tcpiphdr *)(tp) && \
@@ -103,6 +104,24 @@ struct inpcbinfo tcbinfo;
tp->t_flags |= TF_ACKNOW; \
} \
}
+#else
+#define TCP_REASS(tp, ti, m, so, flags) { \
+ if ((ti)->ti_seq == (tp)->rcv_nxt && \
+ (tp)->seg_next == (struct tcpiphdr *)(tp) && \
+ (tp)->t_state == TCPS_ESTABLISHED) { \
+ tp->t_flags |= TF_DELACK; \
+ (tp)->rcv_nxt += (ti)->ti_len; \
+ flags = (ti)->ti_flags & TH_FIN; \
+ tcpstat.tcps_rcvpack++;\
+ tcpstat.tcps_rcvbyte += (ti)->ti_len;\
+ sbappend(&(so)->so_rcv, (m)); \
+ sorwakeup(so); \
+ } else { \
+ (flags) = tcp_reass((tp), (ti), (m)); \
+ tp->t_flags |= TF_ACKNOW; \
+ } \
+}
+#endif
#ifndef TUBA_INCLUDE
int
@@ -531,6 +550,7 @@ findpcb:
*/
sbappend(&so->so_rcv, m);
sorwakeup(so);
+#ifdef TCP_ACK_HACK
/*
* If this is a short packet, then ACK now - with Nagel
* congestion avoidance sender won't send more until
@@ -542,6 +562,9 @@ findpcb:
} else {
tp->t_flags |= TF_DELACK;
}
+#else
+ tp->t_flags |= TF_DELACK;
+#endif
return;
}
}
OpenPOWER on IntegriCloud