<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc tocompact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY rfc2119 PUBLIC '' 'reference.RFC.2119.xml'>
<!ENTITY rfc2784 PUBLIC '' 'reference.RFC.2784.xml'>
<!ENTITY rfc3024 PUBLIC '' 'reference.RFC.3024.xml'>
<!ENTITY rfc5944 PUBLIC '' 'reference.RFC.5944.xml'>
<!ENTITY rfc3519 PUBLIC '' 'reference.RFC.3519.xml'>
<!ENTITY rfc3753 PUBLIC '' 'reference.RFC.3753.xml'>
<!ENTITY rfc2004 PUBLIC '' 'reference.RFC.2004.xml'>
<!ENTITY rfc5177 PUBLIC '' 'reference.RFC.5177.xml'>
<!ENTITY rfc5213 PUBLIC '' 'reference.RFC.5213.xml'>
<!ENTITY rfc5648 PUBLIC '' 'reference.RFC.5648.xml'>
<!ENTITY rfc6088 PUBLIC '' 'reference.RFC.6088.xml'>
<!ENTITY rfc6089 PUBLIC '' 'reference.RFC.6089.xml'>
<!ENTITY rfc5454 PUBLIC '' 'reference.RFC.5454.xml'>
<!ENTITY rfc6626 PUBLIC '' 'reference.RFC.6626.xml'>
<!ENTITY rfc2991 PUBLIC '' 'reference.RFC.2991.xml'>
<!ENTITY rfc5226 PUBLIC '' 'reference.RFC.5226.xml'>
]>

<rfc number="7629" 
     category="exp"  
     ipr="trust200902" 
     submissionType="IETF"
     consensus="yes">

<front>

<title abbrev="Flow-Binding Support for Mobile IP">
Flow-Binding Support for Mobile IP
</title>


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

<author initials="K" surname="Leung" fullname="Kent Leung">
<organization abbrev="">Cisco</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city> 
<region>CA</region>
<code>95134</code>
<country>United States</country>
</postal>
<email>kleung@cisco.com</email>
</address>
</author>

        
<author fullname="George Tsirtsis" initials="G." surname="Tsirtsis">
<organization>Qualcomm</organization>
<address>
<email>tsirtsis@qualcomm.com</email>
</address>
</author>

<author initials="A." surname="Petrescu" fullname="Alexandre Petrescu">
<organization>CEA, LIST</organization>
<address>
<postal>
<street>CEA Saclay</street>
<city>
Gif-sur-Yvette
</city>
<region>Ile-de-France</region>
<code>91191</code>
<country>France</country>
</postal>
<phone>
+33169089223
</phone>
<email>
alexandre.petrescu@cea.fr
</email>
</address>
</author>

<date month="August" year="2015" />

<area>Internet</area>
<workgroup>Mobility for IPv4 Working Group</workgroup>

<keyword>Multipath</keyword>
<keyword>Flow Binding</keyword>
<keyword>Hybrid Access</keyword>
<keyword>Flow Mobility</keyword>
<keyword>MIPv4-NEMO</keyword>

<abstract>
<t>
This specification defines extensions to the Mobile IP protocol for allowing a
mobile node with multiple interfaces to register a care-of address for each
of its network interfaces and to simultaneously establish multiple
IP tunnels with its home agent. This essentially allows the mobile node to
utilize all the available network interfaces and build a higher aggregated
logical pipe with its home agent for its home address traffic. Furthermore, these
extensions also allow the mobile node and the home agent to negotiate IP traffic
flow policies for binding individual flows with the registered care-of
addresses.
</t>

</abstract>
</front>

<middle>

<section anchor="introduction" title="Introduction">
<t>
With the ubiquitous availability of wireless networks based on different
access technology types,  mobile devices are now equipped with 
multiple wireless interfaces and have the ability to connect to the network using any of 
those interfaces. For example, most mobile devices are equipped with Wi-Fi and
LTE (Long Term Evolution)
interfaces. In many deployments, it is desirable for a mobile node to leverage
all the available network interfaces and have IP  mobility support for its IP flows.
</t>

