# NAME

LLA_DAD_NSPreDAD_SameTgt - check the process when NUT receives DAD NS with same Target address before sending DAD NS.

# TARGET

All Node

# SYNOPSIS

LLA_DAD_NSPreDAD_SameTgt.seq [-tooloption ...] -pkt <packetdef> [addrconf=<addrconfname>]

      -tooloption   : v6eval tool option
      <packetdef>   : packet definition file (v6eval tool option)
      <addrconfname>: how to configure address on NUT; boot/reboot

     detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm

# INITIALIZATION

     Reboot NUT or Initialize interface of NUT or Initialize IPv6 stack of NUT.

# TEST PROCEDURE

Test for Unicast address configuration

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

  Test for all node

         NUT performs DAD for its Link-local unicast address made by stateless address
         autoconfiguration though NUT receives DAD NS which contains same target as
         NUT's tentative Link-local address before transimitting DAD NS.

  Test sequence

        TN                            NUT
        ---------------------------------
        Initialize NUT

        Configure address of NUT (reboot or interface initialization etc...)

        ==== Action #1: DAD NS =========>
        ====        #1: DAD NS =========>
                      :
                      :
        ====        #1: DAD NS =========>
              name: DADNS_from_TN_SameTgt

        TN wait the DAD NS sent from NUT
        X<=== Judgement #1: DAD NS =======
              name: DADNS_from_NUT

        Wait for DupAddrDetectTransmits*RetransTimer

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

        X<== Judgement #2: SOL NA =======
              name: NA_from_NUT, NA_from_NUT_woTLL

# JUDGEMENT

Test for Link-local Unicast address autoconfiguration

  Test for all NODE

  NUT performs Stateless Address Autoconfiguration(Link-local) on its interface

         Action #1. TN transmits DAD NS which contains same target Address as NUT's tentative Link-local address.
                    Keep transmitting for *InitializingTime* .
              name: DADNS_from_TN_SameTgt
              src: ::0
              dst: solnode[NUT's tentative Link-local]
              TargetAddress: NUT's tentative Link-local

         Judgement #1. NUT MUST NOT transmit DAD NS for its autoconfigured Link-local address.
              name: DADNS_from_NUT
              src: ::0
              dst: solnode[NUT's tentative Link-local]
              TargetAddress: NUT's tentative Link-local

         Action #2. TN transmits SOL NS to check if NUT's address is configured after *InitializingTime*.
              name: SOLNS_from_TN_SameTgt
              src: TN's Link-local
              dst: solnode[NUT's Link-local]
              TargetAddress: NUT's Link-local

         Judgement #2. NUT MUST transmit SOL NA for its autoconfigured  Link-local address.
              name: NA_from_NUT, NA_from_NUT_woTLL
              src: NUT's Link-local
              dst: TN's Link-local
              TargetAddress: NUT's Link-local
              RFlag: 0 ( if NUT is a Router then 1)
              SFlag: 1
              OFlag: 1
              TLLOPT: NUT's MAC address

# REFERENCE

    RFC2462

       (omit)
    5.4.2.  Sending Neighbor Solicitation Messages

       Before sending a Neighbor Solicitation, an interface MUST join the
       all-nodes multicast address and the solicited-node multicast address
       of the tentative address.  The former insures that the node receives
       Neighbor Advertisements from other nodes already using the address;
       the latter insures that two nodes attempting to use the same address
       simultaneously detect each other's presence.

       To check an address, a node sends DupAddrDetectTransmits Neighbor
       Solicitations, each separated by RetransTimer milliseconds. The
       solicitation's Target Address is set to the address being checked,
       the IP source is set to the unspecified address and the IP
       destination is set to the solicited-node multicast address of the
       target address.

       If the Neighbor Solicitation is the first message to be sent from an
       interface after interface (re)initialization, the node should delay
       sending the message by a random delay between 0 and
       MAX_RTR_SOLICITATION_DELAY as specified in [DISCOVERY].  This serves
       to alleviate congestion when many nodes start up on the link at the
       same time, such as after a power failure, and may help to avoid race
       conditions when more than one node is trying to solicit for the same

       address at the same time. In order to improve the robustness of the
       Duplicate Address Detection algorithm, an interface MUST receive and
       process datagrams sent to the all-nodes multicast address or
       solicited-node multicast address of the tentative address while
       delaying transmission of the initial Neighbor Solicitation.

    5.4.3.  Receiving Neighbor Solicitation Messages

       On receipt of a valid Neighbor Solicitation message on an interface,
       node behavior depends on whether the target address is tentative or
       not.  If the target address is not tentative (i.e., it is assigned to
       the receiving interface), the solicitation is processed as described
       in [DISCOVERY].  If the target address is tentative, and the source
       address is a unicast address, the solicitation's sender is performing
       address resolution on the target; the solicitation should be silently
       ignored.  Otherwise, processing takes place as described below. In
       all cases, a node MUST NOT respond to a Neighbor Solicitation for a
       tentative address.

       If the source address of the Neighbor Solicitation is the unspecified
       address, the solicitation is from a node performing Duplicate Address
       Detection. If the solicitation is from another node, the tentative
       address is a duplicate and should not be used (by either node). If
       the solicitation is from the node itself (because the node loops back
       multicast packets), the solicitation does not indicate the presence
       of a duplicate address.

       (omit)

# SEE ALSO

     detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm