sctp: Bring SCTP_DELAYED_ACK socket option into API compliance
Brings delayed_ack socket option set/get into line with the latest ietf socket extensions API draft, while maintaining backwards compatibility. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5c5e12898a
commit
d364d9276b
@@ -300,6 +300,7 @@ struct sctp_sock {
|
||||
|
||||
/* The default SACK delay timeout for new associations. */
|
||||
__u32 sackdelay;
|
||||
__u32 sackfreq;
|
||||
|
||||
/* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
|
||||
__u32 param_flags;
|
||||
@@ -938,6 +939,7 @@ struct sctp_transport {
|
||||
|
||||
/* SACK delay timeout */
|
||||
unsigned long sackdelay;
|
||||
__u32 sackfreq;
|
||||
|
||||
/* When was the last time (in jiffies) that we heard from this
|
||||
* transport? We use this to pick new active and retran paths.
|
||||
@@ -1542,6 +1544,7 @@ struct sctp_association {
|
||||
* : SACK's are not delayed (see Section 6).
|
||||
*/
|
||||
__u8 sack_needed; /* Do we need to sack the peer? */
|
||||
__u32 sack_cnt;
|
||||
|
||||
/* These are capabilities which our peer advertised. */
|
||||
__u8 ecn_capable; /* Can peer do ECN? */
|
||||
@@ -1651,6 +1654,7 @@ struct sctp_association {
|
||||
|
||||
/* SACK delay timeout */
|
||||
unsigned long sackdelay;
|
||||
__u32 sackfreq;
|
||||
|
||||
|
||||
unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];
|
||||
|
@@ -93,8 +93,9 @@ enum sctp_optname {
|
||||
#define SCTP_STATUS SCTP_STATUS
|
||||
SCTP_GET_PEER_ADDR_INFO,
|
||||
#define SCTP_GET_PEER_ADDR_INFO SCTP_GET_PEER_ADDR_INFO
|
||||
SCTP_DELAYED_ACK_TIME,
|
||||
#define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK_TIME
|
||||
SCTP_DELAYED_ACK,
|
||||
#define SCTP_DELAYED_ACK_TIME SCTP_DELAYED_ACK
|
||||
#define SCTP_DELAYED_ACK SCTP_DELAYED_ACK
|
||||
SCTP_CONTEXT, /* Receive Context */
|
||||
#define SCTP_CONTEXT SCTP_CONTEXT
|
||||
SCTP_FRAGMENT_INTERLEAVE,
|
||||
@@ -618,13 +619,26 @@ struct sctp_authkeyid {
|
||||
};
|
||||
|
||||
|
||||
/* 7.1.23. Delayed Ack Timer (SCTP_DELAYED_ACK_TIME)
|
||||
/*
|
||||
* 7.1.23. Get or set delayed ack timer (SCTP_DELAYED_SACK)
|
||||
*
|
||||
* This options will get or set the delayed ack timer. The time is set
|
||||
* in milliseconds. If the assoc_id is 0, then this sets or gets the
|
||||
* endpoints default delayed ack timer value. If the assoc_id field is
|
||||
* non-zero, then the set or get effects the specified association.
|
||||
* This option will effect the way delayed acks are performed. This
|
||||
* option allows you to get or set the delayed ack time, in
|
||||
* milliseconds. It also allows changing the delayed ack frequency.
|
||||
* Changing the frequency to 1 disables the delayed sack algorithm. If
|
||||
* the assoc_id is 0, then this sets or gets the endpoints default
|
||||
* values. If the assoc_id field is non-zero, then the set or get
|
||||
* effects the specified association for the one to many model (the
|
||||
* assoc_id field is ignored by the one to one model). Note that if
|
||||
* sack_delay or sack_freq are 0 when setting this option, then the
|
||||
* current values will remain unchanged.
|
||||
*/
|
||||
struct sctp_sack_info {
|
||||
sctp_assoc_t sack_assoc_id;
|
||||
uint32_t sack_delay;
|
||||
uint32_t sack_freq;
|
||||
};
|
||||
|
||||
struct sctp_assoc_value {
|
||||
sctp_assoc_t assoc_id;
|
||||
uint32_t assoc_value;
|
||||
|
Reference in New Issue
Block a user