NAME

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


TARGET

Router


TOPOLOGY

                               MN1Y
                                |
                --------+-------+------- Link1Y
                        |
                       R1X     MN1X
                        |       |
        --------+-------+-------+------- Link1X
                |
                R1
                |
--------+-------+----------------------- Link1
        |
       NUT
        |
--------+-----------------------+------- Link0
                                |
                               MN0
Link0 global 3ffe:501:ffff:100::/64 home link
Link1 global 3ffe:501:ffff:101::/64 foreign link
Link1X global 3ffe:501:ffff:1101::/64 foreign link
Link1Y global 3ffe:501:ffff:2101::/64 foreign link
R1 (Link1) global 3ffe:501:ffff:101::a1a1  
ether 00:00:00:00:a1:a1
MN0 global 3ffe:501:ffff:100:200:ff:fe00:a2a2 home address
MN1X global 3ffe:501:ffff:1101:200:ff:fe00:a2a2 care-of address
MN1Y global 3ffe:501:ffff:2101:200:ff:fe00:a2a2 care-of address


INITIALIZATION

Check Link1 routing table
  NUT
(Link0)   MN1X    MN1Y
   |       |       |
   | <---- |       | Echo Request
   | ----> |       | Echo Reply
   |       |       |
   | <------------ | Echo Request
   | ------------> | Echo Reply
   |       |       |

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

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


TEST PROCEDURE

Check sequence number comparison
  NUT
(Link0)   MN1Y
   |       |
   | <---- | BU (SN=32782, A=0, lifetime=0x0010) (SPI=0x101)
   | ----> | BA (status=135, SN=32783) (SPI=0x102) (*1)
   |       |
   | <---- | Echo Request w/ HaO
   | ----> | BE (status=1) (*2)
   |       |

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


JUDGEMENT

(*1) PASS: MN1Y receives BA
(*2) PASS: MN1Y 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.