<t>
   The operation defined in the Mobile IP protocol <xref target="RFC5944"/> allows a
   mobile node to continue to use its home address as it moves around
   the Internet.  Based on the mode of operation, there will be an IP
   tunnel that will be established between the home agent and
   the mobile node or between the home agent and the foreign
   agent where the mobile node is attached; see <xref target="RFC5944"/>.


 In both of these modes, there will only be one interface on the mobile
node that is receiving the IP traffic from the home agent. 
This approach of using a single access interface for routing all mobile node's
traffic is not efficient and so there is a need to extend Mobile IP to concurrently 
use multiple access interfaces for routing the mobile node's IP traffic.
The goal is  for efficient use of all the available access links to obtain higher
aggregated bandwidth for the tunneled traffic between the home agent and the
mobile node.
</t>


<t>
This specification defines extensions to Mobile IPv4 protocol for allowing a
mobile node with multiple interfaces to register a care-of address for each
of its network interfaces and to simultaneously leverage all access links 
for the mobile node's IP traffic. Furthermore, this specification also
defines extensions to allow the mobile node and the home agent to optionally
negotiate IP flow policies for binding individual IP flows with the
registered care-of addresses.
</t>


</section>



<section title="Conventions and Terminology">


<section anchor="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 anchor="terminology" title="Terminology">
<t>
All the mobility-related terms used in this document are to be interpreted as defined
in <xref target="RFC5944"/> and <xref target="RFC3753"/>. In addition, this document
uses the following terms.
</t>

<t>
Binding Identifier (BID)
</t>
<t>
<list style="hanging">
<t>
It is an identifier assigned to a mobile node's binding. A binding defines an
association between a mobile node's home address and its registered care-of address.
When a mobile node registers multiple bindings with its home agent, each using a
different care-of address, then each of those bindings are given a unique identifier.
Each of the binding identifiers will have a unique value that will be different from
the identifiers assigned to the mobile node's other bindings.
</t>
</list>
</t>

<t>
Flow Identifier (FID)
</t>
<t>
<list style="hanging">
<t>
It is an identifier for a given IP flow, uniquely identified by source address,
destination address, protocol type, source port, destination port, Security Parameter
Index, and other parameters as identified in <xref target="RFC6088"/>.
In the context of this document, the IP flows associated with a mobile node are the IP flows using
its home address. For a mobile router, the IP flows also include the IP flows using
the mobile network prefix <xref target="RFC6626"/>.
</t>
</list>
</t>

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




<section anchor="overview" title="Overview">


<t>
The illustration below in <xref target="fig1"/> is an example scenario where a
mobile node is connected
to WLAN, LTE, and CDMA access networks. The mobile node is configured with a home address, HoA_1, 
and has obtained the following care-of addresses <xref target="RFC5944"/>: CoA_1, from the WLAN network;  
CoA_2, from the LTE network; and CoA_3, from the CDMA network.
</t>

<t>
The mobile node using the extensions specified in this document registers all three care-of
addresses with its home agent. The mobile node also establishes an IP tunnel with the home agent
using each of its IP addresses, which results in three IP tunnels (Tunnel_1, Tunnel_2, and Tunnel_3) 
between the mobile node and the home agent. Each of the tunnels represents an overlay routing path 
between the mobile node and the home agent and can be used for forwarding the mobile node's IP
traffic.
</t>

<t>
Furthermore, using the extensions specified in this document, the mobile node
and the home agent can negotiate an IP flow policy. The negotiated flow policy
allows the mobile node and the home agent to determine the access network path
for each of the mobile node's IP flows.
</t>



<figure anchor='fig1' title="Mobile Node (MN) with Multiple Tunnels to the Home
			     Agent (HA)" >
<artwork><![CDATA[       
Flow_1 (SIP)
 |
 |Flow_2 (SSH)
 | |
 | |Flow_3 (HTTP)       _----_                     
 | | |         CoA_1  _(      )_ Tunnel_1          
 | | |    .---=======(   Wi-Fi  )========\ Flow_1
 | | |    |           (_      _)          \    
 | | |    |             '----'             \   
 | | | +=====+          _----_              \  +=====+    _----_
 | | '-|     | CoA_2  _(      )_ Tunnel_2    \ |     |  _(      )_ -- 
 | '---| MN  |---====(   LTE    )=========-----| HA  |-( Internet )--
 '-----|     |        (_      _)      Flow_3 / |     |  (_      _) --
       +=====+          '----'              /  +=====+    '----' 
        | |             _----_             /      
 HoA_1--' |    CoA_3  _(      )_ Tunnel_3 /    
          .------====(   CDMA   )========/ Flow_2     
                      (_      _)                   
                        '----' 
]]></artwork>
</figure>
   


