Re: [PATCH] sctp: fix the check for path failure detection

From: Wei Yongjun
Date: Mon Aug 24 2009 - 03:57:25 EST


Luo Chunbo 写道:
> On Fri, 2009-08-21 at 17:47 -0400, Vlad Yasevich wrote:
>
>> Chunbo Luo wrote:
>>
>>> The transport is marked DOWN immediately after sending the max+1 HB,
>>> which is equal to not sending the max+1 HB at all. We should wait
>>> a next period and make sure the last HB is not acknowledged.
>>>
>>>
>> I don't think this code does what you want either...
>>
>> Let's say path_max_rxt = 2. What we'll get is:
>> timeout:
>> err++ (1)
>> if (err > 2) false
>> send HB
>> reset timer
>> timeout:
>> err++ (2)
>> if (err > 2) false
>> send HB
>> reset timer
>> timeout:
>> err++ (3)
>> if (err > 2)
>> set transport DOWN
>> send HB
>> reset timer.
>>
>> We only had 2 unacknowledged HB when we should have had 3.
>>
>
> The error count is increment after the HB was sent, and the error count
> check is before sending HB.
>
> Let's say path_max_rxt =2 . What we really get is:
>
> timeout:
> if( err > 2) false
> send HB
> err++ (1)
> reset timer
> timeout:
> if( err > 2) false
> send HB
> err++ (2)
> reset timer
> timeout:
> if( err > 2) false
> send HB
> err++ (3)
> reset timer
> timeout:
> if( err > 2)
> set transport DOWN
> send HB
> reset timer
>
> Here We had 3 unacknowledged HBs


But with Vlad's advice, you just need to do little change to the kernel
codes, may be two lines's patch, and it can do the same thing.



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