NAME

V6LC_2_2_12_A - Router Advertisement Processing, Cur Hop Limit (Unspecified)


TARGET

Host/Router


TOPOLOGY

    |
   TR1     TN1     NUT
    |       |       |
----+-------+-------+--- Link0

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


SETUP

This minimal setup procedure provides the NUT with a default router TR1, a global prefix, and ensures that the NUT can communicate with TR1.
   TR1     NUT
    |       |
    =========
    if NUT is a host
    |       |
    | -->   | RA
    |       |
    *       | Wait (MAX_RTR_SOLICITATION_DELAY + RetransTimer * DupAddrDetectTransmits)
    |       |
    if NUT is a router
    |       |
    |       * configure a default route with TR1 as the next hop
    |       |
    =========
    |       |
    | ----> | Echo Request
    |   <-- | NS
    | ----> | NA
    | <---- | Echo Reply
    |       |
    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    = 1800
            reachable time     = 0
            retrans timer      = 0
        Prefix Information option
            prefix length      = 64
            L                  = 1
            A                  = 1
            valid Lifetime     = 2592000
            preferred lifetime = 604800
            prefix             = 3ffe:501:ffff:100::
2.  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
3. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = NUT (link-local)
        Echo Request
4. Observe NS
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TR1 (solicited-node multicast address)
        NS
            target      = TR1 (link-local)
        SLL option
5. Send NA
        IPv6 header
            hop limit   = 255
            source      = TR1 (link-local)
            destination = NUT (link-local)
        NA
            R           = 1
            S           = 1
            O           = 1
            target      = TR1 (link-local)
        TLL option
6. Observe Echo Reply
        IPv6 header
            source      = NUT (link-local)
            destination = TR1 (link-local)
        Echo Reply


TEST PROCEDURE

- Verify that a host properly processes the Cur Hop Limit field of a Router Advertisement.
   TR1     TN1     NUT
    |       |       |
    |       | ----> | Echo Request
    |       |   <-- | NS           [Judgment #1]
    |       | ----> | NA
    |       | <---- | Echo Reply
    |       |       |
    =================
    if NUT is a host
    | -->   |       | RA
    |       |       |
    if NUT is a router
    |       |       * configure the CurHopLimit to value of 0(zero)
    |       |       |
    =================
    |       |       |
    |       | ----> | Echo Request
    |       | <---- | Echo Reply   [Judgment #2]
    |       |       |
    V       V       V

1. Send Echo Request
        IPv6 header
            source      = TN1 (link-local)
            destination = NUT (link-local)
        Echo Request
2. Observe NS
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TN1 (solicited-node multicast address)
        NS
            target      = TN1 (link-local)
        SLL option
3. Send NA
        IPv6 header
            hop limit   = 255
            source      = TN1 (link-local)
            destination = NUT (link-local)
        NA
            R           = 0
            S           = 1
            O           = 1
            target      = TN1 (link-local)
        TLL option
4. Observe Echo Reply
        IPv6 header
            hop limit   = 64
            source      = NUT (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      = 0
            M                  = 0
            O                  = 0
            router lifetime    = 1800
            reachable time     = 0
            retrans timer      = 0
        Prefix Information option
            prefix length      = 64
            L                  = 1
            A                  = 1
            valid Lifetime     = 2592000
            preferred lifetime = 604800
            prefix             = 3ffe:501:ffff:100::
6. Send Echo Request
        IPv6 header
            source      = TN1 (link-local)
            destination = NUT (link-local)
        Echo Request
7. Observe Echo Reply
        IPv6 header
            hop limit   = 64
            source      = NUT (link-local)
            destination = TN1 (link-local)
        Echo Reply


JUDGEMENT

[Judgment #1] The NUT should respond to the Request from TN1. Observe the Hop Limit value in the Echo Reply packet the NUT transmits.
[Judgment #2] The NUT should respond to the Request from TN1. The Hop Limit value in the Echo Reply should be the same as was used in step 2.


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     TN1     NUT
    |       |       |
    | -->   |       | RA
    |       |       |
    |       | -->   | NA
    |       |       |
    |       | ----> | Echo Request
    |       | <---- | Echo Reply
    |       |       |
    |       *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |       |
    |       | <---- | NS
    |       | <---- | NS
    |       | <---- | NS
    |       |       |
    | -->   |       | NA
    |       |       |
    | ----> |       | Echo Request
    | <---- |       | Echo Reply
    |       |       |
    *       |       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |       |
    | <---- |       | NS
    | <---- |       | NS
    | <---- |       | NS
    |       |       |
    V       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    = 1800
            reachable time     = 0
            retrans timer      = 0
        Prefix Information option
            prefix length      = 64
            L                  = 1
            A                  = 1
            valid Lifetime     = 0
            preferred lifetime = 0
            prefix             = 3ffe:501:ffff:100::
2. Send NA w/ TLL (diff)
        IPv6 header
            hop limit   = 255
            source      = TN1 (link-local)
            destination = all-nodes multicast address
        NA
            R           = 0
            S           = 0
            O           = 1
            target      = TN1 (link-local)
        TLL option
            address     = TRX (ether)
3. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = NUT (link-local)
        Echo Request
4. Observe Echo Reply
        IPv6 header
            source      = NUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
5. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
6. Observe MAX_UNICAST_SOLICIT NSs
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TR1 (link-local)
        NS
            target      = TR1 (link-local)
        SLL option
        Node constants:
            MAX_UNICAST_SOLICIT: 3 transmissions
7. 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)
8. Send Echo Request
        IPv6 header
            source      = TR1 (link-local)
            destination = NUT (link-local)
        Echo Request
9. Observe Echo Reply
        IPv6 header
            source      = NUT (link-local)
            destination = TR1 (link-local)
        Echo Reply
10. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
11. Observe MAX_UNICAST_SOLICIT NSs
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TR1 (link-local)
        NS
            target      = TR1 (link-local)
        SLL option
        Node constants:
            MAX_UNICAST_SOLICIT: 3 transmissions


REFERENCE

RFC 2461 - Neighbor Discovery for IPv6