<t>
The table below is an example of how the individual flows are bound
to different care-of addresses registered with the home agent.
</t>

<figure anchor="fig5"  title="Example of an IP Traffic Policy">
<artwork><![CDATA[
+=========+===================+=====================================+
| Flow ID |   Access Network  |           Description               |
|  (FID)  |    Preferences    |                                     |
+=========+===================+=====================================+
| Flow_1  | Tunnel_1 / CoA_1  | All SIP flows over Wi-Fi (Preferred)|
|         | Tunnel_2 / CoA_2  | If Wi-Fi is not available, use LTE  |
|         |       <DROP>      | If Wi-Fi and LTE access networks are|
|         |                   | not available, drop the flow        |
+---------+-------------------+-------------------------------------+
| Flow_3  | Tunnel_2 / CoA_2  | All HTTP flows over LTE (Preferred) |
|         |       <DROP>      | If LTE not available, drop the flow |        
+---------+-------------------+-------------------------------------+
| Flow_2  | Tunnel_3 / CoA_3  | All SSH flows over CDMA (Preferred) |
|         | Tunnel_2 / CoA_2  | If CDMA not available, use LTE      |
|         | Tunnel_1 / CoA_1  | If LTE not available, use Wi-Fi     |
+---------+-------------------+-------------------------------------+ 
]]> </artwork>
</figure>


<section anchor="call-flow" title="Example Call Flow">
<t>
<xref target="fig2"/> is the call flow for the example scenario where a mobile node
is connected to WLAN and LTE access networks.
</t>



<figure anchor="fig2"  title="Multipath Negotiation - Example Call Flow">
<artwork><![CDATA[
   +-------+          +-------+          +-------+          +-------+
   |   MN  |          | WLAN  |          |  LTE  |          |  HA   |
   |       |          |Network|          |Network|          |       |
   +-------+          +-------+          +-------+          +-------+
      |                   |                  |                  |

* MIP RRQ is sent using the IP address obtained from the WLAN Network 
      
      |<--- (1) --------->|                  |                  |     
      |                   |   RRQ (Multipath, Flow-Binding)     | 
      |---- (2) ----------------------------------------------->|    
      |                   |   RRP            |                  | 
      |<--- (3) ------------------------------------------------|
      |              MIP Tunnel through WLAN Network            |
      |=====(4)===========*=====================================|
                                                               
                             
* MIP RRQ is sent using the IP address obtained from the LTE Network   
                                       
      |<--- (5) ---------------------------->|                  |       
      |                   |  RRQ (Multipath, Flow-Binding)      |   
      |---- (6) ----------------------------------------------->|    
      |                   |  RRP             |                  | 
      |<--- (7) ------------------------------------------------|      
      |              MIP Tunnel through LTE Access Network      |
      |=====(8)==============================*==================|
      |                                                         |
      *                                                         * 
(Policy-based Routing Rule)               (Policy-based Routing Rule)
]]> </artwork>
</figure>

  
<t>
<list style="symbols">

<t>(1): The mobile node attaches to the WLAN network and obtains the IP address configuration for
its WLAN interface.
</t>

<t>(2)-(3): The mobile node sends a Registration Request (RRQ) <xref target="RFC5944"/> to the home agent through 
the WLAN network. The message includes the Multipath (<xref
target="mp-ext"></xref>) and the Flow-Binding 
(<xref target="flow-id-ext"></xref>) Extensions. The home agent, upon accepting the
request, sends a Registration Reply (RRP) <xref target="RFC5944"/>  with a
value of (0) in the Code field of the Registration Reply. 
</t>


<t>(4): The mobile node and the home agent establish a bidirectional IP tunnel over the WLAN network. 
</t>

<t>(5): The mobile node attaches to the LTE network and obtains the IP address configuration from that network.
</t>


