Check if ValidLifetime is reset on NUT by RA with same prefix (before expiry, greater VLT)
Host
ADDRSTATE_reset_VLT.seq -pkt GLOBAL0_valRA_sameprfxes.def sequence=usolra_vlt60,wait30,usolra_vlt120 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_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_vlt120
Prefix option
ValidLifetime: 120
PreferredLifetime: 120
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] == 120 (ValidLifetime of usolra_vlt120)
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.