summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorkcpoon <none@none>2007-01-17 08:17:24 -0800
committerkcpoon <none@none>2007-01-17 08:17:24 -0800
commit1c25cdbd0f6ba3ec11a8ab1653c801027a1ffc61 (patch)
tree6b36906661c6222d5758715c83359b48b502d90d /usr/src
parente0968231baadf7c6a3b39022a6a4b334ac9db20c (diff)
downloadillumos-gate-1c25cdbd0f6ba3ec11a8ab1653c801027a1ffc61.tar.gz
6513446 ETSI TS 102 144 requires that SCTP delayed SACK frequency to be tunable
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_impl.h3
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_input.c8
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_param.c9
-rw-r--r--usr/src/uts/common/inet/sctp/sctp_timer.c4
4 files changed, 14 insertions, 10 deletions
diff --git a/usr/src/uts/common/inet/sctp/sctp_impl.h b/usr/src/uts/common/inet/sctp/sctp_impl.h
index 694b79142d..f773654fad 100644
--- a/usr/src/uts/common/inet/sctp/sctp_impl.h
+++ b/usr/src/uts/common/inet/sctp/sctp_impl.h
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -148,6 +148,7 @@ extern sctpparam_t sctp_param_arr[];
#define sctp_slow_start_after_idle sctp_param_arr[34].sctp_param_val
#define sctp_prsctp_enabled sctp_param_arr[35].sctp_param_val
#define sctp_fast_rxt_thresh sctp_param_arr[36].sctp_param_val
+#define sctp_deferred_acks_max sctp_param_arr[37].sctp_param_val
/*
* sctp_wroff_xtra is the extra space in front of SCTP/IP header for link
* layer header. It has to be a multiple of 4.
diff --git a/usr/src/uts/common/inet/sctp/sctp_input.c b/usr/src/uts/common/inet/sctp/sctp_input.c
index b19e21a4af..75e1fc3c4d 100644
--- a/usr/src/uts/common/inet/sctp/sctp_input.c
+++ b/usr/src/uts/common/inet/sctp/sctp_input.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -1621,19 +1621,21 @@ sctp_make_sack(sctp_t *sctp, sctp_faddr_t *sendto, mblk_t *dups)
size_t slen;
sctp_chunk_hdr_t *sch;
sctp_sack_chunk_t *sc;
+ int32_t acks_max;
if (sctp->sctp_force_sack) {
sctp->sctp_force_sack = 0;
goto checks_done;
}
+ acks_max = sctp_deferred_acks_max;
if (sctp->sctp_state == SCTPS_ESTABLISHED) {
- if (sctp->sctp_sack_toggle < 2) {
+ if (sctp->sctp_sack_toggle < acks_max) {
/* no need to SACK right now */
dprint(2, ("sctp_make_sack: %p no sack (toggle)\n",
(void *)sctp));
return (NULL);
- } else if (sctp->sctp_sack_toggle >= 2) {
+ } else if (sctp->sctp_sack_toggle >= acks_max) {
sctp->sctp_sack_toggle = 0;
}
}
diff --git a/usr/src/uts/common/inet/sctp/sctp_param.c b/usr/src/uts/common/inet/sctp/sctp_param.c
index 508feb7aed..603159b0e4 100644
--- a/usr/src/uts/common/inet/sctp/sctp_param.c
+++ b/usr/src/uts/common/inet/sctp/sctp_param.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -19,8 +18,9 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -125,6 +125,7 @@ sctpparam_t sctp_param_arr[] = {
{ 1, 16384, 4, "sctp_slow_start_after_idle"},
{ 0, 1, 1, "sctp_prsctp_enabled"},
{ 1, 10000, 3, "sctp_fast_rxt_thresh"},
+ { 1, 16, 2, "sctp_deferred_acks_max"},
};
/* END CSTYLED */
diff --git a/usr/src/uts/common/inet/sctp/sctp_timer.c b/usr/src/uts/common/inet/sctp/sctp_timer.c
index fb19313897..93e937edf8 100644
--- a/usr/src/uts/common/inet/sctp/sctp_timer.c
+++ b/usr/src/uts/common/inet/sctp/sctp_timer.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -365,7 +365,7 @@ void
sctp_ack_timer(sctp_t *sctp)
{
sctp->sctp_ack_timer_running = 0;
- sctp->sctp_sack_toggle = 2;
+ sctp->sctp_sack_toggle = sctp_deferred_acks_max;
BUMP_MIB(&sctp_mib, sctpOutAckDelayed);
sctp_sack(sctp, NULL);
}