NAME

hostRecvRaNHD - Verifying net-hop determination


TARGET

Host only


SYNOPSIS

  hostRecvRaNHD.seq [-tooloption ...] -p hostRecvRaNHD.def


INITIALIZATION

  1. Clear the Prefix List that was learned by RAs.
  2. Clear the Default Router List.
  3. Set its state to REACHABLE.
  4. The Router Lifetime of a RA is ether 0 or 600.
  5. A RA includes or excludes a prefix option.
  TN                 NUT
  ----------------------

State: NONCE (for TN)
==== unsolicited RA ===> src=TN's link-local dst=all-node M=0, O=0 RouterLifetime=0 or 600 ReachableTime=0 RetransTimer=0 w/ SLLA w/o Prefix option or Prefix Option: L=1, A=1 ValidLifetime=2592000 PreferredLifetime=604800 Prefix=3ffe:501:ffff:100::/64
State: STALE (for TN)
<=== Ns for DAD (if any) ==== src=unspecified dst=solicited-node[NUT's global, prefix=3ffe:501:ffff:100::/64] target=NUT's global
Wait (3 sec)
==== solicited NA ===> src=TN's link-local dst=NUT's link-local R=1, S=1, O=1 target=TN's link-local TLLA=TN's LLA
State: REACHABLE (for TN)


TEST PROCEDURE

hostRecvRaNHD verifies next-hop determination for an unicast address:

Off-link

  TN               NUT
  ----------------------

State: REACHABLE (for TN)
==== echo-request ===> src=off-link global, but LLA is TN's one dst=NUT's global
<=== Judgment #2: echo-reply ==== src=NUT's global dst=off-link global, but LLA is TN's one

On-link

  TN               NUT
  ----------------------

State: REACHABLE (for TN)
==== echo-request ===> src=off-link global, but LLA is TN's one dst=NUT's global
<=== Judgment #3: multicast NS ==== src=NUT's link-local dst=solicited-node[off-link global] target=off-link global w/ SLLA


JUDGMENT

1. Next-hop determination


5.2. Conceptual Sending Algorithm
Next-hop determination for a given unicast destination operates as follows. NUT performs a longest prefix match against the Prefix List to determine whether the packet's destination is on- or off-link. If the destination is on-link, the next-hop address is the same as the packet's destination address. Otherwise, NUT selects a router from the Default Router List. If the Default Router List is empty, NUT assumes that the destination is on-link.
=========+========+========================================== RA received | NUT by NUT | ---------+--------+-----------------+-------------+--------- Prefix |Router | The Prefix List | The Default | Next Hop Option |Lifetime| | Router List | =========+========+=================+=============+========== none | 0 | empty | empty | on-link ---------+--------+-----------------+-------------+---------- none | 600 | empty | NOT empty | off-link ---------+--------+-----------------+-------------+---------- exist | 0 | NOT empty | empty | on-link =========+========+=================+=============+==========
2. NUT throws an echo-reply to the default router (i.e. TN) because the given address should be off-link.
3. NUT sends multicast NSs for the given address because it should be on-link.


TERMINATION

Send RA with RouterLifetime=0 to clear the Default Router List. Clear the Prefix List and the Default Router List by remote commands. XXX


NOTE

1. RFC2461 describes that a host assumes the destination is on-link if the Default Router List is empty. However, it also describes that multihomed related issues are not concerned. It is also one of the issues that a host assumes an address is on-link if the Default Router List is empty. This test judges NUT "WARN" instead of "FAIL" in such case. 2. The echo request that NUT captures has an off-link source address and a link-local source address. It is reasonable for NUT not to throw the echo-reply to the default router because its source address is a link-local. This test judges NUT "WARN" instead of "FAIL" in such case. 3. The test invokes the following command: - Clear the Prefix List - Clear the Default Router List


SEE ALSO

perldoc V6evalTool perldoc V6evalRemote