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>
