Subject: [MEXT] RFC 3775 clarification on MPS emission when receiving MPA

From: [email-masked] (Arnaud Ebalard)
Date: Sun, 17 May 2009 15:26:26 +0200

Hi Charles,

The issue described below was reported by an user of UMIP on nautilus6
mailing list. I was trying to address it in the code but thought the
expected behavior was not very explicit in RFC 3775. Hence the request 
for clarification.

A MN sends a MPS to its HA, the RTT between the HA and the MN is a bit
more than the INITIAL_SOLICIT_TIMER value of 3 seconds which implies
that the MN will receive the MPA from the HA, just after sending a new
one. In that case (just like it is expected and done for Binding Update
sequence number), the reemitted MPS has been sent by UMIP with a new
random ICMPv6 identifier. Because the received MPA obviously did not
arrive in time and so does not match expected ICMPv6 identifier, we end
up section 11.4.3 of RFC 3775 (not modified in 3775bis, AFAICT), which
contains the following:

   When a mobile node receives a Mobile Prefix Advertisement, it MUST
   validate it according to the following test:

   o  The Source Address of the IP packet carrying the Mobile Prefix
      Advertisement is the same as the home agent address to which the
      mobile node last sent an accepted home registration Binding Update
      to register its primary care-of address.  Otherwise, if no such
      registrations have been made, it SHOULD be the mobile node's
      stored home agent address, if one exists.  Otherwise, if the
      mobile node has not yet discovered its home agent's address, it
      MUST NOT accept Mobile Prefix Advertisements.

   o  The packet MUST have a type 2 routing header and SHOULD be
      protected by an IPsec header as described in Section 5.4 and
      Section 6.8.

   o  If the ICMP Identifier value matches the ICMP Identifier value of
      the most recently sent Mobile Prefix Solicitation and no other
      advertisement has yet been received for this value, then the
      advertisement is considered to be solicited and will be processed
      further.

      Otherwise, the advertisement is unsolicited, and MUST be
      discarded.  In this case the mobile node SHOULD send a Mobile
      Prefix Solicitation.

   Any received Mobile Prefix Advertisement not meeting these tests MUST
   be silently discarded.

I am interested in the content of the last item of the list and the
final sentence, i.e. how they should be understood in the following
situation.

At the moment, UMIP follows the content of the second part of last
bullet, i.e. considers the advertisement is unsolicited, discards it but
*sends a MPS* (following the SHOULD). The timeout value being set to
INITIAL_SOLICIT_TIMER for that new MPS, the exact same thing happens
again when receiving the response from the HA. 

Having read the content of following sections of RFC 3775:
 
 - 6.7.  ICMP Mobile Prefix Solicitation Message Format
 - 11.4.2.  Sending Mobile Prefix Solicitations
 - 11.4.3.  Receiving Mobile Prefix Advertisements
 - 11.8.  Retransmissions and Rate Limiting

i am under the impression that the good way to go is to randomize ICMPv6
identifier in MPS *only when sending* the MPS for the first time and
keep that value for reemissions. Or am I missing something?

Thanks in advance for your comments,

Cheers,

a+