Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 May 1997 23:09:59 +0200 (CEST)
From:      luigi@iet.unipi.it
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   kern/3584: small cleanup to tcp_input.c
Message-ID:  <199705122109.XAA00425@prova.iet.unipi.it>
Resent-Message-ID: <199705122110.OAA05171@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         3584
>Category:       kern
>Synopsis:       cleanup TCP_REASS macro in tcp_input.c
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon May 12 14:10:01 PDT 1997
>Last-Modified:
>Originator:     Luigi Rizzo
>Organization:
DEIT
>Release:        FreeBSD 2.2.1-RELEASE i386
>Environment:

	netinet code, 2.1, 2.2 and 3.0

>Description:

	The TCP_REASS macro is defined two times, depending on the
	value of TCP_ACK_HACK. Since the macro is quite long, I think
	this definition is preferable (and consistent with the
	convention for multiline macros in style(9) ).

	Note BTW that the TUBA_INCLUDE stuff are still there, but
	obsolete. Perhaps it is time to remove them ?

>How-To-Repeat:

	--

>Fix:
	

diff -u ../netinet.221R/tcp_input.c tcp_input.c
--- ../netinet.221R/tcp_input.c	Tue Nov 12 00:40:57 1996
+++ tcp_input.c	Mon May 12 22:54:33 1997
@@ -105,41 +105,25 @@
  * 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) && \
-	    (tp)->t_state == TCPS_ESTABLISHED) { \
-		if (ti->ti_flags & TH_PUSH) \
-			tp->t_flags |= TF_ACKNOW; \
-		else \
-			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; \
-	} \
-}
+#define TCP_ACK_FLAG ((ti->ti_flags & TH_PUSH) ? TF_ACKNOW : TF_DELACK)
 #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; \
-	} \
+#define TCP_ACK_FLAG TF_DELACK
+#endif
+#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 |= TCP_ACK_FLAG;				\
+		(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
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705122109.XAA00425>