sendNsBasicGlobLink - Verify that NUT send NSs (link ==> global)
Host and Router
sendNsBasicGlobLink.seq [-tooloption ...] -p sendNsBasicGlobLink.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 global dst:NUT's link-local
==== solicited NA ===> src=TN's global dst=NUT's link-local 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 global dst:NUT's link-local
==== solicited NA ===> src=TN's global dst=NUT's link-local R=0, S=1, O=1 w/ TLLA
State: REACHABLE (for TN)
sendNsBasicGlobLink 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 global dst=NUT's link-local
<=== Judgment #1: echo-reply ==== src=NUT's link dst=TN's global timeout: 2 sec
State: DELAY (for TN)
Wait (DELAY_FIRST_PROBE_TIME)
State: PROBE (for TN)
<=== Judgment #2: unicast NS ==== src=NUT's link-local or global dst=TN's global w/ or w/o SLLA timeout: RETRANS_TIMER * MAX_UNIICAST_SOLICIT
State: NONCE (for TN)
==== echo-request ===> src=TN's global dst:NUT's link-local
State: INCOMPLETE (for TN)
<=== Judgment #3: multicast NS ==== src=NUT's link-local dst=sol-node[TN's global] w/ SLLA timeout: RETRANS_TIMER * MAX_MULTICAST_SOLICIT
State: NONCE (for TN)
1. NUT must send an echo-reply: src: link, dst: global 2. NUT must send at the most three unicast NS: src: link/global, dst: global, w/ or w/o SLLA 3. NUT must send at the most three multicast NS: src: link(SHOULD), dst: sol-node[global], 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 "PASS" even if NUT sends an NS whose source address is not link-local 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