NAME

Check if ValidLifetime is NOT reset on NUT by RA with same prefix (before expiry, same VLT)


TARGET

Host


SYNOPSIS

ADDRSTATE_not_reset_VLT.seq -pkt GLOBAL0_valRA_sameprfxes.def :sequence=usolra_vlt60,wait30,usolra_vlt60 init=DADSuccess_boot

 detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.


INITIALIZATION

 init=DADSuccess_boot
 detail of Initialization: see Test sequence for IPv6 Stateless Address Autoconfiguration.


TEST PROCEDURE

  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>


JUDGEMENT

  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)


SEE ALSO

 detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm
 detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.