# NAME

sendNsBasicLocal - Verify that NUT send NSs (link ==> link)

# TARGET

Host and Router

# SYNOPSIS

      sendNsBasicLocal.seq [-tooloption ...] -pkt sendNsBasicLocal.def

# INITIALIZATION

1. Set NC state for TN to REACHABLE

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

      State: any (for TN)

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

      ==== solicited NA ===>
           src=TN's link-local
           dst=NUT's link-local
           w/ TLLA

      State: REACHABLE (for TN)

      <=== echo-reply   ====
           src=NUT's link-local
           dst=TN's link-local

# TEST PROCEDURE

sendNsBasicLocal 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 link-local

      <=== Judgment #1: echo-reply   ====
           src=NUT's link-local
           dst=TN's link-local
           timeout: 2 sec

      State: DELAY

      Wait (DELAY_FIRST_PROBE_TIME)

      State: PROBE

      <=== Judgment #2: unicast NS   ====
           src=TN's link-local
           dst=NUT's link-local
           w/ or w/o SLLA
           timeout: RETRANS_TIMER * MAX_UNICAST_SOLICIT

      State: NONCE (for TN)

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

      State: INCOMPLETE

      <=== Judgment #3: multicast NS ====
           src=NUT's link-local
           dst=sol-node[TN's link-local]
           w/ SLLA
           timeout: RETRANS_TIMER * MAX_MULTICAST_SOLICIT

      State: NONCE (for TN)

# JUDGMENT

      1. NUT must send one echo-reply:
         src: link, dst: link

      2. NUT must send at the most three unicast NSs:
         src: link, dst: link, w/ or w/o SLLA

      3. NUT must send at the most three multicast NSs:
         src: link(SHOULD), dst: sol-node[link], w/ SLLA

# TERMINATION

      N/A

# NOTE

      The test does not invoke any remote command.

# REFERENCE

    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".

# SEE ALSO

      perldoc V6evalTool
      perldoc V6evalRemote