sctp: implement prsctp TTL policy

prsctp TTL policy is a policy to abandon chunks when they expire
at the specific time in local stack. It's similar with expires_at
in struct sctp_datamsg.

This patch uses sinfo->sinfo_timetolive to set the specific time for
TTL policy. sinfo->sinfo_timetolive is also used for msg->expires_at.
So if prsctp_enable or TTL policy is not enabled, msg->expires_at
still works as before.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Xin Long
2016-07-09 19:47:43 +08:00
committed by David S. Miller
parent 826d253d57
commit a6c2f79287
5 changed files with 43 additions and 5 deletions

View File

@@ -602,6 +602,16 @@ struct sctp_chunk {
/* This needs to be recoverable for SCTP_SEND_FAILED events. */
struct sctp_sndrcvinfo sinfo;
/* We use this field to record param for prsctp policies,
* for TTL policy, it is the time_to_drop of this chunk,
* for RTX policy, it is the max_sent_count of this chunk,
* for PRIO policy, it is the priority of this chunk.
*/
unsigned long prsctp_param;
/* How many times this chunk have been sent, for prsctp RTX policy */
int sent_count;
/* Which association does this belong to? */
struct sctp_association *asoc;