NAME

v6LC_2_2_17_C - Router Advertisement Processing, IsRouter flag (RA with different Source Link-layer option as cached)


TARGET

Host


TOPOLOGY

           TN2
            |
----+-------+--- LinkX
    |
   TR1     HUT
    |       |
----+-------+--- Link0

Link0 global 3ffe:501:ffff:100::/64
link-local fe80::/64
LinkX global 3ffe:501:ffff::/64
link-local fe80::/64
TR1 global 3ffe:501:ffff:100:200:ff:fe00:a0a0
link-local fe80::200:ff:fe00:a0a0
ether 00:00:00:00:a0:a0
HUT global 3ffe:501:ffff:100::<NutDef.Link0_addr>
link-local fe80::<NutDef.Link0_addr>
ether <NutDef.Link0_addr>
TN2 global 3ffe:501:ffff::<TnDef.Link0_addr>
link-local fe80::<TnDef.Link0_addr>
ether <TnDef.Link0_addr>


SETUP

none


TEST PROCEDURE

Verify that a host properly updates the IsRouter flag in its Neighbor Cache upon receipt of a Router Advertisement.
   TN2     TR1     HUT
    |       |       |
    |       | ----> | Echo Request
    |       |   <-- | NS (multicast) [Judgment #1]
    |       | ----> | NA (R=0)
    |       | <---- | Echo Reply     [Judgment #2]
    |       |       |
    |       | -->   | RA
    |       |       |
    |       |       * Wait (MAX_RTR_SOLICITATION_DELAY + RetransTimer * DupAddrDetectTransmits)
    |       |       |
    | ------------> | Echo Request
    | <------------ | Echo Reply     [Judgment #3]
    |       |       |
    V       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           = 0
            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    = 1800
            reachable time     = 0
            retrans timer      = 0
        SLL option
            address            = TRY (ether)
        Prefix Information option
            prefix length      = 64
            L                  = 1
            A                  = 1
            valid Lifetime     = 2592000
            preferred lifetime = 604800
            prefix             = 3ffe:501:ffff:100::
6.  Wait (MAX_RTR_SOLICITATION_DELAY + RetransTimer * DupAddrDetectTransmits)
        Host constants:
            MAX_RTR_SOLICITATION_DELAY: 1 second
        Node constants:
            RETRANS_TIMER             : 1,000 milliseconds
        Host Variables:
            RetransTimer
                Default               : RETRANS_TIMER milliseconds
        Node Variables:
            DupAddrDetectTransmits
                Default               : 1
7. Send Echo Request
        IPv6 header
            source      = TN2 (global)
            destination = HUT (global)
        Echo Request
8. Observe Echo Reply
        IPv6 header
            source      = HUT (global)
            destination = TN2 (global)
        Echo Reply


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 received Global Address.


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