NAME

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


TARGET

Host and Router


SYNOPSIS

DADFail_DADPostSendNS.seq [-tooloption ...] -pkt <packetdef> [addrconf=<addrconfname>] [init=<initname>,<initname>...] [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
  <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 Fail when NUT received Valid NS (dst MAC addr != MAC addr of NUT) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received Valid NA (dst MAC addr != MAC addr of NUT) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received Valid NS (dst MAC addr == MAC addr of NUT) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received Valid NA (dst MAC addr == MAC addr of NUT) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received NA (No TLL option) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received NA (dst addr == solicited node multicast) on Stateless Link-local address autoconfiguration
   DAD Fail when NUT received Valid NS (dst MAC addr == MAC addr of NUT) on Manual Global address configuration
   DAD Fail when NUT received Valid NA (dst MAC addr == MAC addr of NUT) 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 DAD Packet to force NUT to detect address duplication.
  ==== Action #1: DAD NS ====>
        name: dadpkt_to_NUT

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

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

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


JUDGEMENT

Test for a Host and Router

 DAD Fail when NUT received Valid NS (dst MAC addr != MAC addr of NUT) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_valNS_DiffMacAddr.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 DAD NS to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        ether src: different as NUT's MAC address
        src: ::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 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 Fail when NUT received Valid NA (dst MAC addr != MAC addr of NUT) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_valNA_DiffMacAddr.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 DAD NA to force NUT to detect address duplication.
        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

   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 Fail when NUT received Valid NS (dst MAC addr == MAC addr of NUT) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_valNS_SameMacAddr.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 DAD NS to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        ether src: the same as NUT's MAC address
        src: ::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 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 Fail when NUT received Valid NA (dst MAC addr == MAC addr of NUT) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_valNA_SameMacAddr.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 DAD NA to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        ether src: the same as NUT's MAC address
        src: NUT's tentative Link-local address
        dst: allnodes multicast
        TargetAddress: NUT's tentative 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 Fail when NUT received NA (No TLL option) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_irregNA_notllopt.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 DAD NA to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        src: NUT's tentative Link-local address
        dst: allnodes multicast
        No TLL option ... TLL option must include on sending NA.
        TargetAddress: NUT's tentative 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 does 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 Fail when NUT received NA (dst addr == solicited node multicast) on Stateless Link-local address autoconfiguration
    -pkt LLOCAL_unspecNA_dst_solnode.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 DAD NA to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        src: NUT's tentative Link-local address
        dst: solnode[NUT's Link-local address]
             ... Regularly dst is allnode multicast, but NUT's interface receives solnode too,
                 so NUT accept the packet and 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 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 does 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 Fail when NUT received Valid NS (dst MAC addr == MAC addr of NUT) on Manual Global address configuration
    -pkt GLOBAL0A0N_valNS_SameMacAddr.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot

   Judgement #1. DAD NS must come from NUT on Manual Global 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 DAD NS to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        ether src: the same as NUT's MAC address
        src: ::0
        dst: solnode[NUT's tentative  _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   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 _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR

   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 or _GLOBAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
        OFlag: 1
        RFlag: 0 ( if NUT is a Router then 1)

 DAD Fail when NUT received Valid NA (dst MAC addr == MAC addr of NUT) on Manual Global address configuration
    -pkt GLOBAL0A0N_valNA_SameMacAddr.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot

   Judgement #1. DAD NS must come from NUT on Manual Global 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 DAD NA to force NUT to detect address duplication.
        name: dadpkt_to_NUT
        ether src: the same as NUT's MAC address
        src: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
        dst: allnodes multicast
        TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR

   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 _GLOBAL0A0N_UCAST_ADDR]
        TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR

   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 or _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.