ncStateByRs4Stale - Verifying State Machine: Rs vs. STALE
Router Only
ncStateByRs4Stale.seq [-tooloption ...] -p ncStateByRs4Stale.def
TN NUT ----------------------
State: NONCE (for TN)
==== echo-request ===> src=TN's link-local dst=NUT's link-local
State: INCOMPLETE (for TN)
<=== multicast NS ==== src=NUT's link-local dst=solicited-node[TN's link-local] target=TN's link-local w/ SLLA timeout: RETRANS_TIMER * MAX_MULTICAST_SOLICIT
==== solicited NA ===> src=TN's link-local dst=NUT's link-local target=TN's link-local TLLA=TN's LLA
State: REACHABLE (for TN)
<=== echo-reply ==== src=NUT's link-local dst=TN's link-local timeout: 2 sec
Wait (REACHABLE_TIME * MAX_RANDOM_FACTOR)
State: STALE (for TN)
TN NUT ----------------------
State: NONCE (for TN)
==== echo-request ===> src=TN's link-local dst=NUT's link-local
State: INCOMPLETE (for TN)
<=== multicast NS ==== src=NUT's link-local dst=solicited-node[TN's link-local] target=TN's link-local w/ SLLA timeout: RETRANS_TIMER * MAX_MULTICAST_SOLICIT
==== solicited NA ===> src=TN's link-local dst=NUT's link-local target=TN's link-local TLLA=a bogus LLA
State: REACHABLE (for TN)
<=== echo-reply ==== src=NUT's link-local dst=TN's link-local timeout: 2 sec
Wait (REACHABLE_TIME * MAX_RANDOM_FACTOR)
State: STALE (for TN)
ncStateByRs4Stale verifies that state transition in STALE state when receiving a RS.
TN NUT ----------------------
State: STALE (for TN)
==== RS ===>
Judgment: Examining NUT's neighbor cache state
===============================+==========+=========+================= RS |New State |LLA Comments ---------+-----------+---------+ | Source IP|Destination|SLLA | | |IP | | | =========+===========+=========+==========+=========*================= TN's link all-router none STALE unchanged Not mentioned in RFC2461 ---------+-----------+---------+----------+---------+----------------- TN's link all-router same STALE unchanged ---------+-----------+---------+----------+---------+----------------- TN's link all-router different STALE updated =========+===========+=========+==========+=========+=================
N/A
TBD
6.2.6. Processing Router Solicitations
Router Solicitations in which the Source Address is the unspecified address MUST NOT update the router's Neighbor Cache; solicitations with a proper source address update the Neighbor Cache as follows. If the router already has a Neighbor Cache entry for the solicitation's sender, the solicitation contains a Source Link-Layer Address option, and the received link-layer address differs from that already in the cache, the link-layer address SHOULD be updated in the appropriate Neighbor Cache entry, and its reachability state MUST also be set to STALE. If there is no existing Neighbor Cache entry for the solicitation's sender, the router creates one, installs the link- layer address and sets its reachability state to STALE as specified in Section 7.3.3. Whether or not a Source Link-Layer Address option is provided, if a Neighbor Cache entry for the solicitation's sender exists (or is created) the entry's IsRouter flag MUST be set to FALSE.
perldoc V6evalTool perldoc V6evalRemote