NAME

V6LC_2_2_15_E - Router Advertisement Processing, Neighbor Cache (RA with SLLA changed, NCE PROBE)


TARGET

Host


TOPOLOGY

    |
   TR1     HUT
    |       |
----+-------+--- Link0

Link0 link-local fe80::/64
TR1 link-local fe80::200:ff:fe00:a0a0
ether 00:00:00:00:a0:a0
HUT link-local fe80::<NutDef.Link0_addr>
ether <NutDef.Link0_addr>


SETUP

none


TEST PROCEDURE

Verify that a host properly updates its Neighbor Cache upon receipt of a Router Advertisement.
   TR1     HUT
    |       |
    | ----> | Echo Request
    |   <-- | NS (multicast) [Judgment #1]
    | ----> | NA
    | <---- | Echo Reply     [Judgment #2]
    |       |
    *       | Wait (REACHABLE_TIME * MAX_RANDOM_FACTOR)
    |       |
    | ----> | Echo Request
    | <---- | Echo Reply     [Judgment #3]
    |       |
    *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |
    | <---- | NS             [Judgment #4]
    | -->   | RA
    |       |
    | ----> | Echo Request
    | <---- | Echo Reply     [Judgment #5]
    |       |
    *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |
    | <---- | NS             [Judgment #6]
    | <---- | NS
    | <---- | NS
    |       |
    V       V

1. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = HUT (link-local)
        Echo Request
2. Observe NS
        IPv6 header
            hop limit   = 255
            source      = RUT (link-local)
            destination = TR1 (solicited-node multicast address)
        NS
            target      = TR1 (link-local)
        SLL option
3. Send NA
        IPv6 header
            hop limit   = 255
            source      = TR1 (link-local)
            destination = HUT (link-local)
        NA
            R           = 1
            S           = 1
            O           = 1
            target      = TR1 (link-local)
        TLL option
4. Observe Echo Reply
        IPv6 header
            source      = HUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
5. Wait (REACHABLE_TIME * MAX_RANDOM_FACTOR)
        Node constants:
            REACHABLE_TIME   : 30,000 milliseconds
            MAX_RANDOM_FACTOR: 1.5
6. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = HUT (link-local)
        Echo Request
7. Observe Echo Reply
        IPv6 header
            source      = HUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
8. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
9. Observe NS
        IPv6 header
            hop limit   = 255
            source      = HUT (link-local)
            destination = TR1 (link-local)
        NS
            target      = TR1 (link-local)
        SLL option
10. Send RA
        IPv6 header
            hop limit          = 255
            source             = TR1 (link-local)
            destination        = all-nodes multicast address
        RA
            cur hop limit      = 64
            M                  = 0
            O                  = 0
            router lifetime    = 0
            reachable time     = 10000
            retrans timer      = 1000
        SLL option
            address     = TRY (ether)
11. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = HUT (link-local)
        Echo Request
12. Observe Echo Reply
        IPv6 header
            source      = HUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
13. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
14. Observe MAX_UNICAST_SOLICIT NSs
        IPv6 header
            hop limit   = 255
            source      = HUT (link-local)
            destination = TR1 (link-local)
        NS
            target      = TR1 (link-local)
        SLL option
        Node constants:
            MAX_UNICAST_SOLICIT: 3 transmissions


JUDGEMENT

[Judgment #1] The HUT should create a Neighbor Cache Entry for TR1 and set the state of the Entry to INCOMPLETE. The HUT should send a multicast Neighbor Solicitation to TR1.
[Judgment #2] The HUT should update the state of TR1's NCE to REACHABLE and record TR1's Link-layer Address. Because the HUT is in state REACHABLE, after receiving the earlier Echo Request from TR1, the HUT should send an Echo Reply using the received Link-Layer Address. After DELAY_FIRST_PROBE_TIME, the NUT should not send a unicast Neighbor Solicitation to TR1.
[Judgment #3] The HUT should update the state of TR1's NCE to STALE, send an Echo Reply to TR1 using the same Link-Layer address and enter state DELAY.
[Judgment #4] The HUT should update the state of TR1's NCE to PROBE by sending a unicast Neighbor Solicitation to TR1.
[Judgment #5] The HUT must change the state of the TN1's NCE to STALE and update TN1's Link-Layer Address according to the received Router Advertisement. Because the HUT's NCE for TN1 is in state STALE, the HUT should send an Echo Reply to TN1 using the new Link-Layer Address and enter state DELAY.
[Judgment #6] After DELAY_FIRST_PROBE_TIME, the NUT should send a unicast Neighbor Solicitation to TR1.


CLEANUP

The Cleanup procedure should cause the NUT to transition Neighbor Cache entries created in this test to state INCOMPLETE and remove any entries from its Default Router and Prefix Lists.
   TR1     HUT
    |       |
    | -->   | RA
    |       |
    V       V

1. Send RA
        IPv6 header
            hop limit          = 255
            source             = TR1 (link-local)
            destination        = all-nodes multicast address
        RA
            cur hop limit      = 64
            M                  = 0
            O                  = 0
            router lifetime    = 0
            reachable time     = 30000
            retrans timer      = 1000
        Prefix Information option
            prefix length      = 64
            L                  = 1
            A                  = 1
            valid Lifetime     = 0
            preferred lifetime = 0
            prefix             = 3ffe:501:ffff:100::


REFERENCE

RFC 2461 - Neighbor Discovery for IPv6