Check if ValidLifetime is reset on NUT by RA with same prefix (after expiry, less VLT)
Host
ADDRSTATE_reset_VLT.seq -pkt GLOBAL0_valRA_sameprfxes.def :sequence=usolra_vlt120,wait130,usolra_vlt60 init=DADSuccess_boot
detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.
init=DADSuccess_boot detail of Initialization: see Test sequence for IPv6 Stateless Address Autoconfiguration.
TN(or X) NUT ------------------------------ Initialize NUT (see INITIALIZATION)
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 NUT's 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>
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 130 [sec] (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.