<t>(6)-(7): The mobile node sends a Registration Request to the home agent through the LTE network.
The message includes the Multipath and the Flow-Binding Extensions. The Flow-Binding Extension 
indicates that all HTTP flows need to be routed over the WLAN network and if
the WLAN access network is not available, they need be routed over other
access networks. The negotiated policy also requires all
voice-related traffic flows to be routed over the LTE network. The home agent, upon accepting the
request, sends a Registration Reply with a value of (0) in the Code field of the Registration Reply. 
</t>


<t>(8): The mobile node and the home agent establish a bidirectional IP tunnel over the LTE network. The negotiated 
traffic flow policy is applied. Both the home agent and the mobile node route all the voice flows over the tunnel 
established through the LTE access network and the HTTP flows over the WLAN network.
</t>


</list>
</t>






</section>
</section>






<section anchor="message-ext" title="Message Extensions">
<t>
This specification defines the following new extensions to Mobile IP. 
</t>




<section title="Multipath Extension" anchor="mp-ext">
<t>
This extension is used for requesting multipath support. It indicates that the sender is
requesting the home agent to register the current care-of address listed in this Registration
Request as one of the many care-of addresses through which the mobile node can be
reached.  


It is also for carrying the information specific to the
interface to which the care-of address that is being registered is
bound.

</t>

<t>
This extension is a non-skippable extension and MAY be added by the mobile node to the Registration 
Request message.  There MUST NOT be more than one instance of  this extension present in the
message. This extension MUST NOT be added by the home agent to the Registration Reply.
</t>

<t>
This extension should be protected using the Mobile-Home Authentication Extension 
<xref target="RFC5944"/>.  As specified in Sections 3.2 and 3.6.1.3 of <xref target="RFC5944"/>,
the mobile node MUST place this Extension before the Mobile-Home Authentication
Extension in the registration messages so that this extension is integrity
protected.
</t> 

<t>
The format of this extension is as shown below.  It adheres to the long extension 
format described in <xref target="RFC5944"/>.
</t>

      

<figure anchor='fig3' title="Multipath Extension" >
<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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |  Subtype     |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    If-ATT     |   If-Label    |   Binding ID  |B|O|  Reserved |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure> 

<t> <list style="hanging">
<t hangText="Type"></t>
<t>
Type: Multipath-Extension-Type (154) 
</t>
          

<t hangText="Subtype"></t>
<t>
    This field MUST be set to a value of 1 (Multipath Extension).
</t>


<t hangText="Length"></t>
<t>
The length of the extension in octets, excluding Type, Subtype, and Length fields. This field MUST be set to 
a value of 4.
</t>
 
 
<t hangText="Interface Access-Technology Type (If-ATT)"></t>    
<t>  
This 8-bit field identifies the Access Technology type of the interface through which the mobile node is
connected. The permitted values for this are from the Access Technology Type registry defined in 
<xref target="RFC5213"/>.
</t>
         



<t hangText="Interface Label (If-Label)"></t>   
<t> 
This 8-bit field represents the interface label represented as an unsigned integer. The mobile node identifies
the label for each of the interfaces through which it registers a CoA with the home agent.  When using static traffic
flow policies on the mobile node and the home agent, the label can be used for indexing forwarding policies.
For example, the operator may have a policy that binds an IP flow "F1" to any
interface with the label "Blue". 
When a registration through an interface matching the label "Blue" gets activated, the home agent and the mobile node
establish an IP tunnel and the tunnel is marked with that label. Both the home agent and the mobile node generate
traffic rules for forwarding IP flow traffic "F1" through the mobile IP tunnel
matching the label "Blue". The permitted values for If-Label are 1 through 255. 
</t>    


<t hangText="Binding Identifier (BID)"></t>    
<t>               
This 8-bit field is used for carrying the binding identifier. It uniquely identifies a specific binding of the mobile
node associated with this Registration Request.  Each binding identifier is represented as an unsigned integer.
The  permitted values are 1 through 254. The BID value of 0 and 255 are reserved. 
</t>  
    
<t hangText="Bulk Re-registration Flag (B)"></t>    
<t>               
The (B) flag, if set to a value of (1), notifies the home agent to update the binding lifetime of all the mobile node's 
bindings upon accepting this request. The (B) flag MUST NOT be set to a value of (1) if the value of the Registration 
Overwrite Flag (O) flag is set to a value of (1). 
</t>          
         
