ADDRSTATE_not_reset_VLT - Check if ValidLifetime is not reset by RA with same prefix
Host
ADDRSTATE_not_reset_VLT.seq [-tooloption ...] -pkt <packetdef> [sequence=<usolra-1>,<waitsec>,<usolra-2>] [init=<initname>,<initname>...] [sd=<sdopt>]
-tooloption : v6eval tool option <packetdef> : packet definition file (v6eval tool option) <usolra-1,2> : send RA <usolra-1,2> to NUT ; usolra_vlt(30|60|90|120) <waitsec> : wait NN [sec]; waitNN <initname> : how to initialize NUT; DADSuccess_boot/DADFail_boot/ra <sdopt> : debug options
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.
detail of Initialization: see Test sequence for IPv6 Stateless Address Autoconfiguration.
The following test is prepared in this test package. See INDEX file.
Test for a Host
Check if ValidLifetime is not reset by RA with same prefix (before expiry, same VLT) Check if ValidLifetime is not reset by RA with same prefix (before expiry, less VLT)
Test sequence
TN(or X) NUT ------------------------------ Initialize NUT (see ...)
Send Unsolicited RA to configure address of NUT ==== Action #1: Unsolicited RA ===> name: <usolra-1> src: TN's Link-local address dst: allnodes multicast SLL option exists Prefix option PrefixLength: 64 LFlag: 1 AFlag: 1 ValidLifetime: <ValidLifetime-1> PreferredLifetime: <PreferredLifetime-1> Prefix: _GLOBAL0_UCAST_PRFX
TN wait the DAD NS sends from NUT. (This judgement is informational only.) <=== Judgement #1: DAD NS ==== name: dadns_from_NUT src: ::0 dst: solnode[TargetAddress] TargetAddress: NUT's tentative _GLOBAL0_UCAST_PRFX + interface-id
Wait for NUT to finish DAD. (sleep $RetransTimerSec=1 [sec])
Check if NUT's address is configured. ==== Action #2: DAD NS ====> name: chkconf_dadns_to_NUT src: ::0 dst: solnode[TargetAddress] TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id
DAD NA come from NUT because NUT's address is configured (valid preferred). <=== Judgement #2: DAD NA come==== name: chkconf_dadna_from_NUT src: NUT's Link-local address or TargetAddress dst: allnodes multicast TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id OFlag: 1 RFlag: 0
Wait to spent NUT's address lifetime. Action #3: wait <waitsec> [sec]
Send Unsolicited RA to configure address of NUT ==== Action #4: Unsolicited RA ===> name: <usolra-2> src: TN's Link-local address dst: allnodes multicast SLL option exists Prefix option PrefixLength: 64 LFlag: 1 AFlag: 1 ValidLifetime: <ValidLifetime-2> PreferredLifetime: <PreferredLifetime-2> Prefix: _GLOBAL0_UCAST_PRFX
TN wait the DAD NS sends from NUT. (This judgement is informational only.) <=== Judgement #4: DAD NS ==== name: dadns_from_NUT src: ::0 dst: solnode[TargetAddress] TargetAddress: NUT's tentative _GLOBAL0_UCAST_PRFX + interface-id
Wait for NUT to finish DAD. (sleep $RetransTimerSec=1 [sec])
Check if NUT's address is configured. ==== Action #5: DAD NS ====> name: chkconf_dadns_to_NUT src: ::0 dst: solnode[TargetAddress] TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id
DAD NA come from NUT because NUT's address is configured (valid preferred). <=== Judgement #5: DAD NA come==== name: chkconf_dadna_from_NUT src: NUT's Link-local address or TargetAddress dst: allnodes multicast TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id OFlag: 1 RFlag: 0
permanent loop { Wait 30 [sec] to spent NUT's address lifetime. Count up totoal wait [sec] to spent NUT's address lifetime.
Check if NUT's address is configured. ==== Action #6: DAD NS ====> name: chkconf_dadns_to_NUT src: ::0 dst: solnode[TargetAddress] TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id
Check if DAD NA come from NUT (check if NUT's address configured) Exit the permanent loop if DAD NA doesn't come. <=== Judgement #6: DAD NA come==== name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address or TargetAddress dst: allnodes multicast TargetAddress: NUT's _GLOBAL0_UCAST_PRFX + interface-id OFlag: 1 RFlag: 0 ( if NUT is a Router then 1) }
Judgement #6: it must be 0 < total wait [sec] != ValidLifetime of <usolra-2>
Test for a Host
Check if ValidLifetime is not reset by RA with same prefix (before expiry, same VLT)
-pkt GLOBAL0_valRA_sameprfxes.def :sequence=usolra_vlt60,wait30,usolra_vlt60 init=DADSuccess_boot
Action #1: send the Unsolicited RA to NUT name: usolra_vlt60 Prefix option ValidLifetime: 60 PreferredLifetime: 60
Judgement #1: DAD NS come from NUT. (This judgement is informational only.)
Action #2: Send DAD NS to NUT
Judgement #2: DAD NA must come from NUT because NUT's address is configured
Action #3: wait 30 [sec] (not expire the ValidLifetime:60)
Action #4: send the Unsolicited RA to NUT name: usolra_vlt60 Prefix option ValidLifetime: 60 PreferredLifetime: 60
Judgement #4: DAD NS come from NUT. (This judgement is informational only.)
Action #5: Send DAD NS to NUT
Judgement #5: DAD NA must come from NUT because NUT's address is configured permanent loop { Wait 30 [sec] to spent NUT's address lifetime. Count up totoal wait [sec] to spent NUT's address lifetime.
Action #6: Send DAD NS to NUT
Judgement #6: DAD NA come from NUT if NUT's address is valid exit the permanent loop if DAD NA doesn't come. }
Judgement #6: it must be 0 < total wait [sec] != 60 (ValidLifetime of usolra_vlt60)
Check if ValidLifetime is not reset by RA with same prefix (before expiry, less VLT)
-pkt GLOBAL0_valRA_sameprfxes.def :sequence=usolra_vlt120,wait30,usolra_vlt60 init=DADSuccess_boot
Action #1: send the Unsolicited RA to NUT name: usolra_vlt120 Prefix option ValidLifetime: 120 PreferredLifetime: 120
Judgement #1: DAD NS come from NUT. (This judgement is informational only.)
Action #2: Send DAD NS to NUT
Judgement #2: DAD NA must come from NUT because NUT's address is configured
Action #3: wait 30 [sec] (not expire the ValidLifetime:120)
Action #4: send the Unsolicited RA to NUT name: usolra_vlt60 Prefix option ValidLifetime: 60 PreferredLifetime: 60
Judgement #4: DAD NS come from NUT. (This judgement is informational only.)
Action #5: Send DAD NS to NUT
Judgement #5: DAD NA must come from NUT because NUT's address is configured permanent loop { Wait 30 [sec] to spent NUT's address lifetime. Count up totoal wait [sec] to spent NUT's address lifetime.
Action #6: Send DAD NS to NUT
Judgement #6: DAD NA come from NUT if NUT's address is valid exit the permanent loop if DAD NA doesn't come. }
Judgement #6: it must be 0 < total wait [sec] != 60 (ValidLifetime of usolra_vlt60)
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.