Re: [PATCH v2]sctp: Error in calculation of RTTvar

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 13, 2012 at 07:46:20AM +0100, Schoch Christian wrote:
> The calculation of RTTVAR involves the subtraction of two unsigned
> numbers which
> may causes rollover and results in very high values of RTTVAR when RTT > SRTT.
> With this patch it is possible to set RTOmin = 1 to get the minimum of RTO at
> 4 times the clock granularity.
> 
> 
> Change Notes:
> 
> v2)
>        *Replaced abs() by abs64() and long by __s64, changed patch
> description.
> 
> Signed-off-by: Christian Schoch <e0326715@xxxxxxxxxxxxxxxxxxxx>
> CC: Vlad Yasevich <vyasevich@xxxxxxxxx>
> CC: Sridhar Samudrala <sri@xxxxxxxxxx>
> CC: Neil Horman <nhorman@xxxxxxxxxxxxx>
> CC: linux-sctp@xxxxxxxxxxxxxxx
> ---
> 
> diff --git a/net/sctp/transport.c b/net/sctp/transport.c
> index 953c21e..206cf52 100644
> --- a/net/sctp/transport.c
> +++ b/net/sctp/transport.c
> @@ -331,7 +331,7 @@ void sctp_transport_update_rto(struct
> sctp_transport *tp, __u32 rtt)
>                  * 1/8, rto_alpha would be expressed as 3.
>                  */
>                 tp->rttvar = tp->rttvar - (tp->rttvar >> net->sctp.rto_beta)
> -                       + ((abs(tp->srtt - rtt)) >> net->sctp.rto_beta);
> +                       + (((__u32)abs64((__s64)tp->srtt -
> (__s64)rtt)) >> net->sctp.rto_beta);
>                 tp->srtt = tp->srtt - (tp->srtt >> net->sctp.rto_alpha)
>                         + (rtt >> net->sctp.rto_alpha);
>         } else {
> --
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Acked-by: Neil Horman <nhorman@xxxxxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux