# NAME

LLA_DAD_NSPostDAD_SameTgt - check the process when NUT receives DAD NS with same Target address while DAD `process(after` transmitting DAD NS).

# TARGET

All Node

# SYNOPSIS

LLA_DAD_NSPostDAD_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

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

  Test sequence

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

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

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

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

        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

         Judgement #1. NUT MUST 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 #1. TN transmits DAD NS which contains same target Address as NUT's tentative Link-local address.
              name: DADNS_from_TN_SameTgt
              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.
              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.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.

       Implementor's Note: many interfaces provide a way for upper layers to
       selectively enable and disable the looping back of multicast packets.
       The details of how such a facility is implemented may prevent
       Duplicate Address Detection from working correctly.  See the Appendix
       for further discussion.

       The following tests identify conditions under which a tentative
       address is not unique:

          - If a Neighbor Solicitation for a tentative address is
            received prior to having sent one, the tentative address is a
            duplicate.  This condition occurs when two nodes run Duplicate
            Address Detection simultaneously, but transmit initial
            solicitations at different times (e.g., by selecting different
            random delay values before transmitting an initial
            solicitation).

          - If the actual number of Neighbor Solicitations received exceeds
            the number expected based on the loopback semantics (e.g., the
            interface does not loopback packet, yet one or more
            solicitations was received), the tentative address is a
            duplicate. This condition occurs when two nodes run Duplicate
            Address Detection simultaneously and transmit solicitations at
            roughly the same time.

       (omit)

# SEE ALSO

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