# NAME

hostRecvRaReachableTime - Verifying that NUT recognize ReachableTime

# TARGET

Host only

# SYNOPSIS

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

# INITIALIZATION

1. Set ReachableTime by router X.
2. Create the state of neighbor cache entry for TN.
3. Set its state to REACHABLE whose IsRouter flag is FALSE.

      TN                 NUT
      ----------------------
      State: NONCE (for all)

      ==== unsolicited RA ===>
           src=X's link-local
           dst=all-node
           M=0, O=0
           RouterLifetime=600
           ReachableTime=a test condition
           RetransTimer=0
           w/ SLLA

      State: NONE (for TN), STALE(for X)

      ==== echo-request ===>
           src=TN's link-local
           dst=NUT's link-local

      <=== multicast NS ====
           src=NUT's link-local
           dst=solicited-node[TN's link-local]
           w/ SLLA
           timeout=RETRANS_TIMER * MAX_MULTICAST_SOLICIT

      ==== solicited NA ===>
           src=TN's link-local
           dst=NUT's link-local
           R=0, S=1, O=1
           target=TN's link-local
           w/ TLLA

      State: REACHABLE (for TN), STALE (for X)

# TEST PROCEDURE

hostRecvRaReachableTime verifies that NUT recognize ReachableTime.

#

#

#

#

      TN               NUT
      ----------------------
      State: REACHABLE (for TN)

      Wait for some seconds

      Judgment: Examining NUT's neighbor cache state

    JUDGMENT

    6.3.4.  Processing Received Router Advertisements

       If the received Reachable Time value is non-zero the host SHOULD set
       its BaseReachableTime variable to the received value.  If the new
       value differs from the previous value, the host SHOULD recompute a
       new random ReachableTime value.  ReachableTime is computed as a
       uniformly-distributed random value between MIN_RANDOM_FACTOR and
       MAX_RANDOM_FACTOR times the BaseReachableTime.  Using a random
       component eliminates the possibility Neighbor Unreachability
       Detection messages synchronize with each other.

      ==============+===================+==================
      RA received   | Wait Time
      by NUT        |
      --------------+-------------------+------------------
      ReachableTime | t <               | t >
                    | ReachableTime *   | ReachableTime *
                    | MIN_RANDOM_FACTOR | MAX_RANDOM_FACTOR
      ==============+===================+==================
      60            | t < 30, REACHABLE | t > 90,  STALE
      --------------+-------------------+------------------
      30            | t < 15, REACHABLE | t > 45,  STALE
      --------------+-------------------+------------------
      90            | t < 45, REACHABLE | t > 135, STALE
      ==============+===================+==================

    TERMINATION

      1. Send RA with ReachableTime=30sec to set TN's reachable time
         to the default value.

      2. Send RA with RouterLifetime=0 to clear the Default Router List.

    NOTE

      The test does not invoke any remote command.

    SEE ALSO

      perldoc V6evalTool
      perldoc V6evalRemote