# NAME

ncStateByNa4Incomplete - Verifying State Machine: NA vs. INCOMPLETE

# TARGET

Host and Router

# SYNOPSIS

      ncStateByNa4Incomplete.seq [-tooloption ...] -p ncStateByNa4Incomplete.def

# INITIALIZATION

Set the state of neighbor cache entry to INCOMPLETE.

      TN               NUT
      ----------------------
      State: NONCE (for TN)

      ==== echo-request ===>
            src=TN's link-local
            dst=NUT's link-local

      State: INCOMPLETE (for TN)

# TEST PROCEDURE

ncStateByNa4Incomplete verifies that state transition for a NUT in INCOMPLETE state when receiving a NA.

      TN               NUT
      ----------------------

      State: INCOMPLETE (for TN)

      ==== NA ===>
    	src=TN's link-local
    	dst=NUT's link-local or all-node
    	w/o or w/ TLLA
    	r=0, s=0/1, o=0/1

      Judgment: Examining NUT's neighbor cache state

# JUDGMENT

    7.2.5.  Receipt of Neighbor Advertisements

       If the target's Neighbor Cache entry is in the INCOMPLETE state when
       the advertisement is received, one of two things happens.
       IF(no TLLA option) {
           If the link layer has addresses and no Target Link-Layer address
           option is included,
           the receiving node SHOULD silently discard the received advertisement.
       } ELSE {
           Otherwise, the receiving node performs the following steps:
            - It records the link-layer address in the Neighbor Cache entry.

            - IF(Solicited flag == 1) {
                  If the advertisement's Solicited flag is set,
                  the state of the entry is set to REACHABLE,
              } ELSE {
                  otherwise it is set to STALE.
              }

            - It sets the IsRouter flag in the cache entry based on the Router
              flag in the received advertisement.

            - It sends any packets queued for the neighbor awaiting address
              resolution.
       }

       Note that the Override flag is ignored if the entry is in the
       INCOMPLETE state.

      ===============================+===============+=============
      NA                             |New State      |cached LLA
      --------------+-+--+-+---------+               |
      Destination   |r| s|o|TLLA     |               |
      ==============+=+==+=+=========+===============+=============
      Unicast        0  0 0 none      INCOMPLETE      unchanged
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  0 1 none      INCOMPLETE      unchanged
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  1 0 none      INCOMPLETE      unchanged
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  1 1 none      INCOMPLETE      unchanged
      ==============+=+==+=+=========+===============+=============
      Unicast        0  0 0 exist     STALE           *updated
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  0 1 exist     STALE           *updated
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  1 0 exist     REACHABLE       *updated
      --------------+-+--+-+---------+---------------+-------------
      Unicast        0  1 1 exist     REACHABLE       *updated
      ==============+=+==+=+=========+===============+=============
      *Multicast     0  0 0 *none     INCOMPLETE      unchanged
                     *invalid
      --------------+-+--+-+---------+---------------+-------------
      *Multicast     0  0 1 *none     INCOMPLETE      unchanged
                     *invalid
      --------------+-+--+-+---------+---------------+-------------
      *Multicast     0 *1 0 *none     INCOMPLETE      unchanged
                     *invalid
      --------------+-+--+-+---------+---------------+-------------
      *Multicast     0 *1 1 *none     INCOMPLETE      unchanged
                     *invalid
      ==============+=+==+=+=========+===============+=============
      Multicast      0  0 0 exist     STALE           *updated
      --------------+-+--+-+---------+---------------+-------------
      Multicast      0  0 1 exist     STALE           *updated
      --------------+-+--+-+---------+---------------+-------------
      *Multicast     0 *1 0 exist     INCOMPLETE      unchanged
                     *invalid
      --------------+-+--+-+---------+---------------+-------------
      *Multicast     0 *1 1 exist     INCOMPLETE      unchanged
                     *invalid
      ==============+=+==+=+=========+===============+=============

# TERMINATION

      N/A

# NOTE

      The test does not invoke any remote command.

# SEE ALSO

      perldoc V6evalTool
      perldoc V6evalRemote