ncStateByNa4Incomplete - Verifying State Machine: NA vs. INCOMPLETE
Host and Router
ncStateByNa4Incomplete.seq [-tooloption ...] -p ncStateByNa4Incomplete.def
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)
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
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 ==============+=+==+=+=========+===============+=============
N/A
The test does not invoke any remote command.
perldoc V6evalTool perldoc V6evalRemote