Hi there,
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
In these tests, expected minimum value of next RD is calculated with
the following calculaton:
RD = RDprev + RTprev * (1 + RAND_MIN)
[actual code]
| if($rd + $interval*(1-$RAND) > $MRD){
| vLogHTML('<FONT COLOR="#FF0000">Next message must not be observed</FONT><BR>');
| $mrdflag += 1;
| }
But according to RFC3315 section 14, RT is calculated with:
| RT = 2*RTprev + RAND*RTprev
Then, the expected minimum value of next RD should be:
RD = RDprev + RTprev * (2 + RAND_MIN)
I attached proposal patch below. Could you review it?
Thank you,
----
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-03-31 12:58:15.000000000 +0900
@@ -253,7 +253,7 @@ while(1){
vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
dhcpExitFail;
}
- if($rd + $interval*(1-$RAND) > $MRD){
+ if($rd + $interval*(2-$RAND) > $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 12:58:35.000000000 +0900
@@ -250,7 +250,7 @@ while(1){
vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
dhcpExitFail;
}
- if($rd + $interval*(1-$RAND) > $MRD){
+ if($rd + $interval*(2-$RAND) > $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 12:58:52.000000000 +0900
@@ -250,7 +250,7 @@ while(1){
vLogHTML('<FONT COLOR="#FF0000">MRD expired! </FONT><BR>');
dhcpExitFail;
}
- if($rd + $interval*(1-$RAND) > $MRD){
+ if($rd + $interval*(2-$RAND) > $MRD){
vLogHTML('<FONT COLOR="#FF0000">Next message must not be observed</FONT><BR>');
$mrdflag += 1;
}