Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f85a429 authored by Vlad Yasevich's avatar Vlad Yasevich Committed by David S. Miller
Browse files

[SCTP] Make init & delayed sack timeouts configurable by user.

parent 7a1af5d7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -641,6 +641,7 @@ enum {
	NET_SCTP_ADDIP_ENABLE		 = 13,
	NET_SCTP_PRSCTP_ENABLE		 = 14,
	NET_SCTP_SNDBUF_POLICY		 = 15,
	NET_SCTP_SACK_TIMEOUT		 = 16,
};

/* /proc/sys/net/bridge */
+3 −15
Original line number Diff line number Diff line
@@ -263,23 +263,11 @@ enum { SCTP_MIN_PMTU = 576 };
enum { SCTP_MAX_DUP_TSNS = 16 };
enum { SCTP_MAX_GABS = 16 };

/* Here we define the default timers.  */
/* Heartbeat interval - 30 secs */
#define SCTP_DEFAULT_TIMEOUT_HEARTBEAT	(30 * HZ)

/* cookie timer def = ? seconds */
#define SCTP_DEFAULT_TIMEOUT_T1_COOKIE	(3 * HZ)

/* init timer def = 3 seconds  */
#define SCTP_DEFAULT_TIMEOUT_T1_INIT	(3 * HZ)

/* shutdown timer def = 300 ms */
#define SCTP_DEFAULT_TIMEOUT_T2_SHUTDOWN ((300 * HZ) / 1000)

/* 0 seconds + RTO */
#define SCTP_DEFAULT_TIMEOUT_HEARTBEAT	(10 * HZ)

/* recv timer def = 200ms (in usec) */
/* Delayed sack timer - 200ms */
#define SCTP_DEFAULT_TIMEOUT_SACK	((200 * HZ) / 1000)
#define SCTP_DEFAULT_TIMEOUT_SACK_MAX	((500 * HZ) / 1000) /* 500 ms */

/* RTO.Initial              - 3  seconds
 * RTO.Min                  - 1  second
+4 −0
Original line number Diff line number Diff line
@@ -161,6 +161,9 @@ extern struct sctp_globals {
	 */
	int sndbuf_policy;

	/* Delayed SACK timeout  200ms default*/
	int sack_timeout;

	/* HB.interval		    - 30 seconds  */
	int hb_interval;

@@ -217,6 +220,7 @@ extern struct sctp_globals {
#define sctp_sndbuf_policy	 	(sctp_globals.sndbuf_policy)
#define sctp_max_retrans_path		(sctp_globals.max_retrans_path)
#define sctp_max_retrans_init		(sctp_globals.max_retrans_init)
#define sctp_sack_timeout		(sctp_globals.sack_timeout)
#define sctp_hb_interval		(sctp_globals.hb_interval)
#define sctp_max_instreams		(sctp_globals.max_instreams)
#define sctp_max_outstreams		(sctp_globals.max_outstreams)
+5 −8
Original line number Diff line number Diff line
@@ -102,9 +102,9 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
	/* Set up the base timeout information.  */
	ep->timeouts[SCTP_EVENT_TIMEOUT_NONE] = 0;
	ep->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] =
		SCTP_DEFAULT_TIMEOUT_T1_COOKIE;
		msecs_to_jiffies(sp->rtoinfo.srto_initial);
	ep->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] =
		SCTP_DEFAULT_TIMEOUT_T1_INIT;
		msecs_to_jiffies(sp->rtoinfo.srto_initial);
	ep->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] =
		msecs_to_jiffies(sp->rtoinfo.srto_initial);
	ep->timeouts[SCTP_EVENT_TIMEOUT_T3_RTX] = 0;
@@ -117,12 +117,9 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
        ep->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD]
		= 5 * msecs_to_jiffies(sp->rtoinfo.srto_max);

	ep->timeouts[SCTP_EVENT_TIMEOUT_HEARTBEAT] =
		SCTP_DEFAULT_TIMEOUT_HEARTBEAT;
	ep->timeouts[SCTP_EVENT_TIMEOUT_SACK] =
		SCTP_DEFAULT_TIMEOUT_SACK;
	ep->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] =
		sp->autoclose * HZ;
	ep->timeouts[SCTP_EVENT_TIMEOUT_HEARTBEAT] = 0;
	ep->timeouts[SCTP_EVENT_TIMEOUT_SACK] = sctp_sack_timeout;
	ep->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] = sp->autoclose * HZ;

	/* Use SCTP specific send buffer space queues.  */
	ep->sndbuf_policy = sctp_sndbuf_policy;
+4 −1
Original line number Diff line number Diff line
@@ -1050,7 +1050,10 @@ SCTP_STATIC __init int sctp_init(void)
	sctp_sndbuf_policy		= 0;

	/* HB.interval              - 30 seconds */
	sctp_hb_interval		= 30 * HZ;
	sctp_hb_interval		= SCTP_DEFAULT_TIMEOUT_HEARTBEAT;

	/* delayed SACK timeout */
	sctp_sack_timeout		= SCTP_DEFAULT_TIMEOUT_SACK;

	/* Implementation specific variables. */

Loading