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

Commit 1e7d3d90 authored by Vladislav Yasevich's avatar Vladislav Yasevich Committed by David S. Miller
Browse files

[SCTP]: Remove timeouts[] array from sctp_endpoint.



The socket level timeout values are maintained in sctp_sock and
association level timeouts are in sctp_association. So there is
no need for ep->timeouts.

Signed-off-by: default avatarVladislav Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: default avatarSridhar Samudrala <sri@us.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 23ec47a0
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1222,9 +1222,6 @@ struct sctp_endpoint {
	int last_key;
	int key_changed_at;

	/* Default timeouts.  */
	int timeouts[SCTP_NUM_TIMEOUT_TYPES];

	/* sendbuf acct. policy.	*/
	__u32 sndbuf_policy;
};
+22 −2
Original line number Diff line number Diff line
@@ -128,9 +128,29 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
	 */
	asoc->max_burst = sctp_max_burst;

	/* Copy things from the endpoint.  */
	/* initialize association timers */
	asoc->timeouts[SCTP_EVENT_TIMEOUT_NONE] = 0;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] = asoc->rto_initial;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] = asoc->rto_initial;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = asoc->rto_initial;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_T3_RTX] = 0;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_T4_RTO] = 0;

	/* sctpimpguide Section 2.12.2
	 * If the 'T5-shutdown-guard' timer is used, it SHOULD be set to the
	 * recommended value of 5 times 'RTO.Max'.
	 */
        asoc->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD]
		= 5 * asoc->rto_max;

	asoc->timeouts[SCTP_EVENT_TIMEOUT_HEARTBEAT] = 0;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_SACK] =
		SCTP_DEFAULT_TIMEOUT_SACK;
	asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] =
		sp->autoclose * HZ;
	
	/* Initilizes the timers */
	for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i) {
		asoc->timeouts[i] = ep->timeouts[i];
		init_timer(&asoc->timers[i]);
		asoc->timers[i].function = sctp_timer_events[i];
		asoc->timers[i].data = (unsigned long) asoc;
+0 −23
Original line number Diff line number Diff line
@@ -70,7 +70,6 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
						struct sock *sk,
						gfp_t gfp)
{
	struct sctp_sock *sp = sctp_sk(sk);
	memset(ep, 0, sizeof(struct sctp_endpoint));

	/* Initialize the base structure. */
@@ -100,28 +99,6 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
	/* Create the lists of associations.  */
	INIT_LIST_HEAD(&ep->asocs);

	/* Set up the base timeout information.  */
	ep->timeouts[SCTP_EVENT_TIMEOUT_NONE] = 0;
	ep->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] =
		msecs_to_jiffies(sp->rtoinfo.srto_initial);
	ep->timeouts[SCTP_EVENT_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;
	ep->timeouts[SCTP_EVENT_TIMEOUT_T4_RTO] = 0;

	/* sctpimpguide-05 Section 2.12.2
	 * If the 'T5-shutdown-guard' timer is used, it SHOULD be set to the
	 * recommended value of 5 times 'RTO.Max'.
	 */
        ep->timeouts[SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD]
		= 5 * msecs_to_jiffies(sp->rtoinfo.srto_max);

	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;
	sk->sk_write_space = sctp_write_space;
+3 −3
Original line number Diff line number Diff line
@@ -385,7 +385,7 @@ sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
	NULL,
	sctp_generate_t4_rto_event,
	sctp_generate_t5_shutdown_guard_event,
	sctp_generate_heartbeat_event,
	NULL,
	sctp_generate_sack_event,
	sctp_generate_autoclose_event,
};
@@ -689,9 +689,9 @@ static void sctp_cmd_new_state(sctp_cmd_seq_t *cmds,
		 * increased due to timer expirations.
		 */
		asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT] =
			asoc->ep->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT];
						asoc->rto_initial;
		asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE] =
			asoc->ep->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE];
						asoc->rto_initial;
	}

	if (sctp_state(asoc, ESTABLISHED) ||
+0 −1
Original line number Diff line number Diff line
@@ -1932,7 +1932,6 @@ static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval,
	if (copy_from_user(&sp->autoclose, optval, optlen))
		return -EFAULT;

	sp->ep->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE] = sp->autoclose * HZ;
	return 0;
}