NAME

HA_2_8_1 - Inalid sequence number A=1 SN(1st=32783, 2nd=32782)


TARGET

Router


TOPOLOGY

       NUT
        |
--------+-------+---------------+------- Link0
                |               |
                R0             MN0
                |
        --------+-------+-------+------- Link0X
                        |       |
                       R0X     MN0X
                        |
                --------+-------+------- Link0Y
                                |
                               MN0Y
Link0 global 3ffe:501:ffff:100::/64 home link
Link0X global 3ffe:501:ffff:1100::/64 foreign link
Link0Y global 3ffe:501:ffff:2100::/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
MN0Y global 3ffe:501:ffff:2100:200:ff:fe00:a2a2 care-of address


INITIALIZATION

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

1. MN0X sends Echo Request
2. MN0X receives Echo Reply
3. MN0Y sends Echo Request
4. MN0Y receives Echo Reply
home registration
  NUT
(Link0)   MN0X
   |       |
   | <---- | BU (SN=32783, A=1, lifetime=0x0010) (SPI=0x101)
   | ----> | BA (SN=32783) (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 sequence number comparison
  NUT
(Link0)   MN0Y
   |       |
   | <---- | BU (SN=32782, A=1, lifetime=0x0010) (SPI=0x101)
   | ----> | BA (status=135, SN=32783) (SPI=0x102) (*1)
   |       |
   | <---- | Echo Request w/ HaO
   | ----> | BE (status=1) (*2)
   |       |

1. MN0Y sends BU
    packet format is:
        Binding_Update_message_format_from_MN_to_HA_ESP.gif
2. MN0Y receives BA (*1)
    packet format is:
        Binding_Acknowledgement_message_format_from_HA_toMN_ESP.gif
3. MN0Y sends Echo Request w/ HaO
4. MN0Y receives BE (*2)
    packet format is:
        Binding_Error_message_from_HA_to_MN.gif


JUDGEMENT

(*1) PASS: MN0Y receives BA
(*2) PASS: MN0Y receives BE


REFERENCE

9.3.1 Receiving Packets with Home Address Option
   Packets containing a Home Address option MUST be dropped if the given
   home address is not a unicast routable address.
   Mobile nodes can include a Home Address destination option in a
   packet if they believe the correspondent node has a Binding Cache
   entry for the home address of a mobile node.  Packets containing a
   Home Address option MUST be dropped if there is no corresponding
   Binding Cache entry.  A corresponding Binding Cache entry MUST have
   the same home address as appears in the Home Address destination
   option, and the currently registered care-of address MUST be equal to
   the source address of the packet.  These tests MUST NOT be done for
   packets that contain a Home Address option and a Binding Update.
   If the packet is dropped due the above tests, the correspondent node
   MUST send the Binding Error message as described in Section 9.3.3.
   The Status field in this message should be set to 1 (unknown binding
   for Home Address destination option).
9.5.1 Receiving Binding Updates
   Before accepting a Binding Update, the receiving node MUST validate
   the Binding Update according to the following tests:
   o  The packet MUST contain a unicast routable home address, either in
      the Home Address option or in the Source Address, if the Home
      Address option is not present.
   o  The Sequence Number field in the Binding Update is greater than
      the Sequence Number received in the previous valid Binding Update
      for this home address, if any.
      If the receiving node has no Binding Cache entry for the indicated
      home address, it MUST accept any Sequence Number value in a
      received Binding Update from this mobile node.
      This Sequence Number comparison MUST be performed modulo 2**16,
      i.e., the number is a free running counter represented modulo
      65536.  A Sequence Number in a received Binding Update is
      considered less than or equal to the last received number if its
      value lies in the range of the last received number and the
      preceding 32768 values, inclusive.  For example, if the last
      received sequence number was 15, then messages with sequence
      numbers 0 through 15, as well as 32783 through 65535, would be
      considered less than or equal.
(snip)
   If the mobile node sends a sequence number which is not greater than
   the sequence number from the last valid Binding Update for this home
   address, then the receiving node MUST send back a Binding
   Acknowledgement with status code 135, and the last accepted sequence
   number in the Sequence Number field of the Binding Acknowledgement.