# NAME

LLA_DAD_NAPostDAD_wSLL - check the process when NUT receives DAD NA with same Target address which contains SLL option, while DAD `process(after` transmitting DAD NS).

# TARGET

All Node

# SYNOPSIS

LLA_DAD_NAPostDAD_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 When NUT performs DAD for its Link-local unicast address made by stateless address autoconfiguration, NUT receives DAD NA which contains same target as NUT's tentative Link-local address and contains SLL option 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 NA =========>
              name: DADNA_from_TN_wSLL

        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 NA which contains same target Address as NUT's tentative Link-local address.
              name: DADNA_from_TN_wSLL
              src: TN's Link-local
              dst: allnode
              TargetAddress: NUT's tentative Link-local
              RFlag: 0
              SFlag: 0
              OFlag: 1
              TLLOPT: TN's MAC address
              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 DAD NA for its autoconfigured  Link-local address.
              name: DADNA_from_NUT, DADNA_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.4.  Receiving Neighbor Advertisement Messages

       On receipt of a valid Neighbor Advertisement message on an interface,
       node behavior depends on whether the target address is tentative or
       matches a unicast or anycast address assigned to the interface.  If
       the target address is assigned to the receiving interface, the
       solicitation is processed as described in [DISCOVERY]. If the target
       address is tentative, the tentative address is not unique.
       (omit)

    RFC2461

       (omit)
    4.6.1.  Source/Target Link-layer Address

          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      |    Length     |    Link-Layer Address ...
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

       Fields:

          Type
                         1 for Source Link-layer Address
                         2 for Target Link-layer Address

          Length         The length of the option (including the type and
                         length fields) in units of 8 octets.  For example,
                         the length for IEEE 802 addresses is 1 [IPv6-
                         ETHER].

          Link-Layer Address
                         The variable length link-layer address.

                         The content and format of this field (including
                         byte and bit ordering) is expected to be specified
                         in specific documents that describe how IPv6
                         operates over different link layers.  For instance,
                         [IPv6-ETHER].

       Description
                         The Source Link-Layer Address option contains the
                         link-layer address of the sender of the packet.  It
                         is used in the Neighbor Solicitation, Router
                         Solicitation, and Router Advertisement packets.

                         The Target Link-Layer Address option contains the
                         link-layer address of the target.  It is used in
                         Neighbor Advertisement and Redirect packets.

                         These options MUST be silently ignored for other
                         Neighbor Discovery messages.
       (omit)

    7.1.2.  Validation of Neighbor Advertisements

       A node MUST silently discard any received Neighbor Advertisement
       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.

          - If the IP Destination Address is a multicast address the
            Solicited flag is zero.

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

       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 Advertisement messages MUST be ignored and the packet
       processed as normal.  The only defined option that may appear is the
       Target Link-Layer Address option.

       A Neighbor Advertisements that passes the validity checks is called a
       "valid advertisement".

       (omit)

# SEE ALSO

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