<t hangText="Registration Overwrite (O)"></t>    
<t>               
The (O) flag, if set to a value of (1), notifies the home agent that upon accepting this request it should replace
all of the mobile node's existing bindings with the new binding that will be created upon accepting this request.
The (O) flag MUST NOT be set to a value of (1) if the value of the Bulk Re-registration Flag (B) is set to a value of 
(1). This flag MUST be set to a value of (0) in De-Registration requests.
</t>                            

                      
<t hangText="Reserved (R)"></t>
<t>
This 6-bit field is unused for now. The value MUST be initialized to (0) by the sender and MUST be ignored by 
the receiver.
</t>                
         
</list> </t>
</section>






<section anchor="flow-id-ext" title="Flow-Binding Extension">
<t>
This extension contains information that can be used by the mobile node and the
home agent for binding mobile node's IP flows to a specific multipath registration. There can
be more than one instance of  this extension present in the message. 
</t>

<t>
This extension is a non-skippable extension and MAY be added to the Registration 
Request by the mobile node or by the home agent to the Registration Reply.
</t>

<t>
This extension should be protected by Mobile-Home Authentication Extension 
<xref target="RFC5944"/>.  As specified in Section 3.2 and 3.6.1.3 of <xref target="RFC5944"/>,
the mobile node MUST place this extension before the Mobile-Home Authentication
Extension in the registration messages so that this extension is integrity
protected.
</t> 

<t>
The format of this extension is as shown below.  It adheres to the long extension 
format described in <xref target="RFC5944"/>.
</t>


<figure anchor='fig4' title="Flow-Binding Extension" >
<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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |    Subtype    |           Length              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Action     |  BID Count    |        ...   BID List   ...   ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   TS Format   |             Traffic Selector                  ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure> 


<t> <list style="hanging">
<t hangText="Type"></t>

<t>
Type: Multipath-Extension-Type (154) 
</t>


<t hangText="Subtype"></t>
<t>
This field MUST be set to a value of 2 (Flow-Binding Extension).
</t>


<t hangText="Length"></t>
<t>
The length of the extension in octets, excluding Type, Subtype, and Length fields. 
</t>


<t hangText="Action"></t>
<t>
The Action field identifies the traffic rule that needs to be enforced. Following
are the possible values.
</t>

<t>
<figure anchor="fig8"  title="Action Rules for the Traffic Selector">
<artwork><![CDATA[ 
+---------+-------+-------------------------------------------------+
|  Action | Value | Description                                     |
+---------+-------+-------------------------------------------------+
|  DROP   |   0   | Drop matching packets. A filter rule            |
|         |       | indicating a drop action MUST include a single  |
|         |       | BID byte, the value of which MAY be set to 255  |
|         |       | by the sender and the value of which SHOULD be  |
|         |       | ignored by the receiver.                        |
+---------+-------+-------------------------------------------------+
| FORWARD |   1   | Forward matching packets to the first BID in the|
|         |       | list of BIDs the filter rule is pointing to.    |
|         |       | If the first BID becomes invalid (i.e., the     |
|         |       | corresponding CoA is de-registered), use the    |
|         |       | next BID in the list.                           |    
+---------+-------+-------------------------------------------------+
]]> </artwork>
</figure>
</t>

          
<t hangText="BID Count"></t>
<t>
Total number of binding identifiers that follow this field. The permitted values for
this field are 1 through 8; each binding identifier is represented as an 
unsigned integer in a single octet field. There is no delimiter between two binding 
identifier values; they are spaced consecutively.
</t>
 

<t hangText="TS Format"></t>
<t>
An 8-bit unsigned integer indicating the Traffic Selector (TS) Format.  
The value (0) is reserved and MUST NOT be used.  When the value of the TS Format field is set to (1),
the format that follows is the IPv4 Binary Traffic Selector specified in Section 3.1 of 
<xref target="RFC6088"/>, and when the value of the TS Format field is set to (2), the format that
follows is the IPv6 Binary Traffic Selector specified in Section 3.2 of <xref target="RFC6088"/>.
The IPv6 traffic selectors are only relevant when the mobile node registers IPv6 prefixes 
per <xref target="RFC5454"/>.
</t>


