diff options
author | rrs <rrs@FreeBSD.org> | 2011-02-02 11:13:23 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2011-02-02 11:13:23 +0000 |
commit | 21c4d27f12ba02243502767bea3b5204d7cc5b4b (patch) | |
tree | 0056ca24f8b0f300a7c3fbf157aaaace4954e2df /sys/netinet/sctp_constants.h | |
parent | 3d021845fb3da3ecb328f8817a723c879122b386 (diff) | |
download | FreeBSD-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.h | 23 |
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 |