Index: [Article Count Order] [Thread]

Date: Tue, 1 Apr 2008 16:50:35 +0900
From: Hiroshi MIYATA <miyata@tahi.org>
Subject: [dhcptest:00270] Re: Tests for Maximum Retransmission Time
To: Mitsuru Chinen <mitch@linux.vnet.ibm.com>
Cc: dhcptest@tahi.org
Message-Id: <C0EDB3A9-B0AE-4BA3-A0E4-A564092B2026@tahi.org>
In-Reply-To: <20080401123512.f237c117.mitch@linux.vnet.ibm.com>
References: <20080310205322.9ab32c78.mitch@linux.vnet.ibm.com> <20080311203232.6670d3f5.mitch@linux.vnet.ibm.com> <D49285CA-D185-4232-8E09-195F5781920A@tahi.org> <DC2C6061-922A-4004-B0B4-ED0D784E1148@tahi.org> <20080401123512.f237c117.mitch@linux.vnet.ibm.com>
X-Mail-Count: 00270

I agree on this.

I will take it!

...miyata

On 2008/04/01, at 12:35, Mitsuru Chinen wrote:

> Miyata-san,
>
> On Tue, 1 Apr 2008 11:31:05 +0900
> Hiroshi MIYATA <miyata@tahi.org> wrote:
>
>> Chinen-san,
>>
>> Could you tell me which version of test tool are you using?
>
> All of my patches are for the latest one, DHCPv6 Self Test version  
> 1.0.8.
>
> Best Regards,
> ----
> Mitsuru Chinen <mitch@linux.vnet.ibm.com>
>
>> Thanks,
>>
>> ....miyata
>>
>> On 2008/03/12, at 0:45, Hiroshi MIYATA wrote:
>>
>>> Chinen-san,
>>>
>>> Thanks for your update.
>>> I will examine it.
>>>
>>> Sorry for my late response.
>>>
>>> ...miyata
>>>
>>>
>>> On 2008/03/11, at 20:32, Mitsuru Chinen wrote:
>>>
>>>> Hi there,
>>>>
>>>> On Mon, 10 Mar 2008 20:53:22 +0900
>>>> Mitsuru Chinen <mitch@linux.vnet.ibm.com> wrote:
>>>>
>>>>> I think the following tests have a bug.
>>>>>
>>>>> rfc3315/
>>>>> #32 Part D : Maximum Retransmission Time of solicit message
>>>>> #37 Part C : Maximum Retransmission Time of Request messages
>>>>> #41 Part C : Maximum Retransmission Time of Request messages
>>>>> #46 Part C : Maximum Retransmission Time of Renew message, T1 and
>>>>> T2 non-zero
>>>>> #50 Part C : Maximum Retransmission Time of Rebind message, T1
>>>>> and T2 non-zero
>>>>> rfc3736/
>>>>> #13 Part C : Maximum Retransmission Time of Information-request
>>>>> message
>>>>>
>>>>> Regarding RT, Section 14 in RFC3315 says:
>>>>>
>>>>>> RT for each subsequent message transmission is based on the
>>>>>> previous
>>>>>> value of RT:
>>>>>>
>>>>>>    RT = 2*RTprev + RAND*RTprev
>>>>>>
>>>>>> MRT specifies an upper bound on the value of RT (disregarding the
>>>>>> randomization added by the use of RAND).  If MRT has a value of  
>>>>>> 0,
>>>>>> there is no upper limit on the value of RT.  Otherwise:
>>>>>>
>>>>>>    if (RT > MRT)
>>>>>>       RT = MRT + RAND*MRT
>>>>>
>>>>> However, the test doesn't recalculate $timeout, expected RT, when
>>>>> timeout is bigger than MRT.
>>>>
>>>> Excuse me, I sent wrong patch in previous mail.
>>>> Here's the correct one.
>>>>
>>>> Best Regards,
>>>> ----
>>>> Mitsuru Chinen <mitch@linux.vnet.ibm.com>
>>>>
>>>>
>>>> diff --git a/rfc3315/C_RFC3315_17_1_2_SolRetransMRT.seq b/rfc3315/
>>>> C_RFC3315_17_1_2_SolRetransMRT.seq
>>>> index 26183e7..658aa4c 100755
>>>> --- a/rfc3315/C_RFC3315_17_1_2_SolRetransMRT.seq
>>>> +++ b/rfc3315/C_RFC3315_17_1_2_SolRetransMRT.seq
>>>> @@ -126,6 +126,11 @@ while($mrtflag < $MAXCOUNT){
>>>> 	}
>>>> 	$initflag=1;
>>>>
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $MRT){
>>>> +		$timeout = (1 + $RAND) * $MRT;
>>>> +	}
>>>> +
>>>> #
>>>> #----------- Wait for next retransmission
>>>> #
>>>> diff --git a/rfc3315/C_RFC3315_18_1_1_ReqRetransMRT.seq b/rfc3315/
>>>> C_RFC3315_18_1_1_ReqRetransMRT.seq
>>>> index a0d25ce..41df69f 100755
>>>> --- a/rfc3315/C_RFC3315_18_1_1_ReqRetransMRT.seq
>>>> +++ b/rfc3315/C_RFC3315_18_1_1_ReqRetransMRT.seq
>>>> @@ -141,6 +141,11 @@ while($mrtflag < $MAXCOUNT){
>>>> 	}
>>>> 	$initflag=1;
>>>>
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $MRT){
>>>> +		$timeout = (1 + $RAND) * $MRT;
>>>> +	}
>>>> +
>>>> #
>>>> #----------- Wait for next retransmission
>>>> #
>>>> diff --git a/rfc3315/C_RFC3315_18_1_2_CnfRetransMRT.seq b/rfc3315/
>>>> C_RFC3315_18_1_2_CnfRetransMRT.seq
>>>> index 279248c..4d449d4 100755
>>>> --- a/rfc3315/C_RFC3315_18_1_2_CnfRetransMRT.seq
>>>> +++ b/rfc3315/C_RFC3315_18_1_2_CnfRetransMRT.seq
>>>> @@ -193,6 +193,11 @@ while($mrtflag < $MAXCOUNT){
>>>> 	}
>>>> 	$initflag=1;
>>>>
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $MRT){
>>>> +		$timeout = (1 + $RAND) * $MRT;
>>>> +	}
>>>> +
>>>> #
>>>> #----------- Wait for next retransmission
>>>> #
>>>> diff --git a/rfc3315/C_RFC3315_18_1_3_RenRetransMRT.seq b/rfc3315/
>>>> C_RFC3315_18_1_3_RenRetransMRT.seq
>>>> index fcced3a..dd56be9 100755
>>>> --- a/rfc3315/C_RFC3315_18_1_3_RenRetransMRT.seq
>>>> +++ b/rfc3315/C_RFC3315_18_1_3_RenRetransMRT.seq
>>>> @@ -186,6 +186,11 @@ while($mrtflag < $MAXCOUNT){
>>>> 	}
>>>> 	$initflag=1;
>>>>
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $MRT){
>>>> +		$timeout = (1 + $RAND) * $MRT;
>>>> +	}
>>>> +
>>>> #
>>>> #----------- Wait for next retransmission
>>>> #
>>>> diff --git a/rfc3315/C_RFC3315_18_1_4_RebRetransMRT.seq b/rfc3315/
>>>> C_RFC3315_18_1_4_RebRetransMRT.seq
>>>> index 617351c..0947e4c 100755
>>>> --- a/rfc3315/C_RFC3315_18_1_4_RebRetransMRT.seq
>>>> +++ b/rfc3315/C_RFC3315_18_1_4_RebRetransMRT.seq
>>>> @@ -183,6 +183,11 @@ while($mrtflag < $MAXCOUNT){
>>>> 	}
>>>> 	$initflag = 1;
>>>>
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $MRT){
>>>> +		$timeout = (1 + $RAND) * $MRT;
>>>> +	}
>>>> +
>>>> #
>>>> #----------- Wait for next retransmission
>>>> #
>>>> diff --git a/rfc3736/C_RFC3736_INfoRetransMRT.seq b/rfc3736/
>>>> C_RFC3736_INfoRetransMRT.seq
>>>> index c532a4f..0f9cd4c 100755
>>>> --- a/rfc3736/C_RFC3736_INfoRetransMRT.seq
>>>> +++ b/rfc3736/C_RFC3736_INfoRetransMRT.seq
>>>> @@ -106,6 +106,12 @@ while(check_equal($interval,$INF_MAX_RT, 
>>>> $RAND)){
>>>> 	}else{
>>>> 		$timeout = (1 + $RAND) * $IRT;
>>>> 	}
>>>> +
>>>> +	# If $timeout is bigger than MRT, expected RT is MRT + RAND * MRT
>>>> +	if($timeout > $INF_MAX_RT){
>>>> +		$timeout = (1 + $RAND) * $INF_MAX_RT;
>>>> +	}
>>>> +
>>>> 	($retinf2,%inf2) = wait_for_information_request($IF0, $timeout +  
>>>> 1);
>>>> 	$nextime = getReceivedtime(\%inf2);
>>>> 	if($retinf2 != 0){
>>>>
>>>
>>>
>>
>>
>
>