sendNsBasicLinkGlob - Verify that NUT send NSs (globl ==> link)
Host and Router
sendNsBasicLinkGlob.seq [-tooloption ...] -p sendNsBasicLinkGlob.def
TN NUT ----------------------
State: any (for TN, X)
==== multicast RA ===> src=X's link-local dst=all-node M=0, O=0, Lifetime=600, ReachableTime=0, RetransTImer=0 w/ SLLA Prefix: F=1, A=1, ValidLifetime=2592000, PreferredLifetime=604800 Prefix=3ffe:501:ffff:100::, PrefixLength=64
Wait (3 sec.) Ignoring DAD packets.
State: any (for TN), STALE (for X)
==== echo-request ===> src=TN's link-local dst=NUT's global
==== solicited NA ===> src=TN's link-local dst=NUT's global R=0, S=1, O=1 w/ TLLA
State: REACHABLE (for TN), STALE (for X)
TN NUT ----------------------
State: any (for TN)
==== echo-request ===> src=TN's link-local dst=NUT's global
==== solicited NA ===> src=TN's link-local dst=NUT's global R=0, S=1, O=1 w/ TLLA
State: REACHABLE (for TN)
sendNsBasicLinkGlob verifies that NUT send valid NSs in both INCOMPLETE state and PROBE state.
TN NUT ----------------------
State: REACHABLE (for TN)
Wait (REACHABLE_TIME * MAX_RANDOM_FACTOR)
State: STALE (for TN)
==== echo-request ===> src=TN's link-local dst=NUT's global
<=== Judgment #1: echo-reply ==== src=NUT's global dst=TN's link-local timeout: 2 sec
State: DELAY (for TN)
Wait (DELAY_FIRST_PROBE_TIME)
State: PROBE (for TN)
<=== Judgment #2: unicast NS ==== src=NUT's global or link-local dst:TN's link-local w/ or w/o SLLA timeout: RETRANS_TIMER * MAX_UNIICAST_SOLICIT
State: NONCE (for TN)
==== echo-request ===> src=TN's link-local dst=NUT's global
State: INCOMPLETE (for TN)
<=== Judgment #3: multicast NS ==== src=NUT's global dst=sol-node[TN's link-local] w/ SLLA timeout: RETRANS_TIMER * MAX_MULTICAST_SOLICIT
State: NONCE (for TN)
1. NUT must send an echo-reply: src: global, dst: link 2. NUT must send at the least one unicast NS: src: link/global, dst: link, w/ or w/o SLLA 3. NUT must send at the least one multicast NS: sec: global(SHOULD), dst: sol-node[link], w/ SLLA
Send RA with RouterLifetime=0 to flush the Default Router List.
1. RFC2461 does not describe the case where a NS sends in PROBE state The test judges NUT "PASS" even if NUT sends a NS whose source address is not global when PROBE state. 2. The test does not invoke any remote command.
RFC2461
7.2.2. Sending Neighbor Solicitations
When a node has a unicast packet to send to a neighbor, but does not know the neighbor's link-layer address, it performs address resolution. For multicast-capable interfaces this entails creating a Neighbor Cache entry in the INCOMPLETE state and transmitting a Neighbor Solicitation message targeted at the neighbor. The solicitation is sent to the solicited-node multicast address corresponding to the target address.
If the source address of the packet prompting the solicitation is the same as one of the addresses assigned to the outgoing interface, that address SHOULD be placed in the IP Source Address of the outgoing solicitation. Otherwise, any one of the addresses assigned to the interface should be used. Using the prompting packet's source address when possible insures that the recipient of the Neighbor Solicitation installs in its Neighbor Cache the IP address that is highly likely to be used in subsequent return traffic belonging to the prompting packet's "connection".
perldoc V6evalTool perldoc V6evalRemote