NAME

HA_2_7_8 - Valid sequence number A=0 SN(1st=32783, 2nd=14)


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


TEST PROCEDURE

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

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


JUDGEMENT

(*1) PASS: MN1X receives BA
(*2) PASS: MN1X receives Echo Reply w/ RH 
(*3) PASS: MN1Y receives BA
(*4) PASS: MN1Y 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.