<?xml version="1.0" encoding="US-ASCII"?>
<!-- xml2rfc v2 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY rfc4301 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4301.xml'>
<!ENTITY rfc4303 PUBLIC ''
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4303.xml'>
<!ENTITY rfc5213 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5213.xml'>
<!ENTITY rfc5226 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml'>
<!ENTITY rfc5094 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5094.xml'>
<!ENTITY rfc5844 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5844.xml'>
<!ENTITY rfc5846 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5846.xml'>
<!ENTITY rfc5847 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5847.xml'>
<!ENTITY rfc6275 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6275.xml'>
<!ENTITY rfc6463 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6463.xml'>
<!ENTITY rfc6909 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6909.xml'>
<!ENTITY rfc4283 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4283.xml'>
<!ENTITY rfc6602 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6602.xml'>
<!ENTITY rfc6757 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6757.xml'>
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>
<?rfc rfcedstyle="yes"?>

<rfc category="std" ipr="trust200902" number="7077" submissionType="IETF" consensus="yes">

<front>
<title abbrev="Update Notifications">Update Notifications for Proxy Mobile IPv6</title>

<author initials="S.K." surname="Krishnan" fullname="Suresh Krishnan">
<organization>Ericsson</organization>
<address>
<postal>
<street>8400 Blvd Decarie</street>
<city>Town of Mount Royal</city>
<region>Quebec</region>
<country>Canada</country>
</postal>
<phone>+1 514 345 7900 x42871</phone>
<email>suresh.krishnan@ericsson.com</email>
</address>
</author>

<author initials="S" surname="Gundavelli" fullname="Sri Gundavelli">
<organization>Cisco</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>USA</country>
</postal>
<email>sgundave@cisco.com</email>
</address>
</author>

<author initials="M." surname="Liebsch" fullname="Marco Liebsch">
<organization>NEC</organization>
<address><postal>
<street>Kurfuersten-Anlage 36</street>
<city>D-69115 Heidelberg</city>
<country>Germany</country>
</postal>
<email>marco.liebsch@neclab.eu</email>
</address>
</author>

<author initials="H.Y." surname="Yokota" fullname="Hidetoshi Yokota">
<organization>KDDI</organization>
<address>
<email>yokota@kddilabs.jp</email>
</address>
</author>

<author initials="J" surname="Korhonen" fullname="Jouni Korhonen">
<organization>Broadcom</organization>
<address>
<postal>
<street>Porkkalankatu 24</street>
<city>Helsinki</city> 
<code>FIN-00180</code>
<country>Finland</country>
</postal>
<email>jouni.nospam@gmail.com</email>
</address>
</author>

<date month="November" year="2013"/>

<area>Internet</area>
<workgroup>NETEXT WG</workgroup>

<!-- - - - - - - - - - - - -->
<!-- SECTION 0:  Abstract  -->
<!-- - - - - - - - - - - - -->

