NAME

HA_2_5_1 - Valid sequence number A=1 SN(1st=15, 2nd=16)


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


TEST PROCEDURE

Check sequence number comparison
  NUT
(Link0)   MN0X    MN0Y
   |       |       |
   | <---- |       | BU (SN=15, A=1, lifetime=0x0010) (SPI=0x101)
   | ----> |       | BA (SN=15) (SPI=0x102) (*1)
   |       |       |
   | <---- |       | Echo Request w/ HaO
   | ----> |       | Echo Reply w/ RH (*2)
   |       |       |
   | <------------ | BU (SN=16, A=1, lifetime=0x0010) (SPI=0x101)
   | ------------> | BA (SN=16) (SPI=0x102) (*3)
   |       |       |
   | <------------ | Echo Request w/ HaO
   | ------------> | Echo Reply w/ RH (*4)
   |       |       |

1. MN0X sends BU
    packet format is:
        Binding_Update_message_format_from_MN_to_HA_ESP.gif
2. MN0X receives BA (*1)
    packet format is:
        Binding_Acknowledgement_message_format_from_HA_toMN_ESP.gif
3. MN0X sends Echo Request w/ HaO
4. MN0X receives Echo Reply w/ RH (*2)
5. MN0Y sends BU
    packet format is:
        Binding_Update_message_format_from_MN_to_HA_ESP.gif
6. MN0Y receives BA (*3)
    packet format is:
        Binding_Acknowledgement_message_format_from_HA_toMN_ESP.gif
7. MN0Y sends Echo Request w/ HaO
8. MN0Y receives Echo Reply w/ RH (*4)


JUDGEMENT

(*1) PASS: MN0X receives BA
(*2) PASS: MN0X receives Echo Reply w/ RH 
(*3) PASS: MN0Y receives BA
(*4) PASS: MN0Y receives Echo Reply w/ RH 


REFERENCE

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.