Subject: [Mipshop] Comments on RFC 5568 on Mobile IPv6 Fast Handovers

From: "Cypher, David E." <[email-masked]>
Date: Fri, 7 Aug 2009 09:54:16 -0400

#1
-----------------------
This error was introduced going from RFC 4068 to RFC 5268.
RFC 5568 continued to carry forward the error.

RFC 5568 page 29, 6.2.1.2, HAck

"
   Upon receiving an HI message, the NAR MUST respond with a Handover
   Acknowledge message.  If the 'S' flag is set in the HI message, the
   NAR SHOULD include the New Care-of Address option and a Code 3.
"

Code 3 in RFC 5268 and RFC 5568 means Handover Accepted, use PCoA.
However in RFC 4068 it meant Handover Accepted, NCoA assigned.

To me this implies Code 3 (three) needs to be changed to Code 2 (two).

"
   Upon receiving an HI message, the NAR MUST respond with a Handover
   Acknowledge message.  If the 'S' flag is set in the HI message, the
   NAR SHOULD include the New Care-of Address option and a Code 2.
"

#2
-------------------------
What is the meaning of "(in the form of an IP Address Option)?"
Does form mean format?

RFC5568, Page 39, 6.4.6, NAACK
"
      Length: 8-bit unsigned integer.  Length of the option, in 8
      octets.  The length is 1 when a new CoA is not supplied.  The
      length is 3 when a new CoA is present (immediately following the
      Reserved field)

      Option-Code: 0

      Status: 8-bit unsigned integer indicating the disposition of the
      Unsolicited Neighbor Advertisement message.  The following Status
      values are currently defined:

         1: NCoA is invalid, perform address configuration

         2: NCoA is invalid, use the supplied NCoA.  The supplied NCoA
         (in the form of an IP Address Option) MUST be present following
         the Reserved field.
"

Since this option is using the ND space the length is in 8 octets.
If no new CoA is present the length is 1 (indicating 8 octets from Type to Reserved, which is true)
If a new CoA is present the length is stated to be 3, however this is confusing, if not wrong. The length would be 4, if the new CoA follows the IP Address / Prefix Option as defined in 6.4.1 because it contains 8 octets Type to Reserved plus 16 octets for the IPv6 address.  Thus there are already 3 (x8 = 24 octets) in the IP Address / Prefix Option.  Add this to the existing NAACK and that makes 32 octets (4 x 8).

Unless the "(in the form of an IP Address Option)" does not mean to actually use the IP Address Option, but rather means just to append the 16 octets for the IPv6 address only.  If this is the case perhaps the Figure 16 should be updated to reflect this.  However, I do not see how you can have only the IPv6 address (16 octets) and have no prefix length.   

If the first solution is acceptable, then change (which includes two changes) 
"
      Length: 8-bit unsigned integer.  Length of the option, in 8
      octets.  The length is 1 when a new CoA is not supplied.  The
      length is 4 when a new CoA is present (immediately following the
      Reserved field)

      Option-Code: 0

      Status: 8-bit unsigned integer indicating the disposition of the
      Unsolicited Neighbor Advertisement message.  The following Status
      values are currently defined:

         1: NCoA is invalid, perform address configuration

         2: NCoA is invalid, use the supplied NCoA.  The supplied NCoA
         (in the form of an IP Address / Prefix Option) MUST be present
         following the Reserved field.
"
What the figure might look like in this case.
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Type     |     Length=4  | Option-Code   |    Status     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             Reserved                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Type      |   Length      | Option-Code   | Prefix Length |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             Reserved                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     +                                                               +
     |                                                               |
     +                             IPv6 Address                      +
     |                                                               |
     +                                                               +
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          Figure 16: Neighbor Advertisement Acknowledgment Option 
		(with NCoA as an IPv6 Address / Prefix option)

If the second solution is what was intended, then change (which includes one change) 
"
      Length: 8-bit unsigned integer.  Length of the option, in 8
      octets.  The length is 1 when a new CoA is not supplied.  The
      length is 3 when a new CoA is present (immediately following the
      Reserved field)

      Option-Code: 0

      Status: 8-bit unsigned integer indicating the disposition of the
      Unsolicited Neighbor Advertisement message.  The following Status
      values are currently defined:

         1: NCoA is invalid, perform address configuration

         2: NCoA is invalid, use the supplied NCoA.  The supplied NCoA
         (IPv6 Address (using 16 octets)) MUST be present following the
         Reserved field.
"
What the figure might look like for Length = 1.
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Type     |     Length=1  | Option-Code   |    Status     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             Reserved                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          Figure 16: Neighbor Advertisement Acknowledgment Option 
		(without NCoA)

What the figure might look like for Length = 3. When the format of the IPv6 Address option is not used, only the IPv6 address is present.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      Type     |     Length=3  | Option-Code   |    Status     |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             Reserved                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     +                                                               +
     |                                                               |
     +                             IPv6 Address                      +
     |                                                               |
     +                                                               +
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          Figure 16: Neighbor Advertisement Acknowledgment Option 
		(with NCoA as an IPv6 Address only)