[SCTP]: Fix bad sysctl formatting of SCTP timeout values on 64-bit m/cs.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Tue, 17 Jan 2006 19:55:17 +0000 (11:55 -0800)
committerSridhar Samudrala <sri@us.ibm.com>
Tue, 17 Jan 2006 19:55:17 +0000 (11:55 -0800)
Change all the structure members that hold jiffies to be of type
unsigned long.  This also corrects bad sysctl formating on 64 bit
architectures.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
include/net/sctp/structs.h
net/sctp/sm_sideeffect.c
net/sctp/socket.c
net/sctp/sysctl.c
net/sctp/transport.c

index 72aeae4a006730e7a7d4bffcdabc4ddde5c48d24..ad3d15cb0a0db014fd1fb0bfda3bf199717382ac 100644 (file)
@@ -127,9 +127,9 @@ extern struct sctp_globals {
         * RTO.Alpha                - 1/8  (3 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
         * powers of two to facilitate integer operations.
@@ -140,12 +140,18 @@ extern struct sctp_globals {
        /* Max.Burst                - 4 */
        int max_burst;
 
-       /* Valid.Cookie.Life        - 60  seconds  */
-       int valid_cookie_life;
-
        /* Whether Cookie Preservative is enabled(1) or not(0) */
        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
         * Path.Max.Retrans         - 5  attempts (per destination address)
         * Max.Init.Retransmits     - 8  attempts
@@ -168,12 +174,6 @@ extern struct sctp_globals {
         */
        int rcvbuf_policy;
 
-       /* Delayed SACK timeout  200ms default*/
-       int sack_timeout;
-
-       /* HB.interval              - 30 seconds  */
-       int hb_interval;
-
        /* The following variables are implementation specific.  */
 
        /* Default initialization values to be applied to new associations. */
@@ -828,7 +828,7 @@ struct sctp_transport {
        __u32 rtt;              /* This is the most recent RTT.  */
 
        /* RTO         : The current retransmission timeout value.  */
-       __u32 rto;
+       unsigned long rto;
 
        /* RTTVAR      : The current RTT variation.  */
        __u32 rttvar;
@@ -878,22 +878,10 @@ struct sctp_transport {
        /* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
         * 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 */
-       __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
         * transport?  We use this to pick new active and retran paths.
@@ -905,6 +893,18 @@ struct sctp_transport {
         */
        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. */
        int init_sent_count;
 
@@ -1500,9 +1500,9 @@ struct sctp_association {
         * These values will be initialized by system defaults, but can
         * 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.  */
        int max_burst;
@@ -1520,13 +1520,13 @@ struct sctp_association {
        __u16 init_retries;
 
        /* 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
         * the destination address every heartbeat interval. This value
         * will be inherited by all new transports.
         */
-       __u32 hbinterval;
+       unsigned long hbinterval;
 
        /* This is the max_retrans value for new transports in the
         * association.
@@ -1538,13 +1538,14 @@ struct sctp_association {
         */
        __u32 pathmtu;
 
-       /* SACK delay timeout */
-       __u32 sackdelay;
-
        /* Flags controling Heartbeat, SACK delay, and Path MTU Discovery. */
        __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];
 
        /* Transport to which SHUTDOWN chunk was last sent.  */
@@ -1649,7 +1650,10 @@ struct sctp_association {
        /* How many duplicated TSNs have we seen?  */
        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;
 
        /* These are to support
index b8b38aba92b3aa4496e5f2e668a1ba6bfe70c6ab..8d1dc24bab4c1f1da541c760e13955ca54b77d29 100644 (file)
@@ -1300,7 +1300,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
                                        "T1 INIT Timeout adjustment"
                                        " init_err_counter: %d"
                                        " cycle: %d"
-                                       " timeout: %d\n",
+                                       " timeout: %ld\n",
                                        asoc->init_err_counter,
                                        asoc->init_cycle,
                                        asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_INIT]);
@@ -1328,7 +1328,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
                        SCTP_DEBUG_PRINTK(
                                "T1 COOKIE Timeout adjustment"
                                " init_err_counter: %d"
-                               " timeout: %d\n",
+                               " timeout: %ld\n",
                                asoc->init_err_counter,
                                asoc->timeouts[SCTP_EVENT_TIMEOUT_T1_COOKIE]);
 
index c98ee375ba5e11883bb2df13378b450b11f77ff0..6a0b1af8993204f9010dae3170a90484936005ea 100644 (file)
@@ -2995,7 +2995,7 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk)
        sp->hbinterval  = jiffies_to_msecs(sctp_hb_interval);
        sp->pathmaxrxt  = sctp_max_retrans_path;
        sp->pathmtu     = 0; // allow default discovery
-       sp->sackdelay   = sctp_sack_timeout;
+       sp->sackdelay   = jiffies_to_msecs(sctp_sack_timeout);
        sp->param_flags = SPP_HB_ENABLE |
                          SPP_PMTUD_ENABLE |
                          SPP_SACKDELAY_ENABLE;
index fcd7096c953d5d5698b3ce456f3512915b66c304..dc6f3ff32358c0dafd1b8ae1f63d610a5106e9b5 100644 (file)
@@ -159,12 +159,9 @@ static ctl_table sctp_table[] = {
                .ctl_name       = NET_SCTP_PRESERVE_ENABLE,
                .procname       = "cookie_preserve_enable",
                .data           = &sctp_cookie_preserve_enable,
-               .maxlen         = sizeof(long),
+               .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = &proc_doulongvec_ms_jiffies_minmax,
-               .strategy       = &sctp_sysctl_jiffies_ms,
-               .extra1         = &rto_timer_min,
-               .extra2         = &rto_timer_max
+               .proc_handler   = &proc_dointvec
        },
        {
                .ctl_name       = NET_SCTP_RTO_ALPHA,
index 68d73e2dd155e33c2ca06e7bbd283b5a66738609..160f62ad1cc55f924e7fc591e7df3a7259f5376a 100644 (file)
@@ -350,7 +350,7 @@ void sctp_transport_update_rto(struct sctp_transport *tp, __u32 rtt)
        tp->rto_pending = 0;
 
        SCTP_DEBUG_PRINTK("%s: transport: %p, rtt: %d, srtt: %d "
-                         "rttvar: %d, rto: %d\n", __FUNCTION__,
+                         "rttvar: %d, rto: %ld\n", __FUNCTION__,
                          tp, rtt, tp->srtt, tp->rttvar, tp->rto);
 }