summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_seq.h
diff options
context:
space:
mode:
authorMike Silbersack <silby@FreeBSD.org>2001-07-08 02:20:47 +0000
committerMike Silbersack <silby@FreeBSD.org>2001-07-08 02:20:47 +0000
commit2d610a5028cb9e22cf4bfb4a007e0da67fcde284 (patch)
treefef63dda5be2e0301de334e984f17a9b61cf3d84 /sys/netinet/tcp_seq.h
parent4718c85a24311fc5bc8252d62bdbba9daf3ef0f5 (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_seq.h')
-rw-r--r--sys/netinet/tcp_seq.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/netinet/tcp_seq.h b/sys/netinet/tcp_seq.h
index 9d4adc8bf78f..930734758dd3 100644
--- a/sys/netinet/tcp_seq.h
+++ b/sys/netinet/tcp_seq.h
@@ -81,6 +81,24 @@
#ifdef _KERNEL
extern tcp_cc tcp_ccgen; /* global connection count */
+/*
+ * Increment for tcp_iss each second.
+ * This is designed to increment at the standard 250 KB/s,
+ * but with a random component averaging 128 KB.
+ * We also increment tcp_iss by a quarter of this amount
+ * each time we use the value for a new connection.
+ * If defined, the tcp_random18() macro should produce a
+ * number in the range [0-0x3ffff] that is hard to predict.
+ *
+ * The variable tcp_iss and tcp_random18() are only used
+ * by sequence number generation scheme 0.
+ */
+#ifndef tcp_random18
+#define tcp_random18() (arc4random() & 0x3ffff)
+#endif
+#define TCP_ISSINCR (122*1024 + tcp_random18())
+
+extern tcp_seq tcp_iss;
#else
#define TCP_ISSINCR (250*1024) /* increment for tcp_iss each second */
#endif /* _KERNEL */