<t hangText="Traffic Selector"></t>
<t>
A variable-length opaque field for including the traffic specification
identified by the TS Format field. It identifies the traffic selectors for matching the IP
traffic and binding them to specific binding identifiers.
</t>

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






<section title="New Error Codes for Registration Reply" anchor="PBA_status_code">
<t>
This document defines the following error code values for use by the home agent in the 
Code field of the Registration Reply. 
</t>

<!--vspace blankLines="1" /-->
<t>
MULTIPATH_NOT_ALLOWED (Multipath Support not allowed for this mobile node): 152
</t>

<t>
INVALID_FB_IDENTIFIER (Invalid Flow-Binding Identifier): 153
</t>


</section> <!-- Status Code -->

</section>




<section title="Protocol Operation">




<section title="Mobile Node Considerations">


<t>
<list style="symbols">  
<t>
The mobile node should register a care-of address for each of the connected interfaces
that it wishes to register with the home agent. It  can do so by sending a Registration
Request to the home agent through each of those interfaces.
</t>

<t>
Each of the Registration Requests that is sent includes the care-of address of the
respective interface. The Registration Request has to be routed through the specific
interface for which the registration is sought for. Some of these interfaces may be connected
to networks with a configured foreign agent on the link, and in such foreign-agent-based
registrations, the care-of address will be the IP address of the foreign agent.
</t>

<t>
A Multipath Extension (<xref target="mp-ext"></xref>) reflecting the interface parameters
is present in each of the Registration Requests. This serves as an indication to the
home agent that the Registration Request is a Multipath registration and the home agent will have
to register this care-of address as one of the many care-of addresses through which the mobile
node's home address is reachable. 
</t>

<t>
If the mobile node is configured to exchange IP flow policy to the home agent, then the 
Flow-Binding Extension  (<xref target="flow-id-ext"></xref>) reflecting the flow policy
can be included in the message.  Otherwise, the Flow-Binding Extension will not be included.
</t>

<t>
The mobile node, upon receiving a Registration Reply with the Code value set to MULTIPATH_NOT_ALLOWED,
MAY choose to register without the Multipath Extension specified in this document. This implies the
home agent has not enabled multipath support for this mobile node and hence multipath support
MUST be disabled on the mobile node.
</t>


<t>
The mobile node, upon receiving a Registration Reply with the Code value set to INVALID_FB_IDENTIFIER,
MUST re-register that specific binding with the home agent.
</t>
 
<t>
The mobile node at any time can extend the lifetime of a specific care-of address registration
by sending a Registration Request to the home agent with a new lifetime value. The message MUST
be sent as the initial multipath registration and must be routed through that specific interface.
The message MUST include the Multipath Extension (<xref target="mp-ext"></xref>) with the value 
in the Binding ID field set to the binding identifier assigned to that binding.
Alternatively, the home agent can send a single Registration Request with the Bulk Re-registration
Flag (B) set to a value of (1). This serves as a request to the home agent to update the registration 
lifetime of all the mobile node's registrations.
</t>

<t>
The mobile node can, at any time, de-register a specific care-of address by sending a
Registration Request to the home agent with a lifetime value of (0).  The message must
include the Multipath Extension  (<xref target="mp-ext"></xref>) with the
value in the Binding ID
field set to the binding identifier assigned to that binding. Alternatively, the home agent can send a
single Registration Request with the Bulk Re-registration Flag (B) set to a value of (1) and a lifetime
value of (0). This serves as a request to the home agent to consider this request as a request to 
de-register all the mobile node's care-of addresses.
</t>


<t>
The mobile node can, at any time, update the parameters of a specific registration by sending a
Registration Request to the home agent. This includes a change of care-of address associated with a 
previously registered interface.  The message must be sent as the initial multipath registration and
must be routed through that specific interface. The message must include the Multipath Extension 
(<xref target="mp-ext"></xref>) with the value in the Binding ID field set to the binding identifier
assigned to that binding, and the Overwrite Flag (O) flag MUST be set to a value of (1). 
</t>

<t>
The mobile node, upon receiving a Registration Reply with the Code value set to 0 (registration accepted),
will establish a Mobile IP tunnel to the home agent using that care-of
address. When using a foreign agent
care-of address, the tunnel is between the home agent and the foreign agent.
The tunnel encapsulation type
and any other parameters are based on the registration for that path.  If there is also an exchange of
flow policy between the mobile node and the home agent, with the use of Flow-Binding Extensions, then
the mobile node must set up the forwarding plane that matches the flow policy.
</t>




