summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_constants.h
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2011-02-02 11:13:23 +0000
committerrrs <rrs@FreeBSD.org>2011-02-02 11:13:23 +0000
commit21c4d27f12ba02243502767bea3b5204d7cc5b4b (patch)
tree0056ca24f8b0f300a7c3fbf157aaaace4954e2df /sys/netinet/sctp_constants.h
parent3d021845fb3da3ecb328f8817a723c879122b386 (diff)
downloadFreeBSD-src-21c4d27f12ba02243502767bea3b5204d7cc5b4b.zip
FreeBSD-src-21c4d27f12ba02243502767bea3b5204d7cc5b4b.tar.gz
1) Allow a chunk to track the cwnd it was at when sent.
2) Add separate max-bursts for retransmit and hb. These are set to sysctlable values but not settable via the socket api. This makes sure we don't blast out HB's or fast-retransmits. 3) Determine on the first data transmission on a net if its local-lan (by being under or over a RTT). This can later be used to think about different algorithms based on locallan vs big-i (experimental) 4) The cwnd should NOT be allowed to grow when an ECNEcho is seen (TCP has this same bug). We fix this in SCTP so an ECNe being seen prevents an advance of cwnd. 5) CWR's should not be sent multiple times to the same network, instead just updating the TSN being transmitted if needed. MFC after: 1 Month
Diffstat (limited to 'sys/netinet/sctp_constants.h')
-rw-r--r--sys/netinet/sctp_constants.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/sys/netinet/sctp_constants.h b/sys/netinet/sctp_constants.h
index 719da64..02468da 100644
--- a/sys/netinet/sctp_constants.h
+++ b/sys/netinet/sctp_constants.h
@@ -345,6 +345,16 @@ __FBSDID("$FreeBSD$");
/* default max I can burst out after a fast retransmit, 0 disables it */
#define SCTP_DEF_MAX_BURST 0
+#define SCTP_DEF_HBMAX_BURST 4
+#define SCTP_DEF_FRMAX_BURST 4
+
+/* RTO calculation flag to say if it
+ * is safe to determine local lan or not.
+ */
+#define SCTP_DETERMINE_LL_NOTOK 0
+#define SCTP_DETERMINE_LL_OK 1
+
+
/* IP hdr (20/40) + 12+2+2 (enet) + sctp common 12 */
#define SCTP_FIRST_MBUF_RESV 68
/* Packet transmit states in the sent field */
@@ -947,6 +957,18 @@ __FBSDID("$FreeBSD$");
*/
#define SCTP_TIME_WAIT 60
+/* How many micro seconds is the cutoff from
+ * local lan type rtt's
+ */
+ /*
+ * We allow 500us for the rtt and another 500us for the cookie processing
+ * since we measure this on the first rtt.
+ */
+#define SCTP_LOCAL_LAN_RTT 1100
+#define SCTP_LAN_UNKNOWN 0
+#define SCTP_LAN_LOCAL 1
+#define SCTP_LAN_INTERNET 2
+
#define SCTP_SEND_BUFFER_SPLITTING 0x00000001
#define SCTP_RECV_BUFFER_SPLITTING 0x00000002
@@ -994,6 +1016,7 @@ __FBSDID("$FreeBSD$");
#if defined(_KERNEL)
+#define SCTP_GETTIME_TIMESPEC(x) (getnanouptime(x))
#define SCTP_GETTIME_TIMEVAL(x) (getmicrouptime(x))
#define SCTP_GETPTIME_TIMEVAL(x) (microuptime(x))
#endif
OpenPOWER on IntegriCloud