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