NAME

V6LC_2_2_15_D - Router Advertisement Processing, Neighbor Cache (RA with SLLA unchanged, NCE REACHABLE)


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]
    |       |
    | -->   | RA
    |       |
    | ----> | Echo Request
    | <---- | Echo Reply     [Judgment #3]
    |       |
    *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |
    |   X-- | no response    [Judgment #4]
    |       |
    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. 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
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. no response


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 HUT should not send a unicast Neighbor Solicitation to TR1.
[Judgment #3] The HUT must not change the state of the TN1's NCE. After receiving the Echo Request from TR1, the HUT should send an Echo Reply using the same Link-Layer Address.
[Judgment #4] After DELAY_FIRST_PROBE_TIME, the HUT should not 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
    |       |
    | -->   | NA
    |       |
    | ----> | Echo Request
    | <---- | Echo Reply
    |       |
    *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |
    | <---- | NS
    | <---- | NS
    | <---- | NS
    |       |
    | -->   | RA
    |       |
    V       V

1. Send NA w/ TLL (diff)
        IPv6 header
            hop limit   = 255
            source      = TR1 (link-local)
            destination = all-nodes multicast address
        NA
            R           = 1
            S           = 0
            O           = 1
            target      = TR1 (link-local)
        TLL option
            address     = TRX (ether)
2. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = HUT (link-local)
        Echo Request
3. Observe Echo Reply
        IPv6 header
            source      = HUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
4. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
5. 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
6. 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