<!-- [rfced] FYI, we have used xml2rfc v2 (available from 
http://xml.resource.org) to convert this document to text. -->

<abstract>
<t>
This document specifies protocol enhancements for allowing the local mobility
anchor in a Proxy Mobile IPv6 domain to asynchronously notify the mobile access
gateway about changes related to a mobility session. These Update Notification
messages are exchanged using a new Mobility Header message type specifically 
designed for this purpose.</t>
</abstract>
 
</front>

<middle>

<!-- - - - - - - - - - - - - - - -->
<!-- SECTION 1:  Introduction    -->
<!-- - - - - - - - - - - - - - - -->

<section anchor="intro" title="Introduction">
<t>
In some situations, there is a need for the local mobility anchor (LMA) to send
asynchronous notification messages to the mobile access gateway (MAG) in the
course of a mobility session. These situations include changes to mobility 
session parameters and policy parameters. In this context, "Asynchronous
messages" is used to mean messages that are not synchronous with the Proxy
Binding Update and Proxy Binding Acknowledgement messages of the base
Proxy Mobile IPv6 specification <xref target="RFC5213"/>. The base Proxy Mobile
IPv6 specification does not have a provision for sending unsolicited Update
Notification messages from the local mobility anchor to the mobile access
gateway.
</t>

<t>
Proxy Mobile IPv6 <xref target="RFC5213"/> is a network-based mobility
management protocol. It is designed to provide IP mobility management support
to a mobile node without requiring the participation of the mobile node in any
IP mobility-related signaling.  The protocol defines two mobility management
entities: the LMA and the MAG. These entities are responsible for
managing IP mobility management support for a mobile node in a Proxy Mobile IPv6 domain.  The setup of the
mobility session is initiated by the mobile access gateway by sending a Proxy Binding Update message and
acknowledged by the local mobility anchor in the Proxy Binding Acknowledgement message.  Once the mobility session
is set up, currently there is no mechanism for the local mobility anchor to inform the mobile access gateway
about changes to the mobility session or any parameters related to the mobility
session. However, there are 
mechanisms in the Proxy Mobile IPv6 protocol that allow a local mobility
anchor to send signaling messages to the mobile access gateway asynchronously,
as defined in
the Proxy Mobile IPv6 Heartbeat message <xref target="RFC5847"/> or in the Binding Revocation message <xref target="RFC5846"/>, but these
signaling messages are designed for a very specific purpose and are not
sufficient for supporting a notification framework.
</t>

<t>
One such scenario where such a mechanism is needed is when the local mobility anchor wants to inform the mobile
access gateway that it  needs to re-register the mobility session for a mobile node. It is possible to achieve a 
similar effect by using a  short lifetime for the mobility sessions, but in
several networks this results 
in an unacceptable, and mostly unnecessary, increase in the signaling load and
overhead. A more suitable scenario would be to 
enable demand-based signaling from the local mobility anchor to one or more
mobile access gateways.
Another example is when there is a change in a QoS
policy <xref target="PMIPv6-QoS"/>, an IP flow mobility
policy <xref target="PMIPv6-FLOW-MOB"/>, or an IPv4 
traffic offload policy <xref target="RFC6909"/> for a mobility session. In
this case, the local mobility anchor wants to request that the mobile access
gateway perform re-registration of the mobility session in order to
update the policies associated with the mobility session of a mobile node.
</t>

<t>
This document defines a new Mobility Header message for allowing the local
mobility anchor to send notification messages to the mobile access gateway and
a corresponding Mobility Header message for the mobile access gateway to
acknowledge the notification message. The purpose of the notification message
is twofold: (1) to enable the local mobility anchor to notify the mobile access
gateway about the updated session parameters and (2) to enable the local 
mobility anchor to request that the mobile access gateway renegotiate the
session parameters.
</t>

</section>

<!-- - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 2: Conventions & Terminology  -->
<!-- - - - - - - - - - - - - - - - - - - - -->

<section anchor="sec_conventions_terminology" title="Conventions and Terminology">

<!-- - - - - - - - - - - - - - - -->
<!--  SECTION 2.1: Conventions   -->
<!-- - - - - - - - - - - - - - - -->

<section anchor="sec_conventions" title="Conventions">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/>.
</t>
</section> <!-- conventions -->

<!-- - - - - - - - - - - - - - - -->
<!--  SECTION 2.2: Terminology   -->
<!-- - - - - - - - - - - - - - - -->

<section anchor="sec_terminology" title="Terminology">
<t>
All the mobility-related terms used in this document are to be interpreted as
defined in the base Proxy Mobile IPv6 specifications <xref target="RFC5213"/>
and <xref target="RFC5844"/>. 
</t>

</section> <!-- Terminology -->
</section> <!-- Conventions & Terminology -->

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 3  Notification Message - Usage Examples  -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->

<section title="Notification Message - Usage Examples"> 

<t>
Use Case 1: Consider a use case where the local mobility anchor wants the
mobile access gateway to re-register a specific mobility session.
</t>

<figure anchor="fig1"  title="Update Notification: FORCE-REREGISTRATION">
<artwork><![CDATA[
MN     MAG       LMA
|------>|        |    1.  Mobile Node Attach
|       |------->|    2.  Proxy Binding Update
|       |<-------|    3.  Proxy Binding Acknowledgement
|       |========|    4.  Tunnel/Route Setup
|       |        |    
|       |<-------|    5.  Update Notification (FORCE-REREGISTRATION)
|       |------->|    6.  Update Notification Acknowledgement
|       |        |     
|       |------->|    7.  Proxy Binding Update
|       |<-------|    8.  Proxy Binding Acknowledgement
|       |        |         
]]> </artwork>
</figure>

<t>
Use Case 2: Consider a use case where the local mobility anchor wants to notify
the mobile access gateway of the updated session parameters, for example, an
updated QoS profile or an updated IPv4 offload policy. 
</t>

<figure anchor="fig2"  title="Update Notification: UPDATE-SESSION-PARAMETERS">
<artwork><![CDATA[
MN     MAG     LMA
|------>|        |    1.  Mobile Node Attach
|       |------->|    2.  Proxy Binding Update
|       |<-------|    3.  Proxy Binding Acknowledgement
|       |========|    4.  Tunnel/Route Setup
|       |        |    
|       |<-------|    5.  Update Notification 
|       |        |           (UPDATE-SESSION-PARAMETERS) 
|       |------->|    6.  Update Notification Acknowledgement
|       +        |    7.  MAG applies the new policy option
|       |        |         
]]> </artwork>
</figure>

</section>

<!-- - - - - - - - - - - - - - - -->
<!-- SECTION 4: Message Formats  -->
<!-- - - - - - - - - - - - - - - -->

<section title="Message Formats">

<!-- - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 4.1: Update Notification (UPN)  -->
<!-- - - - - - - - - - - - - - - - - - - - - -->

<section title="Update Notification (UPN)" anchor="UPN-R">
<t>
The Update Notification is a Mobility Header message that has an MH Type value
of 19. It is used by the local mobility anchor to notify the mobile
access gateway that some parameters related to the mobility session have
changed. 
</t>


<t>
The format of the Update Notification message is as follows:
</t>

<figure anchor='fig3' title="Update Notification Message" > 
<artwork> <![CDATA[
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
                                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                |           Sequence #          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Notification Reason        |A|D|          Reserved         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
.                                                               .
.                        Mobility options                       .
.                                                               .
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]> </artwork> </figure> 

<t>
<list style="hanging">

<t hangText="Sequence Number"><vspace blankLines="0" />
This 16-bit unsigned integer is used by the local mobility anchor to match the
received Update Notification Acknowledgement message with this Update
Notification message.  This Sequence Number could be a random number and can be
managed under the same variable used in Proxy Mobile IPv6 signaling messages
<xref target="RFC5213"/>. Implementations MUST ensure that there is no
collision between the Sequence Numbers of all outstanding Update Notification
messages at any time.
</t>
    
<t hangText="Notification Reason"><vspace blankLines="0" />
This 16-bit unsigned integer indicates the Notification Reason code.
This code corresponds to the reason that the local mobility anchor
sent the Update Notification to the mobile access gateway. This field does not 
contain any structure and MUST be treated as an enumeration.
The reason code can indicate a vendor-specific reason if the semantics of
the Update Notification message are to be based on the attached
vendor-specific options, not solely from the reason code. These attached
options can be deployment specific and are not specified in this document.
The following Notification Reason values are currently defined:

<list style="hanging" hangIndent="10">

<t hangText="(0) - ">Reserved 
<vspace blankLines="0" />
This value is currently reserved and cannot be used.
</t>

<t hangText="(1) - ">FORCE-REREGISTRATION
<vspace blankLines="0" />
Request to re-register the session by sending a Proxy Binding Update for the 
mobility session.
</t>

<t hangText="(2) - ">UPDATE-SESSION-PARAMETERS
<vspace blankLines="0" />
Request to apply the updated session parameters obtained from the 
message on the mobility session.
</t>

<t hangText="(3) - ">VENDOR-SPECIFIC-REASON
<vspace blankLines="0" />
This Notification Reason is for vendor-specific use. The processing rules are
to be based on the Vendor-Specific Mobility option(s) <xref target="RFC5094"/>
present in the message.
</t>

<t hangText="(4) - ">ANI-PARAMS-REQUESTED
<vspace blankLines="0" />
Request to send currently known Access Network Identifier (ANI) <xref
target="RFC6757"/> parameters for the mobility session.
</t>

<t hangText="(255) - ">Reserved
<vspace blankLines="0" />
This value is currently reserved and cannot be used.
</t> 

</list>
</t>

<t hangText="Acknowledgement Requested Flag ((A) Flag) "><vspace blankLines="0" />
When this flag is set to a value of (1), it is an indication that the local
mobility anchor is requesting that the mobile access gateway send an Update
Notification Acknowledgement message. When this flag is set to a value of (0),
it is an indication that the local mobility anchor is not requesting any Update
Notification Acknowledgement messages.
</t>

<t hangText="Retransmit Flag ((D) Flag)"><vspace blankLines="0" />
When this flag is set to a value of (1), it is an indication that the message
is a retransmitted message and has the same Sequence Number and other message
contents as in the previously sent message. The (D) flag is set for
retransmitted request messages, to aid the reliable detection of duplicate
requests at the receiver of the request message. It
is set when originating requests that have not yet been acknowledged, as an
indication of a possible duplicate due to a retransmission. This flag MUST be
cleared when sending a request for the first time for a given Sequence Number;
otherwise, the sender MUST set this flag.
</t>

<t hangText="Reserved"><vspace blankLines="0" />
This field is unused for now. The value MUST be initialized to 0 by the
sender and MUST be ignored by the receiver.
</t>

<t hangText="Mobility Options"><vspace blankLines="0" />
This variable-length field is of such length that the complete Mobility Header
is an integer multiple of 8 octets long; the Pad1 and PadN options <xref
target="RFC6275"/> can be used for padding. This field contains
zero or more TLV-encoded mobility options. Any of the Mobility Header options,
including Vendor-Specific Mobility options <xref target="RFC5094"/>, can be
included here.  The receiver MUST ignore and skip any options that it does not
understand.  These mobility options are used by the mobile access gateway to
identify the specific binding for which the Update Notification 
message is sent. 
</t>

</list>
</t>
</section>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 4.2: Update Notification Acknowledgement (UPA)  -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<section title="Update Notification Acknowledgement (UPA)" anchor="UPN-A">
<t>
The Update Notification Acknowledgement is a Mobility Header message that has an MH Type 
value of 20. The mobile access gateway sends this message in order to acknowledge
that it has received an Update Notification message with the (A) flag set and to indicate the
status after processing the message.
</t>


<t>
The format of the Update Notification Acknowledgement message is as follows:
</t>

<figure anchor='fig4' title="Update Notification Acknowledgement Message"> <artwork> <![CDATA[
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
                                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                |           Sequence #          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Status Code |                   Reserved                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
.                                                               .
.                        Mobility options                       .
.                                                               .
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]> </artwork> </figure> 

<t>
<list style="hanging">

<t hangText="Sequence Number"><vspace blankLines="0" />
This 16-bit unsigned integer is copied from the Update Notification message
and is used for matching the Update Notification Acknowledgement message
with the Update Notification message.
</t>

<t hangText="Status Code"><vspace blankLines="0" />
This 8-bit unsigned integer indicates the status code and specifies the
result of the processing of the Update Notification message. Status codes
between 0 and 127 signify successful processing of the Update Notification
message, and codes between 128 and 255 signify that an error occurred during
processing of the Update Notification message. The following status code values
are currently defined:

<list style="hanging" hangIndent="10"> 

<t hangText="(0) - ">SUCCESS
<vspace blankLines="0" />
The mobile access gateway successfully processed the received Update
Notification message.
</t>

<t hangText="(128) - ">FAILED-TO-UPDATE-SESSION-PARAMETERS
<vspace blankLines="0" />
The mobile access gateway was not able to apply the session parameters sent by
the local mobility anchor in the Update Notification message.
</t>

<t hangText="(129) - ">MISSING-VENDOR-SPECIFIC-OPTION
<vspace blankLines="0" />
The received Update Notification message does not have the required
Vendor-Specific Mobility option(s) needed for handling the message. 
</t>

</list>
</t>

<t hangText="Reserved"><vspace blankLines="0" />
This field is unused for now. The value MUST be initialized to 0 by the
sender and MUST be ignored by the receiver.
</t>



<t hangText="Mobility Options"><vspace blankLines="0" />
This variable-length field is of such length that the complete Mobility
Header is an integer multiple of 8 octets long; the Pad1 and PadN 
options <xref target="RFC6275"/> can be used for padding. 
This field contains zero or more TLV-encoded mobility options. 
Any of the Mobility Header options, including Vendor-Specific Mobility options
<xref target="RFC5094"/>, can be included here. The receiver MUST
ignore and skip any options that it does not understand.  These
mobility options are used by the mobile access gateway to identify
the specific binding for which the Update Notification Acknowledgement
message is sent.
</t>

</list>
</t>

</section>

</section>

<!-- - - - - - - - - - - - - - - - -->
<!-- SECTION 5 LMA Considerations  -->
<!-- - - - - - - - - - - - - - - - -->

<section anchor="lma" title="LMA Considerations">

<t>
<list style="symbols">

<t>
The local mobility anchor sends the Update Notification message in response to
a condition that is specified  in the Notification Reason field. The
Notification Reason field in the Update Notification message MUST be set to a
specific value that identifies the reason for which the Update Notification
message is being sent. The Notification Reason, based on the chosen value, may
require a specific action that the mobile access gateway needs to perform
(for example, requiring re-registration of a mobility session).
</t>

<t>
The Update Notification message MUST include either the Mobile Node Identifier
option <xref target="RFC4283"/> or the Mobile Node Group Identifier option
<xref target="RFC6602"/>.

<list style="symbols">
<t>
If the Mobile Node Identifier option is present, it indicates that the Update
Notification message is sent for that specific mobility session. 
</t>

<t>
If the Mobile Node Group Identifier option is present, it indicates that the
Update Notification message is sent for 
the set of mobility sessions identified by the Group Identifier. The Group
Identifier is negotiated as part of the
initial Proxy Mobile IPv6 signaling. If the Group Identifier is not negotiated
in the initial Proxy Mobile IPv6 signaling, a
value of (1) for the Group Identifier can always be used. The Group Identifier
value of (1) identifies all the mobility sessions established between that
local mobility anchor and the mobile access gateway. 
</t>
</list>
</t>

<t>
The Update Notification message MAY contain a modified session parameter in
the form of a mobility option (e.g., an IPv4 traffic offload option or a QoS
option), so the mobile access gateway can apply them on the identified mobility
session.
</t>

</list>
</t>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 5.1 Constructing the Update Notification Acknowledgement Message -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<section anchor="LMA-5-1" title="Constructing the Update Notification Message">
<t>
The local mobility anchor, when sending the Update Notification message to the
mobile access gateway, has to construct the message as specified below:
</t>

<t>
<list style="symbols"> 

<t>
For requesting an Acknowledgement message and an indication about the result of
processing the message from the mobile access gateway for the Update
Notification message, the (A) flag in the Update Notification message MUST 
be set to a value of (1); otherwise, it MUST be set to a value of (0).
However, if the Notification Reason is set to a value of (1)
"FORCE&nbhy;REREGISTRATION" or (4) "ANI-PARAMS-REQUESTED", then it is
RECOMMENDED that the (A) flag be set to a value of (0).

For certain general notifications that are informational in nature, the local
mobility anchor may choose not to request acknowledgement for the Update
Notification message.
</t>

<t>
The Sequence Number field of the message MUST be initialized to a random number and increased monotonically 
for subsequent messages. Once the Sequence Number hits the maximum value, it should be wrapped around to 0.
Furthermore, if the message is a retransmission of a previously sent message, then the Sequence Number
value is not changed.
</t>


<t>
When using IPv4 transport, the source address in the IPv4 header MUST be set to
the local mobility anchor's IPv4 address (IPv4-LMAA), and the destination
address in the IPv4 header MUST be set to the IPv4-Proxy-CoA (Care-of Address)
of the mobile access gateway. The Mobility Header (without the IPv6 header)
containing the Update Notification message is encapsulated in a UDP header
with the destination port of 5436 <xref target="RFC5844"/>. If IPsec
Encapsulating Security Payload (ESP) <xref target="RFC4303"/> is used to
protect signaling, the packet is processed using transport mode ESP.
</t>

<t>
The format of the Update Notification message sent over IPv4 and protected
using ESP is shown below:

<figure> <artwork> <![CDATA[
      IPv4 header (src=IPv4-LMAA, dst=IPv4-Proxy-CoA)
        ESP header (in transport mode)
          UDP header (sport=5436, dport=5436) 
            Mobility Header (Update Notification)
              (one or more Mobility Header options)
]]> </artwork> </figure>
</t>
</list>
</t>

<t>
<list style="symbols"> 
<t>
When using IPv6 transport, the source address in the IPv6 header MUST be set
to the local mobility anchor's IPv6 address (LMAA).  The destination address in
the IPv6 header MUST be set to the Proxy-CoA of the mobile access gateway. The
Mobility Header is part of the IPv6 headers.
</t>

<t>
The format of the Update Notification message sent over IPv6 and protected
using ESP is shown below:

<figure> <artwork> <![CDATA[
      IPv6 header (src=LMAA, dst=Proxy-CoA)
        Mobility Header (Update Notification)
        ESP header (in transport mode)
          (one or more Mobility Header options)
]]> </artwork> </figure>
</t>
</list>
</t>

</section>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
<!--  SECTION 5.2 Receiving the Update Notification Acknowledgement Message -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->

<section anchor="LMA-5-2" title="Receiving the Update Notification Acknowledgement Message">

<t>
<list style="symbols">
<t>
If the local mobility anchor does not receive an Update Notification
Acknowledgement message from the mobile access gateway for the Update
Notification message with the (A) flag set, then the local mobility anchor MUST
retransmit the message. The related considerations are as follows:
<list style="symbols">
<t>
When retransmitting an Update Notification message, the Sequence Number value
and other message contents MUST be the same as in the original message.  The
(D) flag in the message MUST be set to a value of (1). 
</t>

<t>
There MUST be a minimum delay of MIN_DELAY_BETWEEN_UPDATE_NOTIFICATION_REPLAY
(<xref target="pcv"/>), with a default value of 1000 milliseconds, between two
retransmit messages.
</t>

<t>
The message MUST be retransmitted up to the number of times defined by the
configuration variable MAX_UPDATE_NOTIFICATION_RETRANSMIT_COUNT
(<xref target="pcv"/>), with a default value of (1). If there is no Update
Notification Acknowledgement message after the retransmission count reaches
the value defined by the configuration variable
MAX_UPDATE_NOTIFICATION_RETRANSMIT_COUNT, then the message MUST be discarded,
and the event SHOULD be logged.
</t>
</list>
</t>

<t>
If the local mobility anchor receives a Binding Error message with the Status
field set to 2 as described in <xref target="RFC6275"/>, this indicates
that the mobile access gateway does not support the Update Notification
message, and hence the local mobility anchor MUST NOT
send any further Update Notification messages to that mobile access gateway
unless an administrative action is taken.
</t>

<t>
When receiving an Update Notification Acknowledgement message, the local
mobility anchor MUST verify the Mobility Header as described in Section 9.2
of <xref target="RFC6275"/>. If the packet is dropped due to failure of
any of the Mobility Header test checks, the local mobility anchor MUST
follow the processing rules as described in Section 9.2
of <xref target="RFC6275"/>. 
</t>

<t>
Upon receiving the Update Notification Acknowledgement message, the local
mobility anchor MUST verify that the received message is protected by the
security association that is being used to protect the other signaling
messages between those two peers. For example, if the Proxy Binding Update and
Proxy Binding Acknowledgement messages are protected using an IPsec security
association <xref target="RFC4301"/>, then the Update Notification
Acknowledgement message MUST have the IPsec protection with the currently
established IPsec security association that is being used for protecting the
other Proxy Mobile IPv6 signaling messages. 
</t>

<t>
If the local mobility anchor receives an Update Notification Acknowledgement
message with a failure status and a value of 128 or greater, then it SHOULD log
an error. 
</t>

<t>
If the Sequence Number in the received Update Notification Acknowledgement
message does not match any of the Update Notification messages that the local
mobility anchor sent, then the message MUST be discarded, and the message
should be logged.
</t>

<t>
If the local mobility anchor receives an Update Notification Acknowledgement
message from the mobile access gateway for an Update Notification message
that did not have the (A) flag set, the local mobility anchor MUST
process the received message in the same way as a response to an Update
Notification message with the (A) flag set.
</t>

</list>
</t>

</section>

</section>

<!-- - - - - - - - - - - - - - -  -->
<!-- SECTION 6 MAG Considerations -->
<!-- - - - - - - - - - - - - - -  -->

<section anchor="mag" title="MAG Considerations">

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 6.1 Receiving the Update Notification Message -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<section anchor="MAG-6-1" title="Receiving the Update Notification Message">
<t>
<list style="symbols"> 


<t>
When receiving an Update Notification message, the mobile access gateway MUST
verify the Mobility Header as described in Section 9.2. of <xref
target="RFC6275"/>. If the packet is dropped due to failure of any of the
Mobility Header test checks, the mobile access gateway MUST follow the
processing rules as described in Section 9.2 of <xref target="RFC6275"/>. 
</t>

<t>
Upon receiving the Update Notification message, the mobile access gateway MUST
verify that the received packet is protected by the security association that
is being used to protect the other signaling messages between those two
peers. For example, if the Proxy Binding Update and Proxy Binding
Acknowledgement messages are protected using an IPsec security association,
then the Update Notification message MUST have the IPsec protection with the
currently established IPsec security association that is being used for
protecting the other Proxy Mobile IPv6 signaling messages.
</t>
   
<t>
If the received Update Notification message is a retransmission of a previously
received message, as identified by the Sequence Number, then the mobile access
gateway MUST NOT handle the message as a new request. The (D) flag is used as
an indication of a retransmitted request, e.g., due to lost messages or the
local mobility anchor not seeing the requested update actions. If the mobile
access gateway has not seen the (potentially lost) initial request message, it
MUST treat the received Update Notification message (with the (D) flag set) as
an initial request and continue processing based on that. If the
mobile access gateway detects that the request is a retransmission based on the
(D) flag and the Sequence Number, then it SHOULD redo the requested update
action, e.g., when the Acknowledgement Requested ((A)) flag is not set. The
mobile access gateway MUST always respond to the retransmitted request if the
(A) flag is set.
</t>
   
<t>
Upon accepting the Update Notification message, the mobile access gateway MUST
process the message and perform the actions based on the Notification Reason.  

<list style="symbols"> 
<t>
If the (A) flag in the message is set to a value of (1), the mobile access
gateway MUST send an Update Notification Acknowledgement message with the
status code field set based on the result of processing the Update Notification
message.
</t>

<t>
If the Notification Reason is set to a value of (1)
"FORCE&nbhy;REREGISTRATION", then the mobile access gateway MUST send a Proxy
Binding Update message to the local mobility  anchor and obtain the updated
session parameters for that mobility session. 
</t>

<t>
If the Notification  Reason is set to a value of (2)
"UPDATE&nbhy;SESSION&nbhy;PARAMETERS", then the mobile access 
gateway MUST apply the session parameters that are obtained from the Update
Notification message in the form of mobility options.  However, if the mobile
access gateway is unable to apply the received session parameters, then the
mobile access gateway MUST apply the following considerations:

<list style="symbols">
<t>
If the received Update Notification message has the (A) flag in the message set
to a value of (0), then the mobile access gateway MUST drop the received Update
Notification message and log the error.
</t>

<t>
If the received Update Notification message has the (A) flag in the message set
to a value of (1), then the mobile access gateway MUST send an Update
Notification Acknowledgement message with a status code value of 128
(FAILED&nbhy;TO&nbhy;UPDATE&nbhy;SESSION&nbhy;PARAMETERS).
</t>
</list>
</t>

<t>
If the Notification Reason is set to a value of (3)
"VENDOR&nbhy;SPECIFIC&nbhy;REASON", then the mobile access gateway MUST apply
the considerations related to handling of the Vendor&nbhy;Specific Mobility
option <xref target="RFC5094"/> that is carried in the Update Notification
message. However, if there is no Vendor&nbhy;Specific Mobility option present
in the message, the mobile access gateway MUST apply the following
considerations:

<list style="symbols">
<t>
If the received Update Notification message has the (A) flag in the message set
to a value of (0), then the mobile access gateway MUST drop the received Update
Notification message and log the error.
</t>

<t>
If the received Update Notification message has the (A) flag in the message set
to a value of (1), then the mobile access gateway MUST send an Update
Notification Acknowledgement message with a status code value of 129
(MISSING&nbhy;VENDOR&nbhy;SPECIFIC&nbhy;OPTION).
</t>
</list>
</t>

<t>
If the Notification Reason is set to a value of (4)
"ANI&nbhy;PARAMS&nbhy;REQUESTED", then the mobile access gateway MUST send a
Proxy Binding Update message to the local mobility anchor with the Access
Network Identifier option <xref target="RFC6757"/>. The Access Network
Identifier option MUST reflect the current access network parameters for that
mobility session as known to the mobile access gateway at the time of sending
the Proxy Binding Update message.
</t>

<t>
For other Notification Reason values not reserved by this document, the
processing required on the mobile access gateway is out of scope for this
document and will be specified for each Notification Reason defined by
other documents.
</t>
</list>
</t>

</list>
</t>

</section>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- SECTION 6.2 Constructing the Update Notification Acknowledgement Message -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<section anchor="MAG-6-2" title="Constructing the Update Notification Acknowledgement Message">

<t>
The mobile access gateway, when sending the Update Notification Acknowledgement
message to the local mobility anchor, has to construct the message as specified
below:
</t>

<t>
<list style="symbols"> 

<t>
The Sequence Number MUST be the same as the Sequence Number from the received
Update Notification message.
</t>

<t>
The Status field of the Update Notification message MUST be set to a value that
reflects the status of the processing of the Update Notification request. A
value of 0 (SUCCESS) indicates that the handling of the Update Notification
message was successful.
</t>

<t>
The Update Notification Acknowledgement message MUST contain either the Mobile
Node Identifier option or the Mobile Node Group Identifier option, copied from
the Update Notification message. Furthermore, the mobile access gateway MAY
include other Mobility Header options.
</t>

<t>
The source address in the IP header of the Update Notification Acknowledgement
message MUST be set to the destination IP address of the received Update
Notification message.
</t>
      
<t>
The destination address in the IP header of the Update Notification
Acknowledgement message MUST be set to the source address of the
received Update Notification message.
</t>
 
<t>
If IPsec ESP is used to protect signaling, the packet is processed using
transport mode ESP.
</t>

<t>
The format of the Update Notification Acknowledgement message sent over IPv4
and protected using ESP is shown below:

<figure> <artwork> <![CDATA[
   IPv4 header (src=IPv4-Proxy-CoA, dst=IPv4-LMAA)
     ESP header (in transport mode)
       UDP header (sport=5436, dport=5436) 
         Mobility Header (Update Notification Acknowledgement)
           (one or more Mobility Header options)
]]>        
</artwork> </figure>
</t>

<t>
The format of the Update Notification Acknowledgement message sent over IPv6 and protected using ESP is 
shown below:

<figure> <artwork> <![CDATA[
   IPv6 header (src=Proxy-CoA, dst=LMAA)
     Mobility Header (Update Notification Acknowledgement)
     ESP header (in transport mode)
       (one or more Mobility Header options)
]]>        
</artwork> </figure>
</t>

</list>
</t>

</section>

</section>

<!-- - - - - - - - - - - - - - - - - - - - - - - - -->
<!--  SECTION 7: Protocol Configuration Variables  -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - -->

<section anchor="pcv" title="Protocol Configuration Variables">
<t>
This specification defines the following configuration variables that control
the Update Notification feature.
</t>

<t>
The mobility entities, the local mobility anchor, and the mobile access gateway
have to allow these variables to be configured by the system management.  The
configured values for these protocol variables have to survive server reboots
and service restarts.
</t>

<t>
<list style="hanging">

<t hangText="MAX_UPDATE_NOTIFICATION_RETRANSMIT_COUNT">
<vspace blankLines="1"/>
This variable specifies the maximum number of times a local mobility anchor can
retransmit an Update Notification message before it receives an Update
Notification Acknowledgement message. The default value for this parameter is
1. The suggested range of configured values for this variable is between 0
and 5.
</t>

<t hangText="MIN_DELAY_BETWEEN_UPDATE_NOTIFICATION_REPLAY">
<vspace blankLines="1"/>
This variable specifies the minimum delay in seconds before an Update
Notification message is retransmitted. The default value for this parameter is
1000 milliseconds. The suggested range of configured values for this
variable is between 500 and 5000&nbsp;milliseconds.
</t>

</list>
</t>

</section>

<!-- - - - - - - - - - - - - - - - - - - - -->
<!--  SECTION 8:  Security Considerations  -->
<!-- - - - - - - - - - - - - - - - - - - - -->

<section title="Security Considerations" anchor="SA">
<t> 
The Update Notification protocol described in this specification is for
use between a local mobility anchor and a mobile access gateway. This
specification defines two new Mobility Header messages: Update Notification
messages and Update Notification Acknowledgement messages. These Mobility
Header messages are to be protected using the same security mechanism that is
used for protecting the Proxy Mobile IPv6 signaling messages exchanged between
a given local mobility anchor and mobile access gateway.
</t>

<t>
If IPsec is used, the IPsec security association that is used for protecting
the Proxy Binding Update and Proxy Binding Acknowledgement also needs to be
used for protecting Update Notification and Update Notification
Acknowledgement messages. A Proxy Mobile IPv6 implementation and the IPsec
layer are typically able to communicate with each other through an
implementation-specific interface, for example, to exchange configuration and
notification information.
</t>

<t> 
The traffic selectors associated with the Security Policy Database (SPD) entry
for protecting Proxy Binding Update and Proxy Binding Acknowledgement messages
(Section 4.2 of <xref target="RFC5213"/>) have to be extended to include the
Mobility Header Type values 19 and 20, which
have been allocated for Update Notification and Update Notification
Acknowledgement messages, respectively.
Furthermore, any time there is rekeying of the IPsec security association
between the mobile access gateway and the local mobility anchor, the newly
established IPsec security association will be used for protecting the Update
Notification and Update Notification Acknowledgement messages. 
</t>

</section>

<!-- - - - - - - - - - - - - - - - -->
<!--  SECTION 9:  Acknowledgements -->
<!-- - - - - - - - - - - - - - - - -->

<section anchor="acks" title="Acknowledgements">
<t>
The authors would like to thank Basavaraj Patil, Rajeev Koodli, 
Lionel Morand, Itsuma Tanaka, Rajesh Pazhyannur, 
Carlos Jesus Bernardos Cano, John Kaippallimalil, Brian Haberman,
and other members of the NETEXT working group for all the comments and
discussions on the document. 
</t>

<t>
The authors would like to thank Barry Leiba, Robert Sparks, Carlos Pignataro,
Benoit Claise, Stephen Farrell, and Jari Arkko for their inputs to the document
as part of the IESG review process.
</t>

</section>

<!-- - - - - - - - - - - - - - - - - - -->
<!--  SECTION 10:  IANA Considerations -->
<!-- - - - - - - - - - - - - - - - - - -->


<section title="IANA Considerations">
<t>
IANA has taken the following actions.
</t>

<t>
<list style="symbols">
<t>
This specification defines a new Mobility Header Type message, Update
Notification. This Mobility Header message is described in <xref
target="UPN-R"/>. The type value 19 for this message has been
allocated from the "Mobility Header Types - for the MH Type field in the Mobility Header" registry at
&lt;http://www.iana.org/assignments/mobility-parameters&gt;.

</t>

<t> 
This specification defines a new Mobility Header Type message, Update Notification Acknowledgement. 
This Mobility Header message is described in <xref target="UPN-A"/>. The type value 20 for this
message has been allocated from the "Mobility Header Types - for the MH Type field in the Mobility Header" registry at 
&lt;http://www.iana.org/assignments/mobility-parameters&gt;.

</t>

<t>
This specification defines a new registry for Notification
Reasons. It is called the "Update Notification Reasons Registry". 
This registry has been created under the "Mobile IPv6 Parameters" registry at
&lt;http://www.iana.org/assignments/mobility-parameters&gt;.
The Notification Reason is a field in the Update Notification message (<xref
target="UPN-R"/>). The number space for the Notification Reason field needs to
be managed by IANA, under the "Update Notification Reason Registry". This
specification reserves the following type values. The allocation policy for
this field is "Specification Required" <xref target="RFC5226"/>.  

<figure> <artwork> <![CDATA[
      +=====+===========================+====================+
      |Value|       Description         |     Reference      |   
      +=====+===========================+====================+
      | 0   | Reserved                  |     [RFC7077]      |   
      +=====+================================================+
      | 1   | FORCE-REREGISTRATION      |     [RFC7077]      |
      +=====+================================================+
      | 2   | UPDATE-SESSION-PARAMETERS |     [RFC7077]      | 
      +=====+================================================+
      | 3   | VENDOR-SPECIFIC-REASON    |     [RFC7077]      | 
      +=====+================================================+
      | 4   | ANI-PARAMS-REQUESTED      |     [RFC7077]      |
      +=====+================================================+
      |255  | Reserved                  |     [RFC7077]      | 
      +=====+================================================+
]]>  </artwork> </figure> 
</t>


<t>
This specification defines a new registry for Status. It is called
the "Update Notification Acknowledgement Status Registry". This registry has been created under the "Mobile IPv6 Parameters" registry at
&lt;http://www.iana.org/assignments/mobility-parameters&gt;. The status is a
field in the Update Notification Acknowledgement message (<xref
target="UPN-A"/>). The number space for the Status field needs to be managed by
IANA, under the "Update Notification Acknowledgement Status Registry". This specification
reserves the following type values. The allocation policy for this field is
"Specification Required". Status codes between 0 and 127 signify successful
processing of the Update Notification message, and codes between 128 and 255
signify that an error occurred during processing of the Update Notification
message.

<figure> <artwork> <![CDATA[
      +=====+=====================================+=============+
      |Value|       Description                   |  Reference  |   
      +=====+=====================================+=============+
      | 0   | SUCCESS                             |  [RFC7077]  |   
      +=====+=====================================+=============+
      |128  | FAILED-TO-UPDATE-SESSION-PARAMETERS |  [RFC7077]  |
      +=====+=====================================+=============+
      |129  | MISSING-VENDOR-SPECIFIC-OPTION      |  [RFC7077]  |
      +=====+=====================================+=============+
]]>  </artwork> </figure> 
</t>

</list>
</t>

</section>

</middle>
<back>

<!-- - - - - - - - - - - - - -->
<!--  SECTION 11  References -->
<!-- - - - - - - - - - - - - -->

<!-- - - - - - - - - - - - - - - - - - - - -->
<!--  SECTION 11.1:  Normative References  -->
<!-- - - - - - - - - - - - - - - - - - - - -->

<references title="Normative References">

&rfc2119;
&rfc6275;
&rfc5213;
&rfc5844;
&rfc4283;
&rfc6602;
&rfc5094;
</references>

<!-- - - - - - - - - - - - - - - - - - - - - -->
<!--  SECTION 11.2:  Informative References  -->
<!-- - - - - - - - - - - - - - - - - - - - - -->

<references title="Informative References">

&rfc4301;
&rfc4303;
&rfc5846;
&rfc5847;
&rfc6909;
&rfc6757;
&rfc5226;

<!-- draft-ietf-netext-pmip6-qos (I-D Exists) -->
<reference anchor="PMIPv6-QoS">
<front>
<title>Quality of Service Option for Proxy Mobile IPv6</title>
<author initials='M' surname='Liebsch' fullname='Marco Liebsch'>
    <organization />
</author>
<author initials='P' surname='Seite' fullname='Pierrick Seite'>
    <organization />
</author>
<author initials='H' surname='Yokota' fullname='Hidetoshi Yokota'>
    <organization />
</author>
<author initials='J' surname='Korhonen' fullname='Jouni Korhonen'>
    <organization />
</author>
<author initials='S' surname='Gundavelli' fullname='Sri Gundavelli'>
    <organization />
</author>
<date month='November' year='2013' />
</front>
<seriesInfo name='Work in' value='Progress' />
</reference>

<!-- draft-ietf-netext-pmipv6-flowmob (I-D Exists) -->
<reference anchor="PMIPv6-FLOW-MOB">
<front>
<title>Proxy Mobile IPv6 Extensions to Support Flow Mobility</title>
<author initials='CJ' surname='Bernardos' fullname='Carlos Bernardos' role="editor">
    <organization />
</author>
<date month='October' year='2013' />
</front>
<seriesInfo name='Work in' value='Progress' />
</reference>

</references>

</back>
</rfc>
