NAME

DADSuccess_DADPostSendNS - check if NUT does not detect address duplication in state DADPostSendNS(after sending out first DAD NS)


TARGET

Host and Router


SYNOPSIS

DADSuccess_DADPostSendNS.seq [-tooloption ...] -pkt <packetdef> [addrconf=<addrconfname>] [init=<initname>,<initname>...] [send=<sendname>] [sd=<sdopt>]

  -tooloption   : v6eval tool option
  <packetdef>   : packet definition file (v6eval tool option)
  <addrconfname>: how to configure address on NUT; boot/manual+/ra
  <initname>    : how to initialize NUT; DADSuccess_boot/DADFail_boot/ra
  <sendname>    : send packet or not when NUT performs DAD; none/send
  <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.


INITIALIZATION

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


TEST PROCEDURE

 The following tests are prepared in this test package. See INDEX file.

Test for a Host and Router

   DAD Success when NUT received no packet on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NS (Hoplimit != 255) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NS (Include SLL opt) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received NS (Src addr is Unicast) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NA (Hoplimit != 255) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received Invalid NA (S flag == 1) on Stateless Link-local address autoconfiguration
   DAD Success when NUT received NA (Dst addr is unicast) on Stateless Link-local address autoconfiguration

   DAD Success when NUT received no packet on Manual Link-local address configuration
   DAD Success when NUT received no packet on Manual Global address configuration
   DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Manual Global address configuration
   DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Manual Global address configuration

Test sequence

  TN(or X)                   NUT
  ------------------------------
  Initialize NUT (see ...)

  Configure address of NUT (boot or manual or ra, see ...)

  TN wait the DAD NS sends from NUT
  <=== Judgement #1: DAD NS ====
        name: dadns_from_NUT

  Immediately (within $RetransTimerSec [sec]) send strange DAD Packet to NUT to check if NUT ignore this.
  ==== Action #1: DAD NS ====>
        name: dadpkt_to_NUT

  Wait for NUT to finish DAD. (sleep $RetransTimerSec [sec])

  Check if NUT's address is configured
  ==== Action #2: DAD NS ====>
        name: chkconf_dadns_to_NUT

  DAD NA come from NUT because NUT does not detect address duplication and address is configured.
  <=== Judgement #2: DAD NA ====
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)


JUDGEMENT

Test for a Host and Router

 DAD Success when NUT received no packet on Stateless Link-local address autoconfiguration
  -pkt LLOCAL.def                        addrconf=boot send=none

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send No Packet to NUT (NUT does not detect address duplication).

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNS_dst_allnodes.def   addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: allnodes multicast (invalid, it must be solnode)
        TargetAddress: NUT's Link-local address

   Action #2. Send DAD NS to check if NUT's address is not configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA must not come from NUT because NUT detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNS_dst_tentative.def  addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: NUT's tentative address (invalid, it must be solnode)
        TargetAddress: NUT's tentative Link-local address

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Hoplimit != 255) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNS_hoplimit.def       addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        hoplimit: 64  (invalid, it must be 255)
        TargetAddress: NUT's tentative Link-local address

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Include SLL opt) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNS_sllopt.def         addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address
        SLL option exists  (invalid, it must not exists SLL option)

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received NS (Src addr is Unicast) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_irregNS_src_ucast.def      addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send strange DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: unicast address (NUT's tentative address) (invalid, it must be ::0)
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NA (Hoplimit != 255) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNA_hoplimit.def       addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NA to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        ether src: different as NUT's MAC address
        src: NUT's tentative Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's tentative Link-local address
        hoplimit: 64  (invalid, it must be 255)

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NA (S flag == 1) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_invalNA_sflag1.def         addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send Invalid DAD NA to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        ether src: different as NUT's MAC address
        src: NUT's tentative Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's tentative Link-local address
        SFlag: 1 ( invalid, must be zero if DestinationAddress is a multicast)

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received NA (Dst addr is unicast) on Stateless Link-local address autoconfiguration
  -pkt LLOCAL_unspecNA_dst_ucast.def     addrconf=boot

   Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative Link-local address]
        TargetAddress: NUT's tentative Link-local address

   Action #1. Send strange DAD NA to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        ether src: different as NUT's MAC address
        src: NUT's Link-local address
        dst: NUT's Link-local address
             ... Regularly  dst is allnodes multicast. At this point, NUT doesnot assign the address,
                 so NUT cannot accept the packet and cannot detect address duplication. It's not
                 specified in RFC but looks like natural.
        TargetAddress: NUT's tentative Link-local address

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's Link-local address]
        TargetAddress: NUT's Link-local address

   Judgement #2. DAD NA come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's Link-local address
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received no packet on Manual Link-local address configuration
  -pkt LLOCAL0A0N.def                    addrconf=manual+_LLOCAL0A0N_UCAST init=DADSuccess_boot send=none

   Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative _LLOCAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's tentative _LLOCAL0A0N_UCAST_ADDR

   Action #1. Send No Packet to NUT (NUT does not detect address duplication).

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's _LLOCAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _LLOCAL0A0N_UCAST_ADDR

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's _LLOCAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's _LLOCAL0A0N_UCAST_ADDR
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received no packet on Manual Global address configuration
  -pkt GLOBAL0A0N.def                       addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot send=none

   Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   Action #1. Send No Packet to NUT (NUT does not detect address duplication).

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's _GLOBAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Manual Global address configuration
  -pkt GLOBAL0A0N_invalNS_dst_allnodes.def  addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot

   Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: allnodes multicast (invalid, it must be solnode)
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's _GLOBAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Manual Global address configuration
  -pkt GLOBAL0A0N_invalNS_dst_tentative.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot

   Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration.
        name: dadns_from_NUT
        src: ::0
        dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this.
        name: dadpkt_to_NUT
        src: ::0
        dst: NUT's tentative address _GLOBAL0A0N_UCAST_ADDR (invalid, it must be solnode)
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   Action #2. Send DAD NS to check if NUT's address is configured
        name: chkconf_dadns_to_NUT
        src: ::0
        dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR

   Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication.
        name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
        src: NUT's _GLOBAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)


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.