NAME

HA_1_1_7 - Receiving invalid BU (invalid header length) w/ BCE


TARGET

Router


TOPOLOGY

       NUT
        |
--------+-------+-------+------- Link0
                |       |
                R0     MN0
                |
        --------+-------+------- Link0X
                        |
                       MN0X
Link0 global 3ffe:501:ffff:100::/64 home link
Link0X global 3ffe:501:ffff:1100::/64 foreign link
R0 (Link0) global 3ffe:501:ffff:100::a0a0  
ether 00:00:00:00:a0:a0
MN0 global 3ffe:501:ffff:100:200:ff:fe00:a2a2 home address
MN0X global 3ffe:501:ffff:1100:200:ff:fe00:a2a2 care-of address


INITIALIZATION

Check Link0 routing table
  NUT
(Link0)   MN0     MN0X
   |       |       |
   | <---- |       | Echo Request
   | ----> |       | Echo Reply
   |       |       |
   | <------------ | Echo Request
   | ------------> | Echo Reply
   |       |       |

1. MN0 sends Echo Request
2. MN0 receives Echo Reply
3. MN0X sends Echo Request
4. MN0X receives Echo Reply
home registration
  NUT
(Link0)   MN0X
   |       |
   | <---- | BU (SN=1, A=1, lifetime=0x0010) (SPI=0x101)
   | ----> | BA (SN=1) (SPI=0x102)
   |       |
   | <---- | Echo Request w/ HaO
   | ----> | Echo Reply w/ RH
   |       |

1. MN0X sends BU
2. MN0X receives BA
3. MN0X sends Echo Request w/ HaO
4. MN0X receives Echo Reply w/ RH


TEST PROCEDURE

Check home registration
  NUT
(Link0)   MN0
   |       |
   | <---- | BU (length=0, A=1, lifetime=0x0010) (SPI=0x101)
   | ----> | Parameter Problem (*1)
   |       |

1. MN0 sends BU
    packet format is:
        Binding_Update_message_format_from_MN_to_HA_ESP.gif
2. MN0 receives Parameter Problem (*1)
Check BCE
  NUT
(Link0)   MN0X
   |       |
   | <---- | Echo Request w/ HaO
   | ----> | Echo Reply w/ RH (*2)
   |       |

1. MN0X sends Echo Request w/ HaO
2. MN0X receives Echo Reply w/ RH (*2)


JUDGEMENT

(*1) PASS: MN0 receives Parameter Problem
(*2) PASS: MN0X receives Echo Reply w/ RH


REFERENCE

9.2 Processing Mobility Headers
   Mobility Header processing MUST observe the following rules:
   o  The checksum must be verified as per Section 6.1.  Otherwise, the
      node MUST silently discard the message.
   o  The MH Type field MUST have a known value (Section 6.1.1).
      Otherwise, the node MUST discard the message and issue a Binding
      Error message as described in Section 9.3.3, with Status field set
      to 2 (unrecognized MH Type value).
   o  The Payload Proto field MUST be IPPROTO_NONE (59 decimal).
      Otherwise, the node MUST discard the message and SHOULD send ICMP
      Parameter Problem, Code 0, directly to the Source Address of the
      packet as specified in RFC 2463 [14].  Thus no Binding Cache
      information is used in sending the ICMP message.  The Pointer
      field in the ICMP message SHOULD point at the Payload Proto field.
   o  The Header Len field in the Mobility Header MUST NOT be less than
      the length specified for this particular type of message in
      Section 6.1.  Otherwise, the node MUST discard the message and
      SHOULD send ICMP Parameter Problem, Code 0, directly to the Source
      Address of the packet as specified in RFC 2463 [14].  (The Binding
      Cache information is again not used.) The Pointer field in the
      ICMP message SHOULD point at the Header Len field.
   Subsequent checks depend on the particular Mobility Header.