Module Name:    src
Committed By:   christos
Date:           Mon Mar  8 18:17:27 UTC 2021

Modified Files:
        src/sys/netinet: tcp_input.c tcp_subr.c tcp_usrreq.c tcp_var.h

Log Message:
Remove the unused "addin" argument (it was always 0) and go back using
a random iss by default (instead of rfc1948)


To generate a diff of this commit:
cvs rdiff -u -r1.427 -r1.428 src/sys/netinet/tcp_input.c
cvs rdiff -u -r1.286 -r1.287 src/sys/netinet/tcp_subr.c
cvs rdiff -u -r1.228 -r1.229 src/sys/netinet/tcp_usrreq.c
cvs rdiff -u -r1.194 -r1.195 src/sys/netinet/tcp_var.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/tcp_input.c
diff -u src/sys/netinet/tcp_input.c:1.427 src/sys/netinet/tcp_input.c:1.428
--- src/sys/netinet/tcp_input.c:1.427	Fri Feb 19 10:43:56 2021
+++ src/sys/netinet/tcp_input.c	Mon Mar  8 13:17:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_input.c,v 1.427 2021/02/19 15:43:56 jakllsch Exp $	*/
+/*	$NetBSD: tcp_input.c,v 1.428 2021/03/08 18:17:27 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.427 2021/02/19 15:43:56 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcp_input.c,v 1.428 2021/03/08 18:17:27 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -4258,7 +4258,7 @@ syn_cache_add(struct sockaddr *src, stru
 
 		sc->sc_iss = tcp_new_iss1(&dstin->sin_addr,
 		    &srcin->sin_addr, dstin->sin_port,
-		    srcin->sin_port, sizeof(dstin->sin_addr), 0);
+		    srcin->sin_port, sizeof(dstin->sin_addr));
 		break;
 	    }
 #ifdef INET6
@@ -4269,7 +4269,7 @@ syn_cache_add(struct sockaddr *src, stru
 
 		sc->sc_iss = tcp_new_iss1(&dstin6->sin6_addr,
 		    &srcin6->sin6_addr, dstin6->sin6_port,
-		    srcin6->sin6_port, sizeof(dstin6->sin6_addr), 0);
+		    srcin6->sin6_port, sizeof(dstin6->sin6_addr));
 		break;
 	    }
 #endif

Index: src/sys/netinet/tcp_subr.c
diff -u src/sys/netinet/tcp_subr.c:1.286 src/sys/netinet/tcp_subr.c:1.287
--- src/sys/netinet/tcp_subr.c:1.286	Mon Mar  8 12:53:20 2021
+++ src/sys/netinet/tcp_subr.c	Mon Mar  8 13:17:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_subr.c,v 1.286 2021/03/08 17:53:20 christos Exp $	*/
+/*	$NetBSD: tcp_subr.c,v 1.287 2021/03/08 18:17:27 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.286 2021/03/08 17:53:20 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.287 2021/03/08 18:17:27 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -163,7 +163,7 @@ int 	tcp_mssdflt = TCP_MSS;
 int	tcp_minmss = TCP_MINMSS;
 int 	tcp_rttdflt = TCPTV_SRTTDFLT / PR_SLOWHZ;
 int	tcp_do_rfc1323 = 1;	/* window scaling / timestamps (obsolete) */
-int	tcp_do_rfc1948 = 1;	/* ISS by cryptographic hash */
+int	tcp_do_rfc1948 = 0;	/* ISS by cryptographic hash */
 int	tcp_do_sack = 1;	/* selective acknowledgement */
 int	tcp_do_win_scale = 1;	/* RFC1323 window scaling */
 int	tcp_do_timestamps = 1;	/* RFC1323 timestamps */
@@ -2136,21 +2136,19 @@ tcp_seq	 tcp_iss_seq = 0;	/* tcp initial
  * Get a new sequence value given a tcp control block
  */
 tcp_seq