</list>
</t>


</section>






<section title="Home Agent Considerations">
<t>
The home agent, upon receiving a Registration Request from a mobile node with a 
Multipath Extension, should check if the mobile node is authorized for multipath 
support. If multipath support is not enabled, the home agent MUST reject the request with
a Registration Reply and with the Code set to MULTIPATH_NOT_ALLOWED.
</t>

<t>
If the received Registration Request includes a Multipath Extension and additionally has the 
Bulk Re-registration (B) flag set to a value of (1), then the home agent MUST
extend the lifetime of all the bindings associated with that mobile node.
</t>

<t>
The home agent, upon receipt of a Registration Request with the Flow-Binding Extension,
must process the extension and, upon accepting the flow policy, must set up the forwarding
plane that matches the flow policy. If the home agent cannot identify any of the 
binding identifiers, then it MUST reject the request with a Registration Reply and
with the Code set to INVALID_FB_IDENTIFIER.
</t>

<t>
If the received Registration Request includes a Multipath Extension and additionally has the 
Registration Overwrite (O) flag set to a value of (1), then the home agent MUST consider 
this as a request to replace all other mobile node's bindings with just one binding and 
that is the binding associated with this request.
</t>


</section>
</section>





<section title="Routing Considerations">

<t>
When multipath registration is enabled for a mobility node, there will be multiple
Mobile IP tunnels established between a mobile node and its home agent. These
Mobile IP tunnels appear to the forwarding plane of the mobile node as equal-cost, 
point-to-point links.
</t>

<t>
If there is also an exchange of traffic flow policy between the mobile node and the home agent,
with the use of Flow-Binding Extensions (<xref target="flow-id-ext"></xref>), then the
mobile node's IP traffic can be routed by the mobility entities as per the negotiated
flow policy.  However, if multipath is enabled for a mobility session without the use of
any flow policy exchange, then both the mobile node and the home agent are required to
have a pre-configured static flow policy. The specific details on the semantics of this
static flow policy are outside the scope of this document.  
</t>

<t>
In the absence of any established traffic flow policies, most IP hosts support 
two alternative traffic load-balancing schemes, per-flow and per-packet load balancing
<xref target="RFC2991"/>.  

<!-- [rfced] Please clarify this sentence, particularly 
"of either a per-packet or on a per-flow basis".

Original:
   These load balancing
   schemes allow the forwarding plane to evenly distribute traffic based
   on the criteria of either a per-packet or on a per-flow basis, across
   all the available equal-cost links through which a destination can be
   reached.

Perhaps:
   These load-balancing
   schemes allow the forwarding plane to evenly distribute traffic based
   on either per-packet or per-flow criteria, across
   all the available equal-cost links through which a destination can be
   reached.

Or:
   These load-balancing
   schemes allow the forwarding plane to evenly distribute traffic 
   on either a per-packet or per-flow basis, across
   all the available equal-cost links through which a destination can be
   reached.
-->

These load-balancing schemes allow the forwarding plane to evenly 
distribute traffic based on the criteria of either a per-packet or on a per-flow basis, across 
all the available equal-cost links through which a destination can be reached. The default forwarding
behavior of per-flow load balancing will ensure a given flow always takes the same path
and will eliminate any packet re-ordering issues, and that is critical for delay-sensitive
traffic, whereas the per-destination load-balancing scheme leverages all the paths much
more effectively but with the potential issue of packet re-ordering on the receiver end. This 
issue will be specially magnified when the access links have very different forwarding characteristics.
A host can choose to enable any of these approaches. Therefore, this specification recommends
the use of per-flow load balancing.
</t>

</section> <!-- Routing Considerations -->



<section title="IANA Considerations">
<t>
Per this document, the following IANA actions have been completed.
</t>

<t>
<list style="symbols">

