Index: [Article Count Order] [Thread]

Date: Tue, 1 Apr 2008 09:36:52 +0900
From: Mitsuru Chinen <mitch@linux.vnet.ibm.com>
Subject: [dhcptest:00263] Re: [Client Test] Wrong calculation at MRD tests
To: dhcptest@tahi.org
Message-Id: <20080401093652.19bc6d88.mitch@linux.vnet.ibm.com>
In-Reply-To: <20080331192811.2105aec7.mitch@linux.vnet.ibm.com>
References: <20080331192811.2105aec7.mitch@linux.vnet.ibm.com>
X-Mail-Count: 00263

On Mon, 31 Mar 2008 19:28:11 +0900
Mitsuru Chinen <mitch@linux.vnet.ibm.com> wrote:

> I think the MRD calcuration in the following test is incorrect.
> 
>   #42 Part D : Maximum Retransmission Duration of Confirm message
>   #47 Part D : Maximum Retransmission Duration of Renew message, T1 and T2 non-zero
>   #51 Part D : Maximum Retransmission Duration of Rebind message, T1 and T2 non-zero

I found I posted a patch for #42 before, and the current patch is
incorrect and previous one is correct.

[dhcptest:00257] RT calculation of #42, rfc3315 client test
  http://www.tahi.org/dhcpv6/mail-list/200802.month/257.html

So I apply the same fix for #47 and #51, then create a new patch.
Could you review this instead of previous patches?

Best Regards,
----
Mitsuru Chinen <mitch@linux.vnet.ibm.com>

diff -uprN DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_2_RetransCnf.seq DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_2_RetransCnf.seq
--- DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_2_RetransCnf.seq	2007-10-30 21:56:45.000000000 +0900
+++ DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_2_RetransCnf.seq	2008-04-01 09:30:40.000000000 +0900
@@ -67,6 +67,7 @@ my $timeout = 30;
 my $remain = 0;
 my $lastflag = 0;
 my $mrdflag = 0;
+my $min_rt = 0;
 
 my $IRT = $CNF_TIMEOUT;
 my $MRT = $CNF_MAX_RT;
@@ -253,7 +254,11 @@ while(1){
 		vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
 		dhcpExitFail;
 	}
-	if($rd + $interval*(1-$RAND) > $MRD){
+	$min_rt = (2 - $RAND) * $interval;
+	if ($min_rt > $MRT) {
+		$min_rt = (1 - $RAND) * $MRT;
+	}
+	if($rd + $min_rt > $MRD){
 		vLogHTML('<FONT COLOR="#FF0000">Next message must not be observed</FONT><BR>');
 		$mrdflag += 1;
 	}
diff -uprN DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_3_RetransRen.seq DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_3_RetransRen.seq
--- DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_3_RetransRen.seq	2007-10-31 17:59:40.000000000 +0900
+++ DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_3_RetransRen.seq	2008-03-31 22:42:56.000000000 +0900
@@ -70,6 +70,7 @@ my $IRT = $REN_TIMEOUT;
 my $MRT = $REN_MAX_RT;
 my $acceptablerange = 0;
 my $mrdflag = 0;
+my $min_rt = 0;
 my $startT2 = 0;
 
 
@@ -250,7 +251,11 @@ while(1){
 		vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
 		dhcpExitFail;
 	}
-	if($rd + $interval*(1-$RAND) > $MRD){
+	$min_rt = (2 - $RAND) * $interval;
+	if ($min_rt > $MRT) {
+		$min_rt = (1 - $RAND) * $MRT;
+	}
+	if($rd + $min_rt > $MRD){
 		vLogHTML('<FONT COLOR="#FF0000">Next message must not be observed</FONT><BR>');
 		$mrdflag += 1;
 	}
diff -uprN DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_4_RetransReb.seq DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_4_RetransReb.seq
--- DHCPv6_Self_Test_P2_1_0_8.orig/rfc3315/C_RFC3315_18_1_4_RetransReb.seq	2007-10-31 17:59:40.000000000 +0900
+++ DHCPv6_Self_Test_P2_1_0_8/rfc3315/C_RFC3315_18_1_4_RetransReb.seq	2008-03-31 22:43:53.000000000 +0900
@@ -68,6 +68,7 @@ my $IRT = $REB_TIMEOUT;
 my $MRT = $REB_MAX_RT;
 my $acceptablerange = 0;
 my $mrdflag = 0;
+my $min_rt = 0;
 my $startVLT = 0;
 my $timeout = $time2 + 100;
 my $interval = 0;
@@ -250,7 +251,11 @@ while(1){
 		vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
 		dhcpExitFail;
 	}
-	if($rd + $interval*(1-$RAND) > $MRD){
+	$min_rt = (2 - $RAND) * $interval;
+	if ($min_rt > $MRT) {
+		$min_rt = (1 - $RAND) * $MRT;
+	}
+	if($rd + $min_rt > $MRD){
 		vLogHTML('<FONT COLOR="#FF0000">Next message must not be observed</FONT><BR>');
 		$mrdflag += 1;
 	}