When Highspeed TCP is used I get Floating Point
Exceptions. Here are the trace values:

(gdb) bt
#0  0x0807e193 in TcpAgent::limited_slow_start
(this=0x86617a8, cwnd=2,
    max_ssthresh=100, increment=0.5) at tcp/tcp.cc:986


**************************************************
tcp.cc:986
double TcpAgent::limited_slow_start(double cwnd,
double max_ssthresh, double increment)
{
  int round = int(cwnd / (double(max_ssthresh)/2.0));

        double increment1 = 1.0/(double(round));
        if (increment < increment1)
                increment = increment1;
        return increment; 
}
**************************************************
If I need to fix this ,I should use the rfc3742. Any
suggestions are welcome!

//written as per RFC3742 and to avoid floating pt
//error!

        if(cwnd <= max_ssthresh)
        return increment;
        else
        {
        int round =
int(cwnd/(double(max_ssthresh)/2.0));
        double increment1 = 1.0/(double(round));
        increment = increment1;
        return increment;
        }
**************************************************


 
____________________________________________________________________________________
Get your own web address.  
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL

Reply via email to