# NAME

LLA_DAD_NAPostDAD_SF1 - check the process when NUT receives invalid DAD `NA(SolicitedFlag==1)` with same Target address after sending DAD NS.

# TARGET

All Node

# SYNOPSIS

LLA_DAD_NAPostDAD_SF1.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
         (SolicitedFlag==1) DAD NA 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 NA =========>
              name: DADNA_from_TN_SF1

        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 NA which contains 1 as SolicitedFlag.
              name: DADNA_from_TN_SF1
              src: TN's Link-local
              dst: allnode
              TargetAddress: NUT's Link-local
              RFlag: 0
              SFlag: 1
              OFlag: 1
              TLLOPT: 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-local0
              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

    4.4.  Neighbor Advertisement Message Format

       (omit)
       A node sends Neighbor Advertisements in response to Neighbor
       Solicitations and sends unsolicited Neighbor Advertisements in order
       to (unreliably) propagate new information quickly.

           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             |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |R|S|O|                     Reserved                            |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                                                               |
          +                                                               +
          |                                                               |
          +                       Target Address                          +
          |                                                               |
          +                                                               +
          |                                                               |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |   Options ...
          +-+-+-+-+-+-+-+-+-+-+-+-

       (omit)

       IP Fields:

       (omit)

       ICMP Fields:

          Type           136

          Code           0

          Checksum       The ICMP checksum.  See [ICMPv6].

          R              Router flag.  When set, the R-bit indicates that
                         the sender is a router.  The R-bit is used by
                         Neighbor Unreachability Detection to detect a
                         router that changes to a host.

          S              Solicited flag.  When set, the S-bit indicates that
                         the advertisement was sent in response to a
                         Neighbor Solicitation from the Destination address.
                         The S-bit is used as a reachability confirmation
                         for Neighbor Unreachability Detection.  It MUST NOT
                         be set in multicast advertisements or in
                         unsolicited unicast advertisements.

          O              Override flag.  When set, the O-bit indicates that
                         the advertisement should override an existing cache
                         entry and update the cached link-layer address.
                         When it is not set the advertisement will not
                         update a cached link-layer address though it will
                         update an existing Neighbor Cache entry for which
                         no link-layer address is known.  It SHOULD NOT be
                         set in solicited advertisements for anycast
                         addresses and in solicited proxy advertisements.
                         It SHOULD be set in other solicited advertisements
                         and in unsolicited advertisements.

          Reserved       29-bit unused field.  It MUST be initialized to
                         zero by the sender and MUST be ignored by the
                         receiver.

          Target Address
                         For solicited advertisements, the Target Address
                         field in the Neighbor Solicitation message that
                         prompted this advertisement.  For an unsolicited
                         advertisement, the address whose link-layer address
                         has changed.  The Target Address MUST NOT be a
                         multicast address.
       (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