# NAME

LLA_DAD_NSPostDAD_wSLL - check the process when NUT receives invalid DAD `NS(contains` SLL) with same Target address after sending DAD NS.

# TARGET

All Node

# SYNOPSIS

LLA_DAD_NSPostDAD_wSLL.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 assignes autoconfigured address, even though NUT receives invalid
         (contains SLL) DAD NS for same target address as NUT, while DAD process
         (after transmitting 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_wSLL

        Wait for DupAddrDetectTransmits*RetransTimer

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

        <=== 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 invalid DAD NS which contains SLL
              name: DADNS_from_TN_wSLL
              src: ::0
              dst: solnode[NUT's tentative Link-local]
              TargetAddress: NUT's Link-local
              SLLOPT: TN's MAC address

         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.1.  Message Validation

       A node MUST silently discard any Neighbor Solicitation or
       Advertisement message that does not pass the validity checks
       specified in [DISCOVERY]. A solicitation that passes these validity
       checks is called a valid solicitation or valid advertisement.
       (omit)

    RFC2461

       (omit)
    4.3.  Neighbor Solicitation Message Format

       Nodes send Neighbor Solicitations to request the link-layer address
       of a target node while also providing their own link-layer address to
       the target.  Neighbor Solicitations are multicast when the node needs
       to resolve an address and unicast when the node seeks to verify the
       reachability of a neighbor.

             0                   1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |     Type      |     Code      |          Checksum             |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                           Reserved                            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |                                                               |
            +                                                               +
            |                                                               |
            +                       Target Address                          +
            |                                                               |
            +                                                               +
            |                                                               |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |   Options ...
            +-+-+-+-+-+-+-+-+-+-+-+-

       IP Fields:

       ICMP Fields:

          Type           135

          Code           0

          Checksum       The ICMP checksum.  See [ICMPv6].

          Reserved       This field is unused.  It MUST be initialized to
                         zero by the sender and MUST be ignored by the
                         receiver.

          Target Address
                         The IP address of the target of the solicitation.
                         It MUST NOT be a multicast address.

       Possible options:

          Source link-layer address
                         The link-layer address for the sender. MUST NOT be
                         included when the source IP address is the
                         unspecified address.  Otherwise, on link layers
                         that have addresses this option MUST be included in
                         multicast solicitations and SHOULD be included in
                         unicast solicitations.

          Future versions of this protocol may define new option types.
          Receivers MUST silently ignore any options they do not recognize
          and continue processing the message.

       (omit)

    7.1.1.  Validation of Neighbor Solicitations

       A node MUST silently discard any received Neighbor Solicitation
       messages that do not satisfy all of the following validity checks:

          - The IP Hop Limit field has a value of 255, i.e., the packet
            could not possibly have been forwarded by a router.

          - If the message includes an IP Authentication Header, the message
            authenticates correctly.

          - ICMP Checksum is valid.

          - ICMP Code is 0.

          - ICMP length (derived from the IP length) is 24 or more octets.

          - Target Address is not a multicast address.

          - All included options have a length that is greater than zero.

          - If the IP source address is the unspecified address, the IP
            destination address is a solicited-node multicast address.

          - If the IP source address is the unspecified address, there is no
            source link-layer address option in the message.

       The contents of the Reserved field, and of any unrecognized options,
       MUST be ignored.  Future, backward-compatible changes to the protocol
       may specify the contents of the Reserved field or add new options;
       backward-incompatible changes may use different Code values.

       The contents of any defined options that are not specified to be used
       with Neighbor Solicitation messages MUST be ignored and the packet
       processed as normal.  The only defined option that may appear is the
       Source Link-Layer Address option.

       A Neighbor Solicitation that passes the validity checks is called a
       "valid solicitation".

       (omit)

# SEE ALSO

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