Subject: [Mip6] A bug in RFC3775.

From: Zhen Chen <[email-masked]>
Date: Fri, 11 Aug 2006 15:49:08 -0700

Hi everyone, 
  I am working in mobile IPv6. I find a bug in RFC3775. It is
self-contradiction. :)
  I infer that The section 6.4 is correct and the 9.3.2 is wrong.  and
the section 10.4.2 is also wrong, because it uses section 9.3.2. 

Has this bug been corrected? 

See:

6.4.  Type 2 Routing Header

   Mobile IPv6 defines a new routing header variant, the type 2 routing
   header, to allow the packet to be routed directly from a
   correspondent to the mobile node's care-of address.  
The mobile
   node's care-of address is inserted into the IPv6 Destination Address
   field.  Once the packet arrives at the care-of address, the mobile
   node retrieves its home address from the routing header, and this is
   used as the final destination address for the packet.

9.3.2.  Sending Packets to a Mobile Node

   Before sending any packet, the sending node SHOULD examine its
   Binding Cache for an entry for the destination address to which the
   packet is being sent. 
----->>>> If the sending node has a Binding Cache entry
   for this address, the sending node SHOULD use a type 2 routing header
   to route the packet to this mobile node (the destination node) by way
   of its care-of address. 

   For instance, assuming there are no additional routing headers in
   this packet beyond those needed by Mobile IPv6, the correspondent
   node could set the fields in the packet's IPv6 header and routing
   header as follows:

   o  The ~~~Destination Address~~~~ in the packet's IPv6 header is set
to the
      mobile node's ~~~~~home address~~~~~~~~~~ (the original
destination address to
      which the packet was being sent).
   o  The routing header is initialized to contain a single route
      segment, containing the mobile node's ~~~care-of address~~~~~
copied from
      the Binding Cache entry.  The Segments Left field is, however,
      temporarily set to zero.

   The IP layer will insert the routing header before performing any
   necessary IPsec processing.  Once all IPsec processing has been
   performed, the node swaps the IPv6 destination field with the Home
   Address field in the routing header, sets the Segments Left field to
   one, and sends the packet.  This ensures the AH calculation is done
   on the packet in the form it will have on the receiver after
   advancing the routing header.

   Following the definition of a type 2 routing header in Section 6.4,
   this packet will be routed to the mobile node's care-of address,
   where it will be delivered to the mobile node (the mobile node has
   associated the care-of address with its network interface).

  ---------- If, instead, the sending node has no Binding Cache entry
for the
   destination address to which the packet is being sent, the sending
   node simply sends the packet normally, with no routing header. 

If
   the destination node is not a mobile node (or is a mobile node that
   is currently at home), the packet will be delivered directly to this
   node and processed normally by it.  If, however, the destination node
   is a mobile node that is currently away from home, the packet will be
   intercepted by the mobile node's home agent and tunneled to the
   mobile node's current primary care-of address.

_______________________________________________
Mip6 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/mip6

---

From: Brian Haley <[email-masked]>
Date: Fri, 11 Aug 2006 23:38:12 -0400

> the section 10.4.2 is also wrong, because it uses section 9.3.2.

So I'll assume your saying the text on how to build a Type 2 routing 
header is inconsistent?  It looks correct to me, and we've had many 
inter-operable implementations tested against each other successfully 
(including mine :).  Maybe you can describe in a paragraph what you 
think the problem is, maybe I'm missing something?  Your snippets of 
text are confusing since you're leaving out intermediate paragraphs that 
are pretty useful, like:

    When calculating authentication data in a packet that contains a type
    2 routing header, the correspondent node MUST calculate the AH
    authentication data as if the following were true: The routing header
    contains the care-of address, the destination IPv6 address field of
    the IPv6 header contains the home address, and the Segments Left
    field is zero.  The IPsec Security Policy Database lookup MUST based
    on the mobile node's home address.

Maybe this is the crux of the confusion?  For security calculations the 
IPv6 source address is always the home address.

-Brian

---

From: Zhen Chen <[email-masked]>
Date: Fri, 11 Aug 2006 21:21:55 -0700

thanks your comments.
In my understanding, message send from CN--->>>MN
in Section 6.4 
home address inserted into T2 routing header, while
Care-of Address inserted into Destination address of Packet

while in Section 9.3.2 still the case CN--->>>MN
Home Address is inserted into Destination address of packet, while
Care-of Address inserted into T2 Routing header of Packet

Could you help me to check it again? thanks!

Best,

Zhen

---

From: Keiichi SHIMA <[email-masked]>
Date: Mon, 14 Aug 2006 12:03:49 +0900

Hello,

> Care-of Address inserted into Destination address of Packet

Section 6.4 talks about the on-the-wire format of sent packets from  
CN to MN.

> Care-of Address inserted into T2 Routing header of Packet

This section discusses how to construct a packet that has a Type-2  
Routing Header on CN.

> Could you help me to check it again? thanks!

Does this solve your question?

---
Keiichi SHIMA
IIJ Research Laboratory <[email-masked]>
WIDE Project <[email-masked]>

---

From: Ranjitsinh Wable <[email-masked]>
Date: Mon, 14 Aug 2006 16:42:23 +0530

Hi Zhen Chen,

I think you missed the next part in the RFC.

====>

As Brian said,

>> IPv6 source address is always the home address.

I think now it may be clear to you.

Regards,

Wable