NAME

MN-4-1-2-2-005 - Invalid type2 routing header (segments left != 1)


TARGET

Host


TOPOLOGY

                    
                                  |
                                  R       CN0
                                  |        |
                     -----+-------+--------+---------------- LinkZ
                          |
                          R2                      NUTY
                          |                         |
                     -----+-------+-----------------+------- LinkY
                                  |
                                  R1              NUTX
                                  |                 |
                     -----+-------+-----------------+------- LinkX
                          |
                         HA0             Node0    NUT0
                          |               |         |
    ----------------------+---------------+---------+------- Link0
                    
Link0 3ffe:501:ffff:100::/64 home link
LinkX 3ffe:501:ffff:102::/64  
LinkY 3ffe:501:ffff:103::/64  
LinkZ 3ffe:501:ffff:104::/64  
HA0(Link0) 3ffe:501:ffff:100:200:ff:fe00:a0a0  
Node0(Link0) 3ffe:501:ffff:100:200:ff:fe00:a3a3  
R1(LinkX) 3ffe:501:ffff:102:200:ff:fe00:a4a4  
R2(LinkY) 3ffe:501:ffff:103:200:ff:fe00:a6a6  
CN0(LinkZ) 3ffe:501:ffff:104:200:ff:fe00:a8a8  


INITIALIZATION

 1. Selection Option
    - Route Optimization support: YES
 2. Position of Mobile Node
       HA0     NUT0     R1      R2      CN0
        |       |       |       |        |
        | ----> |       |       |        | 1.Router Advertisement
        |       |       |       |        |
        |      NUTX     |       |        |
        |       |       |       |        |
        |       | <---- |       |        | 2.Router Advertisement
        |       |       |       |        |
        | <---- |       |       |        | 3.Neighbor Solicitations
        |       |       |       |        | 4.(no reply:3 seconds)
        |       |       |       |        |
        | <---- |       |       |        | 5.Binding Update
        | ----> |       |       |        | 6.Binding Acknowledgement
        |       |       |       |        |
                    
        1. Send Router Advertisement. (HA0 -> HA0_allnode_multi)
        2. Send Router Advertisement. (R1 -> R1_allnode_multi)
        3. Receive Neighbor Solicitations. (NUT0 -> HA0)
        4. (no reply)
            # Wait during a maximum of 3 seconds(RFC2461).
        5. Receive Binding Update to HA0. (NUTX -> HA0)
        6. Send Binding Acknowledgement. (HA0 -> NUTX)


TEST PROCEDURE

                    
       HA0     NUTX     R1      R2      CN0
        |       |       |       |        |
        | ====> | <--------------------- | 1.ICMP Echo Request
        |       |       |       |        |
        | <==== | ---------------------> | 2.Home Test Init
        |       | ---------------------> | 3.Care-of Test Init
        |       | <--------------------- | 4.Care-of Test
        | ====> | <--------------------- | 5.Home Test
        |       |       |       |        |
        | <==== | ---------------------> | 6.ICMP Echo Reply
        |       | ---------------------> | 7.Binding Update
        |       | ---------------------> | 8.ICMP Echo Reply
        |       |       |       |        |
        |       | <--------------------- | 9.ICMP Echo Request
        |       |       |       |        |10.(no reply) (*1)
        |       |       |       |        |
                    
        1. Send ICMP Echo Request. (out: HA0 -> NUTX, in: CN0 -> NUT0)
        2. Receive Home Test Init. (out: NUTX -> HA0, in: NUT0 -> CN0)
        3. Receive Care-of Test Init. (NUTX -> CN0)
        4. Send Care-of Test. (CN0 -> NUTX)
        5. Send Home Test. (out: HA0 -> NUTX, in: CN0 -> NUT0)
        6. Receive ICMP Echo Reply or [8]. (out: NUTX -> HA0, in: NUT0 -> CN0)
        7. Receive Binding Update to CN. (NUTX -> CN0)
        8. [6] or Receive ICMP Echo Reply. (NUTX -> CN0)
        9. Send ICMP Echo Request. (CN0 -> NUTX)
            # The Destination Address is set to care-of address.
            # The Hdr Ext Len field in type2 routing header is set to 4.
            # The Segments Left field in type2 routing header is set to the invalid value (2).
       10. (no reply)
            # Wait during the lifetime in the Lifetime field of Binding Update[7].
                    


JUDGEMENT

 (*1) PASS: CN0 does not receive ICMP Echo Reply by Route Optimization.


REFERENCE

                    
(draft-ietf-mobileip-ipv6-24.txt)
                    
11.3.3 Receiving Packets While Away from Home
                    
(snip)
                    
   A node receiving a packet addressed to itself (i.e., one of the
   node's addresses is in the IPv6 destination field) follows the next
   header chain of headers and processes them.  When it encounters a
   type 2 routing header during this processing it performs the
   following checks.  If any of these checks fail the node MUST silently
   discard the packet.
                    
   o  The length field in the routing header is exactly 2.
                    
   o  The segments left field in the routing header is 1 on the wire.
      (But implementations may process the routing header so that the
      value may become 0 after the routing header has been processed,
      but before the rest of the packet is processed.)
                    
   o  The Home Address field in the routing header is one of the node's
      home addresses, if the segments left field was 1.  Thus, in
      particular the address field is required to be a unicast routable
      address.
                    
   Once the above checks have been performed, the node swaps the IPv6
   destination field with the Home Address field in the routing header,
   decrements segments left by one from the value it had on the wire,
   and resubmits the packet to IP for processing the next header.
   Conceptually this follows the same model as in RFC 2460.  However, in
   the case of type 2 routing header this can be simplified since it is
   known that the packet will not be forwarded to a different node.