-tcp_new_iss(struct tcpcb *tp, tcp_seq addin)
+tcp_new_iss(struct tcpcb *tp)
 {
 
 	if (tp->t_inpcb != NULL) {
-		return (tcp_new_iss1(&tp->t_inpcb->inp_laddr,
+		return tcp_new_iss1(&tp->t_inpcb->inp_laddr,
 		    &tp->t_inpcb->inp_faddr, tp->t_inpcb->inp_lport,
-		    tp->t_inpcb->inp_fport, sizeof(tp->t_inpcb->inp_laddr),
-		    addin));
+		    tp->t_inpcb->inp_fport, sizeof(tp->t_inpcb->inp_laddr));
 	}
 #ifdef INET6
 	if (tp->t_in6pcb != NULL) {
-		return (tcp_new_iss1(&tp->t_in6pcb->in6p_laddr,
+		return tcp_new_iss1(&tp->t_in6pcb->in6p_laddr,
 		    &tp->t_in6pcb->in6p_faddr, tp->t_in6pcb->in6p_lport,
-		    tp->t_in6pcb->in6p_fport, sizeof(tp->t_in6pcb->in6p_laddr),
-		    addin));
+		    tp->t_in6pcb->in6p_fport, sizeof(tp->t_in6pcb->in6p_laddr));
 	}
 #endif
 
@@ -2176,7 +2174,7 @@ tcp_iss_secret_init(void)
  */
 tcp_seq
 tcp_new_iss1(void *laddr, void *faddr, u_int16_t lport, u_int16_t fport,
-    size_t addrsz, tcp_seq addin)
+    size_t addrsz)
 {
 	tcp_seq tcp_iss;
 
@@ -2209,55 +2207,27 @@ tcp_new_iss1(void *laddr, void *faddr, u
 
 		memcpy(&tcp_iss, hash, sizeof(tcp_iss));
 
-		/*
-		 * Now increment our "timer", and add it in to
-		 * the computed value.
-		 *
-		 * XXX Use `addin'?
-		 * XXX TCP_ISSINCR too large to use?
-		 */
 #ifdef TCPISS_DEBUG
 		printf("ISS hash 0x%08x, ", tcp_iss);
 #endif
-		tcp_iss += tcp_iss_seq + addin;
+		/*
+		 * Add the offset in to the computed value.
+		 */
+		tcp_iss += tcp_iss_seq;
 #ifdef TCPISS_DEBUG
-		printf("new ISS 0x%08x\n", tcp_iss);
+		printf("ISS %08x\n", tcp_iss);
 #endif
 	} else {
 		/*
 		 * Randomize.
 		 */
 		tcp_iss = cprng_fast32();
-
-		/*
-		 * If we were asked to add some amount to a known value,
-		 * we will take a random value obtained above, mask off
-		 * the upper bits, and add in the known value.  We also
-		 * add in a constant to ensure that we are at least a
-		 * certain distance from the original value.
-		 *
-		 * This is used when an old connection is in timed wait
-		 * and we have a new one coming in, for instance.
-		 */
-		if (addin != 0) {
-#ifdef TCPISS_DEBUG
-			printf("Random %08x, ", tcp_iss);
-#endif
-			tcp_iss &= TCP_ISS_RANDOM_MASK;
-			tcp_iss += addin + TCP_ISSINCR;
 #ifdef TCPISS_DEBUG
-			printf("Old ISS %08x, ISS %08x\n", addin, tcp_iss);
+		printf("ISS random 0x%08x, ", tcp_iss);
 #endif
-		} else {
-			tcp_iss &= TCP_ISS_RANDOM_MASK;
-			tcp_iss += tcp_iss_seq;
-#ifdef TCPISS_DEBUG
-			printf("ISS %08x\n", tcp_iss);
-#endif
-		}
 	}
 
-	return (tcp_iss);
+	return tcp_iss;
 }
 
 #if defined(IPSEC)

Index: src/sys/netinet/tcp_usrreq.c
diff -u src/sys/netinet/tcp_usrreq.c:1.228 src/sys/netinet/tcp_usrreq.c:1.229
--- src/sys/netinet/tcp_usrreq.c:1.228	Sun Nov 22 19:52:53 2020
+++ src/sys/netinet/tcp_usrreq.c	Mon Mar  8 13:17:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_usrreq.c,v 1.228 2020/11/23 00:52:53 chs Exp $	*/
+/*	$NetBSD: tcp_usrreq.c,v 1.229 2021/03/08 18:17:27 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -99,7 +99,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.228 2020/11/23 00:52:53 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tcp_usrreq.c,v 1.229 2021/03/08 18:17:27 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -826,7 +826,7 @@ tcp_connect(struct socket *so, struct so
 	TCP_STATINC(TCP_STAT_CONNATTEMPT);
 	tp->t_state = TCPS_SYN_SENT;
 	TCP_TIMER_ARM(tp, TCPT_KEEP, tp->t_keepinit);
-	tp->iss = tcp_new_iss(tp, 0);
+	tp->iss = tcp_new_iss(tp);
 	tcp_sendseqinit(tp);
 	error = tcp_output(tp);
 

Index: src/sys/netinet/tcp_var.h
diff -u src/sys/netinet/tcp_var.h:1.194 src/sys/netinet/tcp_var.h:1.195
--- src/sys/netinet/tcp_var.h:1.194	Wed Feb  3 06:53:43 2021
+++ src/sys/netinet/tcp_var.h	Mon Mar  8 13:17:27 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: tcp_var.h,v 1.194 2021/02/03 11:53:43 roy Exp $	*/
+/*	$NetBSD: tcp_var.h,v 1.195 2021/03/08 18:17:27 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -923,9 +923,8 @@ struct tcpcb *
 	 tcp_usrclosed(struct tcpcb *);
 void	 tcp_usrreq_init(void);
 void	 tcp_xmit_timer(struct tcpcb *, uint32_t);
-tcp_seq	 tcp_new_iss(struct tcpcb *, tcp_seq);
-tcp_seq  tcp_new_iss1(void *, void *, u_int16_t, u_int16_t, size_t,
-	    tcp_seq);
+tcp_seq	 tcp_new_iss(struct tcpcb *);
+tcp_seq  tcp_new_iss1(void *, void *, u_int16_t, u_int16_t, size_t);
 
 void	 tcp_sack_init(void);
 void	 tcp_new_dsack(struct tcpcb *, tcp_seq, u_int32_t);

Reply via email to