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
<=== Judgement #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 recieved | 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 Defaut 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 soruce 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" insted 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