|
@@ -127,9 +127,9 @@ extern struct sctp_globals {
|
|
* RTO.Alpha - 1/8 (3 when converted to right shifts.)
|
|
* RTO.Alpha - 1/8 (3 when converted to right shifts.)
|
|
* RTO.Beta - 1/4 (2 when converted to right shifts.)
|
|
* RTO.Beta - 1/4 (2 when converted to right shifts.)
|
|
*/
|
|
*/
|
|
- __u32 rto_initial;
|
|
|
|
- __u32 rto_min;
|
|
|
|
- __u32 rto_max;
|
|
|
|
|
|
+ unsigned long rto_initial;
|
|
|
|
+ unsigned long rto_min;
|
|
|
|
+ unsigned long rto_max;
|
|
|
|
|
|
/* Note: rto_alpha and rto_beta are really defined as inverse
|
|
/* Note: rto_alpha and rto_beta are really defined as inverse
|
|
* powers of two to facilitate integer operations.
|
|
* powers of two to facilitate integer operations.
|
|
@@ -140,12 +140,18 @@ extern struct sctp_globals {
|
|
/* Max.Burst - 4 */
|
|
/* Max.Burst - 4 */
|
|
int max_burst;
|
|
int max_burst;
|
|
|
|
|
|
- /* Valid.Cookie.Life - 60 seconds */
|
|
|
|
- int valid_cookie_life;
|
|
|
|
-
|
|
|
|
/* Whether Cookie Preservative is enabled(1) or not(0) */
|
|
/* Whether Cookie Preservative is enabled(1) or not(0) */
|
|
int cookie_preserve_enable;
|
|
int cookie_preserve_enable;
|
|
|
|
|
|
|
|
+ /* Valid.Cookie.Life - 60 seconds */
|
|
|
|
+ unsigned long valid_cookie_life;
|
|
|
|
+
|
|
|
|
+ /* Delayed SACK timeout 200ms default*/
|
|
|
|
+ unsigned long sack_timeout;
|
|
|
|
+
|
|
|
|
+ /* HB.interval - 30 seconds */
|
|
|
|
+ unsigned long hb_interval;
|
|
|
|
+
|
|
/* Association.Max.Retrans - 10 attempts
|
|
/* Association.Max.Retrans - 10 attempts
|
|
* Path.Max.Retrans - 5 attempts (per destination address)
|
|
* Path.Max.Retrans - 5 attempts (per destination address)
|
|
* Max.Init.Retransmits - 8 attempts
|
|
* Max.Init.Retransmits - 8 attempts
|
|
@@ -168,12 +174,6 @@ extern struct sctp_globals {
|
|
*/
|
|
*/
|
|
int rcvbuf_policy;
|
|
int rcvbuf_policy;
|
|
|
|
|
|
- /* Delayed SACK timeout 200ms default*/
|
|
|
|
- int sack_timeout;
|
|
|
|
-
|
|
|
|
- /* HB.interval - 30 seconds */
|
|
|
|
- int hb_interval;
|
|
|
|
-
|
|
|
|
/* The following variables are implementation specific. */
|
|
/* The following variables are implementation specific. */
|
|
|
|
|
|
/* Default initialization values to be applied to new associations. */
|
|
/* Default initialization values to be applied to new associations. */
|
|
@@ -828,7 +828,7 @@ struct sctp_transport {
|
|
__u32 rtt; /* This is the most recent RTT. */
|
|
__u32 rtt; /* This is the most recent RTT. */
|
|
|
|
|
|
/* RTO : The current retransmission timeout value. */
|
|
/* RTO : The current retransmission timeout value. */
|
|
- __u32 rto;
|
|
|
|
|
|
+ unsigned long rto;
|
|
|
|
|
|
/* RTTVAR : The current RTT variation. */
|
|
/* RTTVAR : The current RTT variation. */
|
|
__u32 rttvar;
|
|
__u32 rttvar;
|
|
@@ -878,22 +878,10 @@ struct sctp_transport {
|
|
/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
|
|
/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
|
|
* the destination address every heartbeat interval.
|
|
* the destination address every heartbeat interval.
|
|
*/
|
|
*/
|
|
- __u32 hbinterval;
|
|
|
|
-
|
|
|
|
- /* This is the max_retrans value for the transport and will
|
|
|
|
- * be initialized from the assocs value. This can be changed
|
|
|
|
- * using SCTP_SET_PEER_ADDR_PARAMS socket option.
|
|
|
|
- */
|
|
|
|
- __u16 pathmaxrxt;
|
|
|
|
-
|
|
|
|
- /* PMTU : The current known path MTU. */
|
|
|
|
- __u32 pathmtu;
|
|
|
|
|
|
+ unsigned long hbinterval;
|
|
|
|
|
|
/* SACK delay timeout */
|
|
/* SACK delay timeout */
|
|
- __u32 sackdelay;
|
|
|
|
-
|
|
|
|
- /* Flags controling Heartbeat, SACK delay, and Path MTU Discovery. */
|
|
|
|
- __u32 param_flags;
|
|
|
|
|
|
+ unsigned long sackdelay;
|
|
|
|
|
|
/* When was the last time (in jiffies) that we heard from this
|
|
/* When was the last time (in jiffies) that we heard from this
|
|
* transport? We use this to pick new active and retran paths.
|
|
* transport? We use this to pick new active and retran paths.
|
|
@@ -905,6 +893,18 @@ struct sctp_transport {
|
|
*/
|
|
*/
|
|
unsigned long last_time_ecne_reduced;
|
|
unsigned long last_time_ecne_reduced;
|
|
|
|
|
|
|
|
+ /* This is the max_retrans value for the transport and will
|
|
|
|
+ * be initialized from the assocs value. This can be changed
|
|
|
|
+ * using SCTP_SET_PEER_ADDR_PARAMS socket option.
|
|
|
|
+ */
|
|
|
|
+ __u16 pathmaxrxt;
|
|
|
|
+
|
|
|
|
+ /* PMTU : The current known path MTU. */
|
|
|
|
+ __u32 pathmtu;
|
|
|
|
+
|
|
|
|
+ /* Flags controling Heartbeat, SACK delay, and Path MTU Discovery. */
|
|
|
|
+ __u32 param_flags;
|
|
|
|
+
|
|
/* The number of times INIT has been sent on this transport. */
|
|
/* The number of times INIT has been sent on this transport. */
|
|
int init_sent_count;
|
|
int init_sent_count;
|
|
|
|
|
|
@@ -1500,9 +1500,9 @@ struct sctp_association {
|
|
* These values will be initialized by system defaults, but can
|
|
* These values will be initialized by system defaults, but can
|
|
* be modified via the SCTP_RTOINFO socket option.
|
|
* be modified via the SCTP_RTOINFO socket option.
|
|
*/
|
|
*/
|
|
- __u32 rto_initial;
|
|
|
|
- __u32 rto_max;
|
|
|
|
- __u32 rto_min;
|
|
|
|
|
|
+ unsigned long rto_initial;
|
|
|
|
+ unsigned long rto_max;
|
|
|
|
+ unsigned long rto_min;
|
|
|
|
|
|
/* Maximum number of new data packets that can be sent in a burst. */
|
|
/* Maximum number of new data packets that can be sent in a burst. */
|
|
int max_burst;
|
|
int max_burst;
|
|
@@ -1520,13 +1520,13 @@ struct sctp_association {
|
|
__u16 init_retries;
|
|
__u16 init_retries;
|
|
|
|
|
|
/* The largest timeout or RTO value to use in attempting an INIT */
|
|
/* The largest timeout or RTO value to use in attempting an INIT */
|
|
- __u16 max_init_timeo;
|
|
|
|
|
|
+ unsigned long max_init_timeo;
|
|
|
|
|
|
/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
|
|
/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
|
|
* the destination address every heartbeat interval. This value
|
|
* the destination address every heartbeat interval. This value
|
|
* will be inherited by all new transports.
|
|
* will be inherited by all new transports.
|
|
*/
|
|
*/
|
|
- __u32 hbinterval;
|
|
|
|
|
|
+ unsigned long hbinterval;
|
|
|
|
|
|
/* This is the max_retrans value for new transports in the
|
|
/* This is the max_retrans value for new transports in the
|
|
* association.
|
|
* association.
|
|
@@ -1538,13 +1538,14 @@ struct sctp_association {
|
|
*/
|
|
*/
|
|
__u32 pathmtu;
|
|
__u32 pathmtu;
|
|
|
|
|
|
- /* SACK delay timeout */
|
|
|
|
- __u32 sackdelay;
|
|
|
|
-
|
|
|
|
/* Flags controling Heartbeat, SACK delay, and Path MTU Discovery. */
|
|
/* Flags controling Heartbeat, SACK delay, and Path MTU Discovery. */
|
|
__u32 param_flags;
|
|
__u32 param_flags;
|
|
|
|
|
|
- int timeouts[SCTP_NUM_TIMEOUT_TYPES];
|
|
|
|
|
|
+ /* SACK delay timeout */
|
|
|
|
+ unsigned long sackdelay;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];
|
|
struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES];
|
|
struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES];
|
|
|
|
|
|
/* Transport to which SHUTDOWN chunk was last sent. */
|
|
/* Transport to which SHUTDOWN chunk was last sent. */
|
|
@@ -1649,7 +1650,10 @@ struct sctp_association {
|
|
/* How many duplicated TSNs have we seen? */
|
|
/* How many duplicated TSNs have we seen? */
|
|
int numduptsns;
|
|
int numduptsns;
|
|
|
|
|
|
- /* Number of seconds of idle time before an association is closed. */
|
|
|
|
|
|
+ /* Number of seconds of idle time before an association is closed.
|
|
|
|
+ * In the association context, this is really used as a boolean
|
|
|
|
+ * since the real timeout is stored in the timeouts array
|
|
|
|
+ */
|
|
__u32 autoclose;
|
|
__u32 autoclose;
|
|
|
|
|
|
/* These are to support
|
|
/* These are to support
|