<t>
Action 1: This specification defines two new Mobile IP extensions, the Multipath
Extension and the Flow-Binding Extension.
The format of the Multipath Extension is described in <xref target="mp-ext"></xref>, and the format of the 
Flow-Binding Extension is described in <xref target="flow-id-ext"></xref>.  Both of these extensions are non-skippable
extensions to the Mobile IPv4 header in accordance to the long extension format of <xref target="RFC5944"/>. Both
of these extensions use a common Type value, Multipath-Extension (154), but are identified using different Subtype values.
The Type value 154 for these extensions has been allocated from the "Extensions to Mobile IP Registration Messages" registry
at the URL &lt;http://www.iana.org/assignments/mobileip-numbers&gt;. The field "Permitted for Notification Messages" for this extension
MUST be set to "N".
</t>



<t>
Action 2: This specification defines a new message subtype space, Multipath Extension subtype.
This field is described in <xref target="mp-ext"></xref>. The values for this subtype field 
are managed by IANA under the "Multipath Extension subtypes (Value 154)" registry. 
This specification reserves the following Type values. Approvals of new Multipath Extension subtype
values are to be made through IANA Expert Review <xref target="RFC5226"/>.
<figure>
<artwork>
<![CDATA[
   +=========================================================+
   |  0    | Reserved                                        |
   +=========================================================+
   |  1    | Multipath Extension                             |
   +=========================================================+
   |  2    | Flow-Binding Extension                          |
   +=========================================================+
   |       |                                                 |
   ~ 3-254 | Unassigned                                      ~
   |       |                                                 |
   +=========================================================+
   |  255  | Reserved                                        |
   +=========================================================+
]]>
</artwork>
</figure> 
</t>


<t>
Action 3: This document defines new status code values, MULTIPATH_NOT_ALLOWED
(152) and INVALID_FB_IDENTIFIER (153), for use by the home agent in the
Code field of the Registration Reply, as described in <xref target="PBA_status_code"/>. 
These values have been assigned from the "Registration denied by the home agent" registry at
&lt;http://www.iana.org/assignments/mobileip-numbers&gt;.
</t>


</list>
</t>
</section> <!-- IANA Considerations -->

<section title="Security Considerations">
<t>
This specification allows a mobile node to establish multiple Mobile IP tunnels
with its home agent by registering a care-of address for each of its
active roaming interfaces. This essentially allows the mobile node's
IP traffic to be routed  through any of the tunnel paths based on a static
or a dynamically negotiated flow policy. This new capability has no impact on
the protocol security. Furthermore, this specification defines two
new Mobile IP extensions, the Multipath Extension and the Flow-Binding
Extension. These extensions are specified to be included in Mobile IP control
messages, which are authenticated and integrity protected as 
described in <xref target="RFC5944"/>. Therefore,  this specification does
not weaken the security of the Mobile IP protocol and does not introduce any new 
security vulnerabilities.
</t>
</section> <!-- Security Considerations -->

</middle>




<back>



<references title="Normative References">
&rfc2119;
&rfc5213;
&rfc5944;
&rfc6088;

</references>



<references title="Informative References">
&rfc3753;
&rfc5454;
&rfc6626;
&rfc2991;
&rfc5226;

</references>

<section title="Acknowledgements" numbered="no">
<t>
   We would like to thank Qin Wu, Shahriar Rahman, Mohana Jeyatharan, Yungui
   Wang, Hui Deng Behcet Sarikaya, Jouni Korhonen, Michaela Vanderveen,
   Antti Makela, Charles Perkins, Pierrick Seite, Vijay Gurbani, Barry
   Leiba, Henrik Levkowetz, Pete McCann, and Brian Haberman for their
   review and comments on this document.
 </t></section>
<section title="Contributors" numbered="no">
<t>                                                                                                                       This document reflects discussions and contributions from the following people:                                           </t>

<t>
<list style="hanging">
  <t hangText="Ahmad Muhanna"></t>
  <t>asmuhanna@yahoo.com</t>
</list>
</t>

<t><list style="hanging">
  <t hangText="Srinivasa Kanduru">
  </t><t>skanduru@gmail.com</t>
</list></t>


<t><list style="hanging">
  <t hangText="Vince Park">
  </t><t>vpark@qualcomm.com</t>
</list></t>


<t><list style="hanging">
    <t hangText="Hesham Soliman">
    </t><t>hesham@elevatemobile.com</t>
  </list></t>
</section>

</back>
</rfc>
