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

Re: bug-report: tcp-full.cc



Also see
http://www-mash.cs.berkeley.edu/dist/archive/ns-users/0002/0156.html 
on related information (it's yesterday :)

We'll put in the patches. Thanks to both of you. 

- Haobo

On Thu, 10 Feb 2000, Li Fan wrote:

> Hi, 
> 
> The bug is found when we worked on our own customized 
> version of NS-2. I checked out the newest release (ns-2.1b6)
> and found the bug is there too. 
> 
> It is in ReassemblyQueue::add function, around line 2201
> The code was:
>                               // insert in the middle or end
>                                 n->next_ = p->next_;
>                                 p->next_ = n;
>                                 n->prev_ = p;
>                                 if (p == tail_)
>                                         tail_ = n;
> 
> It is obvious that the double link is broken here. Because the 
> p->next_->prev_ is still pointing to p, not n.  To fix, only
> need to add two lines:
> 
>                                 // insert in the middle or end
>                                 n->next_ = p->next_;
> 				if(p->next_)
> 					p->next_->prev_= n;
>                                 p->next_ = n;
>                                 n->prev_ = p;
>                                 if (p == tail_)
>                                         tail_ = n;
> 
> 
> The bug messed up the assembly queue when the holes in sequence
> number is more than one at a certain time, though not common, it
>  happens as congestion is heavy.  
> 
> For those who used version of NS-2 at our ftp site:
>  ftp://ftp-eng.cisco.com/ftp/kmn-group/ns-2/, we will
>  put the fix there too. 
> 
> Thanks.
> 
> Li
> 
> 
>