NAME

V6LC_2_1_18_H - NA Processing, NCE State REACHABLE (Unicast NA (S=1&O=1) with the same TLLA)


TARGET

Host/Router


TOPOLOGY

    TN     NUT
    |       |
----+-------+--- Link0

Link0 link-local fe80::/64
TN link-local fe80::<TnDef.Link0_addr>
ether <TnDef.Link0_addr>
NUT link-local fe80::<NutDef.Link0_addr>
ether <NutDef.Link0_addr>


SETUP

none


TEST PROCEDURE

- Verify that NUT doesn't update entry's reachablity state
- Verify that NUT transmits Echo Reply in REACHABLE state
- Verify that NUT doesn't transmit any packets in REACHABLE state
    TN     NUT
    |       |
    | ----> | Echo Request
    |   <-- | NS (multicast)
    | ----> | NA
    | <---- | Echo Reply
    |       |
    | ----> | NA
    |       |
    | ----> | Echo Request
    | <---- | Echo Reply   [Judgment #1]
    |       |
    *       | Observe any packets for (DELAY_FIRST_PROBE_TIME + RETRANS_TIMER * MAX_UNICAST_SOLICIT) [Judgment #2]
    |       |
    V       V

    State: NONE (TN) (link-local)
1. Send Echo Request
        IPv6 header
            source      = TN  (link-local)
            destination = NUT (link-local)
        Echo Request
    State: INCOMPLETE (TN) (link-local)
2. Observe NS
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TN  (solicited-node multicast address)
        NS
            target      = TN  (link-local)
        SLL option
3. Send NA
        IPv6 header
            hop limit   = 255
            source      = TN  (link-local)
            destination = NUT (link-local)
        NA
            R           = 0
            S           = 1
            O           = 1
            target      = TN  (link-local)
        TLL option
    State: REACHABLE (TN) (link-local)
4. Observe Echo Reply
        IPv6 header
            source      = NUT (link-local)
            destination = TN  (link-local)
        Echo Reply
    State: REACHABLE (TN) (link-local)
5. Send NA
        IPv6 header
            hop limit   = 255
            source      = TN  (link-local)
            destination = NUT (link-local)
        NA
            R           = 0
            S           = 1
            O           = 1
            target      = TN  (link-local)
        TLL option
6. Send Echo Request
        IPv6 header
            source      = TN  (link-local)
            destination = NUT (link-local)
        Echo Request
7. Observe Echo Reply [Judgment #1]
        IPv6 header
            source      = NUT (link-local)
            destination = TN  (link-local)
        Echo Reply
8. Observe any packets for (DELAY_FIRST_PROBE_TIME + RETRANS_TIMER * MAX_UNICAST_SOLICIT) [Judgment #2]
        Node constants:
            RETRANS_TIMER         : 1,000 milliseconds
            DELAY_FIRST_PROBE_TIME: 5 seconds
            MAX_UNICAST_SOLICIT   : 3 transmissions
    State: REACHABLE (TN) (link-local)


JUDGEMENT

[Judgment #1] NUT must transmit Echo Reply to TN
[Judgment #2] NUT must not transmit any packets


Index NA Previous New
Source Addr Destination Addr R S O TLL option State Cached LLA State Cached LLA
V6LC_2_1_18_A unicast unicast 0 0 0 none REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_B unicast unicast 0 0 1 none REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_C unicast unicast 0 1 0 none REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_D unicast unicast 0 1 1 none REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_E unicast unicast 0 0 0 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_F unicast unicast 0 0 1 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_G unicast unicast 0 1 0 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_H unicast unicast 0 1 1 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_I unicast unicast 0 0 0 different REACHABLE exist STALE unchanged
V6LC_2_1_18_J unicast unicast 0 0 1 different REACHABLE exist STALE updated
V6LC_2_1_18_K unicast unicast 0 1 0 different REACHABLE exist STALE unchanged
V6LC_2_1_18_L unicast unicast 0 1 1 different REACHABLE exist REACHABLE updated
V6LC_2_1_18_M unicast multicast 0 0 0 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_N unicast multicast 0 0 1 same REACHABLE exist REACHABLE unchanged
V6LC_2_1_18_O unicast multicast 0 0 0 different REACHABLE exist STALE unchanged
V6LC_2_1_18_P unicast multicast 0 0 1 different REACHABLE exist STALE updated


CLEANUP

- Set neighbor cache state for TN to NONE
    TN     NUT
    |       |
    | ----> | NS (unicast) (different cached address)
    | <---- | NA
    |       |
    *       | Wait (DELAY_FIRST_PROBE_TIME)
    |       |
    | <---- | NS (unicast)
    | <---- | NS (unicast)
    | <---- | NS (unicast)
    |       |
    V       V

    State: REACHABLE (TN) (link-local)
1. Send NS
        IPv6 header
            hop limit   = 255
            source      = TN  (link-local)
            destination = NUT (link-local)
        NS
            target      = NUT (link-local)
        SLL option
            address     = H0  (ether)
    State: STALE (TN) (link-local)
2. Observe NA
        IPv6 header
            source      = NUT (link-local)
            destination = TN  (link-local)
        NA
            R           = 0   (If NUT is Host)
                        = 1   (If NUT is Router)
            S           = 1
            O           = 1
            target      = NUT (link-local)
        TLL option
    State: DELAY (TN) (link-local)
3. Wait (DELAY_FIRST_PROBE_TIME)
        Node constants:
            DELAY_FIRST_PROBE_TIME: 5 seconds
    State: PROBE (TN) (link-local)
4. Observe MAX_UNICAST_SOLICIT NSs
        IPv6 header
            hop limit   = 255
            source      = NUT (link-local)
            destination = TN  (link-local)
        NS
            target      = TN  (link-local)
        SLL option
        Node constants:
            MAX_UNICAST_SOLICIT: 3 transmissions
    State: NONE (TN) (link-local)


REFERENCE

RFC 2461 - Neighbor Discovery for IPv6