<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes" ?>
<rfc category="info"
     docName="draft-ietf-dmm-distributed-mobility-anchoring-02"
     ipr="trust200902">
<front>
<title abbrev="distributed mobility anchoring">Distributed Mobility
    Anchoring</title>

<!--
<author fullname="H Anthony Chan" initials="H" surname="Chan">
 -->
<author fullname="H Anthony Chan" initials="H" surname="Chan" role="editor">
  <organization>Huawei Technologies</organization>
  <address>
    <postal>
      <street>5340 Legacy Dr. Building 3</street>
      <city>Plano, TX 75024</city>
      <country>USA</country>
    </postal>
    <email>h.a.chan@ieee.org</email>
  </address>
</author>

<author fullname="Xinpeng Wei" initials="X" surname="Wei">
  <organization>Huawei Technologies</organization>
  <address>
    <postal>
      <street>Xin-Xi Rd. No. 3, Haidian District</street>
      <city>Beijing, 100095</city>
      <country>P. R. China</country>
    </postal>
    <email>weixinpeng@huawei.com</email>
  </address>
</author>

<author fullname="Jong-Hyouk Lee" initials="J" surname="Lee">
  <organization>Sangmyung University</organization>
  <address>
    <postal>
      <street>31, Sangmyeongdae-gil, Dongnam-gu</street>
      <city>Cheonan 31066</city>
      <country>Republic of Korea</country>
    </postal>
    <email>jonghyouk@smu.ac.kr</email>
  </address>
</author>

<author fullname="Seil Jeon" initials="S" surname="Jeon">
  <organization>Sungkyunkwan University</organization>
  <address>
    <postal>
      <street>2066 Seobu-ro, Jangan-gu</street>
      <city>Suwon, Gyeonggi-do</city>
      <country>Republic of Korea</country>
    </postal>
    <email>seiljeon@skku.edu</email>
  </address>
</author>

<author fullname="Alexandre Petrescu" initials="A" surname="Petrescu">
  <organization>CEA, LIST</organization>
  <address>
    <postal>
      <street>CEA Saclay</street>
      <city>Gif-sur-Yvette</city>
      <region>Ile-de-France</region>
      <code>91190</code>
      <country>France</country>
    </postal>
    <phone>+33169089223</phone>
    <email>Alexandre.Petrescu@cea.fr</email>
  </address>
</author>

<author fullname="Fred L. Templin" initials="F" surname="Templin">
  <organization>Boeing Research and Technology</organization>
  <address>
    <postal>
      <street>P.O. Box 3707</street>
      <city>Seattle</city>
      <region>WA</region>
      <code>98124</code>
      <country>USA</country>
    </postal>
    <email>fltemplin@acm.org</email>
  </address>
</author>

<date year="2016" month="" day=""/>
<area/>

<workgroup>DMM</workgroup>

<abstract>
<t>
This document defines distributed mobility anchoring
to meet diverse mobility needs in 5G Wireless and beyond.
Multiple anchors and nodes with mobility functions
work together to provide IP mobility support.
A network or network slice may 
be configured with distributed mobility anchoring
depending on the needs of mobility support.
In the distributed mobility anchoring environment,
multiple anchors are available
for mid-session switching of an IP prefix anchor. 
Without an ongoing session,
i.e., no IP session continuity required,
a flow of a mobile node can be re-started
using a new IP prefix
which is allocated from a new network of the mobile node
and is therefore anchored to the new network. 
With an ongoing session,
the anchoring of the prior IP prefix 
may be relocated to the new network
to enable IP session continuity.
</t>
</abstract>
</front>

<middle>

<!-- Introduction -->

<section anchor="intro" title="Introduction">
<t>A key requirement in distributed mobility management 
<xref target="RFC7333"/> 
is to enable traffic to avoid traversing a single mobility anchor 
far from an optimal route. 
Distributed mobility management solutions 
do not make use of centrally deployed mobility anchor
for a data plane
<xref target="Paper-Distributed.Mobility"/>. 
As such,
the traffic of a flow SHOULD be able to change 
from traversing one mobility anchor 
to traversing another mobility anchor 
as a mobile node (MN) moves, 
or when changing operation and management requirements 
call for mobility anchor switching, 
thus avoiding non-optimal routes. 
This draft proposes distributed mobility anchoring 
to enable making such route changes.
</t>

<t>
Distributed mobility anchoring 
employs multiple anchors in the data plane. 
In general,
control plane functions may be separate 
from data plane functions 
and be centralized
but may also be co-located with the data plane functions
at the distributed anchors.
Different configurations 
of distributed mobility anchoring are described in
<xref target="sec:distributed-anchoring-configurations"/>.
For instance,
the configurations
for network-based mobility support in a flat network,
for network-based mobility support in a hierarchical network,
for host-based mobility support,
and for NEtwork MObility (NEMO) basic support
are described respectively in
<xref target="sec:distributed-anchoring-network-based"/>,
<xref target="sec:distributed-anchoring-network-based-hierarchical"/>,
<xref target="sec:distributed-anchoring-host-based"/>
and 
<xref target="sec:distributed-anchoring-mr"/>.
Required operations and parameters
for distributed mobility anchoring are presented in
<xref target="sec:distributed-anchoring-behaviors"/>.
For instance,
location management is described in
<xref target="sec:LM-behaviors"/>,
forwarding management is described in
<xref target="sec:FM-behaviors"/>.
</t>

<t>
An MN attached to an access router of a network
or network slice
may be allocated an IP prefix
which is anchored to that router.
It may then use an IP address configured from this prefix
as the source IP address to run a flow
with its correspondent node (CN).
When there are multiple mobility anchors, 
an address selection for a given flow
is first required
before the flow is initiated. 
Using an anchor in an MN's network of attachment
has the advantage that the packets can simply be forwarded 
according to the forwarding table. 
Although the anchor is in the MN's network of attachment 
when the flow was initiated, 
the MN may later move to another network, 
so that the IP no longer belongs to the current network of attachment of the MN.
</t>

<t>
Whether the flow needs IP session continuity
will determine
how to ensure that the IP address of the flow 
will be anchored to the new network of attachment.
If the ongoing IP flow can cope with an IP prefix/address change, 
the flow can be reinitiated 
with a new IP address anchored in the new network
as shown in
<xref target="sec:changing-anchor"/>. 
On the other hand, 
if the ongoing IP flow cannot cope with such change, 
mobility support is needed as shown in
<xref target="sec:needed"/>.
A network or network slice supporting a mix of flows
requiring and not requiring IP mobility support
will need to distinguish these flows. 
The guidelines for such network or network slice
are described in
<xref target="sec:IPv6-nodes-changing-anchor"/>. 
The general guidelines for such network or network slice
to provide IP mobility support are described in
<xref target="sec:IPv6-nodes-needing-mobility"/>.
</t>

<t>
Specifically, IP mobility support can be provided by
changing the anchoring of the IP prefix/address of the flow
from the home network of the flow to the new network of attachment.
The basic case may be with network-based mobility for a flat network configuration
described in
<xref target="sec:switching-anchor-flatter"/>
with the guidelines described in
<xref target="sec:IPv6-nodes-switching-anchor"/>.
This case is discussed further with a centralized control plane in
<xref target="sec:switching-anchor-central-CP"/>
with additional guidelines described in
<xref target="sec:IPv6-nodes-switching-anchor-central-CP"/>.
A level of hierarchy of nodes may then be added to the network configuration.
Mobility involving change in the Data Plane Node (DPN)
without changing the Data Plane Anchor (DPA)
is described in
<xref target="sec:hierarchical-network"/>
with additional guidelines described in
<xref target="sec:IPv6-nodes-switching-dpn-hierarchical-network"/>
Mobility involving change in the DPN without changing the DPA
is described in
<xref target="sec:hierarchical-network-anchor-switching"/>
with additional guidelines described in
<xref target="sec:IPv6-nodes-switching-anchor-hierarchical-network"/>
</t>
</section>


<!-- Conventions and terminoloty (begin section)-->
<section title="Conventions and Terminology">

<t>
The key words "MUST", "MUST NOT", "GLUIRED", "SHALL","SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
in this document are to be interpreted as described in 
<xref target="RFC2119"/>.
</t>

<t>
All general mobility-related terms and their acronyms used in this document 
are to be interpreted as defined in the Mobile IPv6 (MIPv6) 
base specification <xref target="RFC6275"/>, 
the Proxy Mobile IPv6 (PMIPv6) specification <xref target="RFC5213"/>,
the "Mobility Related Terminologies" <xref target="RFC3753"/>,
and the DMM current practices and gap analysis <xref target="RFC7429"/>.
These include terms such as mobile node (MN), correspondent node (CN), 
home agent (HA), home address (HoA), care-of-address (CoA), 
local mobility anchor (LMA), and mobile access gateway (MAG).
</t>

<t>In addition, this document uses the following terms:</t>

<t><list style="hanging">
<t hangText="Home network of an application session or a home address:">
the network that has allocated the HoA 
used for the session identifier by the application running in an MN. 
The MN may be running multiple application sessions, 
and each of these sessions can have a different home network. 
<vspace blankLines="1"/>
</t>

<t hangText="IP prefix/address anchoring:">
An IP prefix, i.e., Home Network Prefix (HNP), 
or address, i.e., HoA,
allocated to an MN is topologically anchored to an anchor node 
when the anchor node is able to advertise a connected route 
into the routing infrastructure for the allocated IP prefix. 
<vspace blankLines="1"/>
</t>

<t hangText="Location Management (LM) function:">
managing and keeping track of the internetwork location of an MN. 
The location information may be a binding 
of the IP advertised address/prefix, e.g., HoA or HNP, 
to the IP routing address of the MN or of a node 
that can forward packets destined to the MN. 
<vspace blankLines="1"/> 

When the MN is a mobile router (MR)
carrying a mobile network of mobile network nodes (MNN),
the location information will also include 
the mobile network prefix (MNP),
which is the IP prefix
delegated to the MR.
The MNP is allocated to the MNNs in the mobile network.
<vspace blankLines="1"/> 

LM is a control plane function. 
<vspace blankLines="1"/> 

In a client-server protocol model, 
location query and update messages may be exchanged
between a Location Management client (LMc) 
and a Location Management server (LMs). 
<vspace blankLines="1"/> 

Optionally, there may be a Location Management proxy (LMp)
between LMc and LMs.
<vspace blankLines="1"/> 

With separation of control plane and data plane, 
the LM function is in the control plane. 
It may be a logical function at the control plane node, 
control plane anchor, or mobility controller. 
<vspace blankLines="1"/> 

It may be distributed or centralized. 
<vspace blankLines="1"/>
</t>

<t hangText="Forwarding Management (FM) function:">
packet interception and forwarding to/from the IP address/prefix 
assigned to the MN, based on the internetwork location information, 
either to the destination or to some other network element 
that knows how to forward the packets to their destination. 
<vspace blankLines="1"/>

This function may be used to achieve traffic indirection. 
With separation of control plane and data plane, 
the FM function may split into a FM function in the data plane (FM-DP) 
and a FM function in the control plane (FM-CP).
<vspace blankLines="1"/> 

FM-DP may be distributed with distributed mobility management. 
It may be a function in a data plane anchor or data plane node. 
<vspace blankLines="1"/> 

FM-CP may be distributed or centralized. 
It may be a function in a control plane node,
control plane anchor or mobility controller. 
<vspace blankLines="1"/>
</t>

<!-- sm function (begin) -->

<t hangText="Security Management (SM) function:">
The security management function controls security mechanisms/protocols
providing access control, integrity, authentication, authorization,
confidentiality, etc. for the control plane and data plane. 
<vspace blankLines="1"/> 

This function resides in all nodes such as control plane anchor, 
data plane anchor, mobile node, and correspondent node.
</t>

<!-- sm function (end) -->

</list></t>

</section>
<!-- Conventions and terminoloty (end section) -->








<!-- distributed mobility anchoring (begin section) -->
<section anchor="sec:distributed-anchoring"
          title="Distributed Mobility Anchoring">







<!-- distributed anchoring configurations (begin section) -->
<section anchor="sec:distributed-anchoring-configurations"
 title="Configurations for Different Networks or Network Slices">

<t>
The mobility functions may be implemented 
in different configurations of distributed mobility anchoring
in architectures separating the control and data planes.
The separation described in
<xref target="I-D.ietf-dmm-deployment-models"/>
has defined
the home control plane anchor (Home-CPA),
home data plane anchor (Home-DPA),
access control plane node (Access-CPN),
and
access data plane node (Access-DPN),
which are respectively abbreviated as
CPA, DPA, CPN, and DPN here.
Some configurations are described in
<xref target="I-D.sijeon-dmm-deployment-models"/>.
</t>

<t>
Different networks or different network slices 
may have different configurations in distributed mobility anchoring.
</t>


<t>
The configurations also differ
depending on the desired mobility supports:
network-based mobility support for a flat network in
<xref target="sec:distributed-anchoring-network-based"/>,
network-based mobility support for a hierarchical network in
<xref target="sec:distributed-anchoring-network-based-hierarchical"/>,
host-based mobility support
(<xref target="sec:distributed-anchoring-host-based"/>),
and
NEtwork MObility (NEMO) based support in
<xref target="sec:distributed-anchoring-mr"/>.
</t>


<!-- distributed anchoring network based flat begin section) -->
<section anchor="sec:distributed-anchoring-network-based"
          title="Network-based Mobility Support for a Flat Network">

<t>
Figure 1 shows two different configurations of network-based mobility management for a flat network.
</t>


<figure>
  <preamble/>

  <artwork><![CDATA[
      (a)                                   (b)
                                             +-----+
                                             |LMs  |
                                             +-----+

+------------+                        +------------+
|CPA:        |                        |CPA:        |
|FM-CP, LM   |                        |FM-CP, LMc  |
+------------+                        +------------+
+------------+ +------------+         +------------+ +------------+
|DPA(IPa1):  | |DPA(IPa2):  |         |DPA(IPa1):  | |DPA(IPa2):  |
|anchors IP1 | |anchors IP2 | ...     |anchors IP1 | |anchors IP2 | ...
|FM-DP       | |FM-DP       |         |FM-DP       | |FM-DP       |
+------------+ +------------+         +------------+ +------------+


+------------+                        +------------+
|MN(IP1)     |                        |MN(IP1)     |
|flow(IP1,..)|                        |flow(IP1,..)|
+------------+                        +------------+
  ]]></artwork>

  <postamble>
Figure 1. Configurations of network-based mobility management for a flat network
(a) FM-CP and LM at CPA, FM-DP at DPA;
(b) Separate LMs, FM-CP and LMc at CPA, FM-DP at DPA.
  </postamble>
</figure>

<t>
Figure 1 also shows a distributed mobility anchoring environment
with multiple instances of the DPA. 
</t>
<t>
There is an FM-DP function at each of the distributed DPA. 
</t>

<t>
The control plane may either be distributed (not shown) or centralized.
When the CPA co-locates with the distributed DPA
there will be multiple instances of the co-located CPA and DPA
(not shown).
</t>
<t>
There is an FM-CP function at the CPA.
</t>

<t>
An MN is allocated an IP prefix/address IP1
which is anchored to the DPA
with the IP prefix/address IPa1.
The MN uses IP1 to communicate with a CN
not shown in the figure.
The flow of this communication session is shown as flow(IP1, ...)
which uses IP1 and other parameters.
</t>

<t>
In Figure 1(a),
LM and FM-CP co-locate at CPA.
</t>
<t>
Then LM may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

<t>
Figure 1(b) differs from Figure 1(a) in that
the LM function is split into a server LMs and a client LMc.
</t>
<t>
LMc and FM-CP co-locate at the CPA.
</t>
<t>
The LMs may be centralized whereas
the LMc may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

</section>
<!-- distributed anchoring network based flat (end section) -->


<!-- distributed anchoring network based hierarchical (begin section) -->
<section anchor="sec:distributed-anchoring-network-based-hierarchical"
          title="Network-based Mobility Support for a Hierarchical Network">

<t>
Figure 2 shows two different configurations of network-based mobility management 
for a hierarchical network.
</t>


<figure>
  <preamble/>

  <artwork><![CDATA[
      (a)
+------------+
|CPA:        |
|FM-CP, LMs  |
+------------+
+------------+                        +------------+               
|DPA(IPa1):  |                        |DPA(IPa2):  |               
|anchors IP1 |                        |anchors IP2 |                ...
|FM-DP       |                        |FM-DP       |               
+------------+                        +------------+               


+------------+
|CPN:        |
|FM-CP, LMc  |
+------------+
+------------+ +------------+         +------------+ +------------+
|DPN(IPn11): | |DPN(IPn12): |         |DPN(IPn21): | |DPN(IPn22)  |
|FM-DP       | |FM-DP       | ...     |FM-DP       | |FM-DP       | ...
+------------+ +------------+         +------------+ +------------+


+------------+                        +------------+
|MN(IP1)     |                        |MN(IP2)     |
|flow(IP1,..)|                        |flow(IP2,..)|
+------------+                        +------------+
  ]]></artwork>

  <postamble>
Figure 2(a). Configurations of network-based mobility management for a hierarchical network
with
FM-CP and LMs at CPA, FM-DP at DPA;
FM-CP and LMc at CPN, FM-DP at DPN.
  </postamble>
</figure>


<figure>
  <preamble/>

  <artwork><![CDATA[
      (b)
       +-----+
       |LMs  |
       +-----+

+------------+
|CPA:        |
|FM-CP, LMp  |
+------------+
+------------+                        +------------+               
|DPA(IPa1):  |                        |DPA(IPa2):  |               
|anchors IP1 |                        |anchors IP2 |                ...
|FM-DP       |                        |FM-DP       |               
+------------+                        +------------+               


+------------+
|CPN:        |
|FM-CP, LMc  |
+------------+
+------------+ +------------+         +------------+ +------------+
|DPN(IPn11): | |DPN(IPn12): |         |DPN(IPn21): | |DPN(IPn22)  |
|FM-DP       | |FM-DP       | ...     |FM-DP       | |FM-DP       | ...
+------------+ +------------+         +------------+ +------------+


+------------+                        +------------+
|MN(IP1)     |                        |MN(IP2)     |
|flow(IP1,..)|                        |flow(IP2,..)|
+------------+                        +------------+
  ]]></artwork>

  <postamble>
Figure 2(b). Configurations of network-based mobility management for a hierarchical network
with
separate LMs, FM-CP and LMp at CPA, FM-DP at DPA;
FM-CP and LMc at CPN, FM-DP at DPN.
  </postamble>
</figure>


<t>
Figures 2 also shows a distributed mobility anchoring environment
with multiple instances of the DPA.
</t>
<t>
In the hierarchy, there may be multiple DPN's for each DPA. 
</t>
<t>
There is FM-DP at each of the distributed DPA and at each of the distributed DPN.
</t>

<t>
The control plane may either be distributed (not shown) or centralized.
</t>
<t>
When the CPA co-locates with the distributed DPA
there will be multiple instances of the co-located CPA and DPA
(not shown).
</t>
<t>
When the CPN co-locates with the distributed DPN
there will be multiple instances of the co-located CPN and DPN
(not shown).
</t>
<t>
There is FM-CP function at the CPA and at the CPN.
</t>

<t>
MN is allocated an IP prefix/address IP1
which is anchored to the DPA
with the IP prefix/address IPa1.
It is using IP1 to communicate with a correspondent node (CN)
not shown in the figure.
The flow of this communication session is shown as flow(IP1, ...)
which uses IP1 and other parameters.
</t>

<t>
In Figure 2(a),
LMs and FM-CP are at the CPA.
In addition,
there are FM-CP and LMc at the CPN.
</t>
<t>
LMs may be distributed or centralized 
according to whether the CPA is distributed or centralized.
The CPA may co-locate with DPA or may separate.
</t>

<t>
Figure 2(b) differs from Figure 2(a) in that
the LMs is separated out, 
and a proxy LMp is added between the LMs and LMc.
</t>
<t>
LMp and FM-CP co-locate at the CPA.
</t>
<t>
FM-CP and LMc co-locate at the CPN.
</t>
<t>
The LMs may be centralized whereas
the LMp may be distributed or centralized 
according to whether the CPA is distributed or centralized.
</t>

</section>
<!-- distributed anchoring network based hierarchical (end section) -->


<!-- distributed anchoring host based (begin section) -->
<section anchor="sec:distributed-anchoring-host-based"
          title="Host-based Mobility Support">

<t>
Host-based variants of the mobility function configurations 
from Figures 2(a) and 2(b)
are respectively shown in Figures 3(a) and 3(b)
where the role to perform mobility functions by CPN and DPN
are now taken by the MN.
The MN then needs to possess the mobility functions FM and LMc.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
      (a)                                   (b)
                                             +-----+
                                             |LMs  |
                                             +-----+

+------------+                        +------------+
|CPA:        |                        |CPA:        |
|FM-CP, LMs  |                        |FM-CP, LMp  |
+------------+                        +------------+
+------------+ +------------+         +------------+ +------------+
|DPA(IPa1):  | |DPA(IPa2):  |         |DPA(IPa1):  | |DPA(IPa2):  |
|anchors IP1 | |anchors IP2 |  ...    |anchors IP1 | |anchors IP2 | ...
|FM-DP       | |FM-DP       |         |FM-DP       | |FM-DP       |
+------------+ +------------+         +------------+ +------------+


+------------+                        +------------+
|MN(IP1)     |                        |MN(IP1)     |
|flow(IP1,..)|                        |flow(IP1,..)|
|FM,    LMc  |                        |FM,    LMc  |
+------------+                        +------------+
  ]]></artwork>

  <postamble>
Figure 3. Configurations of host-based mobility management 
(a) FM-CP and LMs at CPA, FM-DP at DPA,
FM and LMc at MN;
(b) Separate LMs, FM-CP and LMp at CPA, FM-DP at DPA,
FM and LMc at MN.
  </postamble>
</figure>


<t>
Figure 3 shows 2 configurations of host-based mobility management
with multiple instances of DPA for a distributed mobility anchoring environment.
</t>
<t>
There is an FM-DP function at each of the distributed DPA. 
</t>

<t>
The control plane may either be distributed (not shown) or centralized.
</t>
<t>
When the CPA co-locates with the distributed DPA
there will be multiple instances of the co-located CPA and DPA
(not shown).
</t>
<t>
There is an FM-CP function at the CPA.
</t>

<t>
The MN possesses the mobility functions such as FM and LMc.
</t>
<t>
The MN is allocated an IP prefix/address IP1
which is anchored to the DPA
with the IP prefix/address IPa1.
It is using IP1 to communicate with a CN
not shown in the figure.
The flow of this communication session is shown as flow(IP1, ...)
which uses IP1 and other parameters.
</t>

<t>
In Figure 3(a),
LMs and FM-CP co-locate at the CPA.
</t>
<t>
The LMs may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

<t>
Figure 3(b) differs from Figure 3(a) in that
the LMs is separated out and the proxy LMp is added between the LMs and LMc.
</t>
<t>
LMp and FM-CP co-locate at the CPA.
</t>
<t>
The LMs may be centralized whereas
the LMp may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

</section>
<!-- distributed anchoring host based (end section) -->




<!-- distributed anchoring mobile router (begin section) -->
<section anchor="sec:distributed-anchoring-mr"
          title="NEtwork MObility (NEMO) Basic Support">

<t>
Figure 4 shows two configurations of NEMO basic support
for a mobile router.
</t>


<figure>
  <preamble/>

  <artwork><![CDATA[
      (a)                                   (b)
                                             +-----+
                                             |LMs  |
                                             +-----+

+------------+                        +------------+
|CPA:        |                        |CPA:        |
|FM-CP, LMs  |                        |FM-CP, LMp  |
+------------+                        +------------+
+------------+ +------------+         +------------+ +------------+
|DPA(IPa1):  | |DPA(IPa2):  |         |DPA(IPa1):  | |DPA(IPa2):  |
|anchors IP1 | |anchors IP2 |         |anchors IP1 | |anchors IP2 |
|DHCPv6-PD   | |DHCPv6-PD   |  ...    |DHCPv6-PD   | |DHCPv6-PD   | ...
|        IPn1| |        IPn2|         |        IPn1| |        IPn2|
|FM-DP       | |FM-DP       |         |FM-DP       | |FM-DP       |
+------------+ +------------+         +------------+ +------------+


+------------+                        +------------+
|FM-CP  LMc  |                        |FM-CP  LMc  |
|- - - - - - |                        |- - - - - - |
|MR(IP1)     |                        |MR(IP1)     |
|anchors IPn1|                        |anchors IPn1|
|FM-DP       |                        |FM-DP       |
+------------+                        +------------+


+------------+                        +------------+
|MNN(IPn1)   |                        |MR(IP1n1)   |
|flow(IPn1,.)|                        |flow(IPn1,.)|
+------------+                        +------------+
  ]]></artwork>

  <postamble>
Figure 4. Configurations of NEMO basic support for a MR.
(a) FM-CP and LMs at CPA, FM-DP at DPA,
FM and LMc at MR;
(b) Separate LMs, FM-CP and LMp at CPA, FM-DP at DPA,
FM and LMc at MR.
  </postamble>
</figure>


<t>
Figure 4 shows 2 configurations of host-based mobility management for a MR
with multiple instances of DPA for a distributed mobility anchoring environment.
</t>
<t>
There is an FM-DP function at each of the distributed DPA. 
</t>

<t>
The control plane may either be distributed (not shown) or centralized.
</t>
<t>
When the CPA co-locates with the distributed DPA
there will be multiple instances of the co-located CPA and DPA
(not shown).
</t>
<t>
There is FM-CP function at the CPA.
</t>

<t>
The MR possesses the mobility functions FM and LMc.
</t>
<t>
MR is allocated an IP prefix/address IP1
which is anchored to the DPA
with the IP prefix/address IPa1.
</t>
<t>
A mobile network node (MNN) in the mobile network 
is allocated an IP prefix/address IPn1
which is anchored to the MR
with the IP prefix/address IP1.
</t>
<t>
The MNN is using IPn1 to communicate with a correspondent node (CN)
not shown in the figure.
The flow of this communication session is shown as flow(IPn1, ...)
which uses IPn1 and other parameters.
</t>

<t>
In Figure 4(a),
LMs and FM-CP co-locate at the CPA.
</t>
<t>
The LMs may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

<t>
Figure 4(b) differs from Figure 4(a) in that
the LMs is separated out and the proxy LMp is added between the LMs and LMc.
</t>
<t>
LMp and FM-CP co-locate at the CPA.
</t>
<t>
The LMs may be centralized whereas
the LMp may be distributed or centralized 
according to whether the CPA is distributed (not shown) or centralized.
</t>

</section>
<!-- distributed anchoring host based (end section) -->






</section>
<!-- distributed anchoring configuratitons (end section) -->


<!-- distributed anchoring behaviors (begin section) -->
<section anchor="sec:distributed-anchoring-behaviors"
          title="Operations and Parameters">


<t>
The operations of distributed mobility anchoring are defined 
in order that they may work together in expected manners
to produce a distributed mobility solution.
The needed information is passed as mobility message parameters,
which must be protected in terms of integrity.
Some parameters may require a means to support privacy of an MN
or MR.
</t>

<t>
The mobility needs in 5G Wireless and beyond are diverse.
Therefore operations needed
to enable different distributed mobility solutions
in different distributed mobility anchoring configurations
are extensive as illustrated below.
It is however not necessary for every distributed mobility solution
to exhibit all the operations listed in this section.
A given distributed mobility solution may exhibit the operations as needed.
</t>


<!-- Location management behaviors (begin section) -->
<section anchor="sec:LM-behaviors"
          title="Location Management">

<t>
An example LM design consists of
a distributed database with multiple LMs servers. 
The location information about the prefix/address of an MN
is primarily at a given LMs.
Peer LMs may exchange the location information with each other.
LMc may retrieve a given record or send a given record update to LMs.
</t>

<t>
Location management configurations:
</t>


<t>
<!-- LM-cfg starts -->
<list style='format LM-cfg: '>

<t>
As shown in 
<xref target="sec:distributed-anchoring-configurations" />:
<vspace/>
<vspace/>
LMs may be implemented at CPA, 
may co-locate with LMc at CPA,
or may be a separate server. 
<vspace/>
<vspace/>
LMc may be at CPA, CPN, or MN.
<vspace/>
<vspace/>
LMp may proxy between LMs and LMc.
<vspace/>
<vspace/>
Specifically:
</t>

</list>
<!-- LM-cfg end -->
</t>


<t>
Location management operations and parameters:
<!-- LM-cfg list starts -->
<list style='format LM-cfg:%d'>

<t>
LMs may co-locate with LMc at CPA 
in a flat network with network-based mobility
as shown in Figure 1(a) in
<xref target="sec:distributed-anchoring-network-based" />.
<vspace/>
</t>

<t>
LMs may be a separate server
whereas LMc is implemented in CPA
in a flat network with network-based mobility
as shown in Figure 1(b) in
<xref target="sec:distributed-anchoring-network-based" />.
<vspace/>
</t>

<t>
LMs may be implemented at CPA, 
whereas LMc is implemented at CPN 
in a hierarchical network with network-based mobility
as shown in Figure 2(a) in
<xref target="sec:distributed-anchoring-network-based-hierarchical" />
or at MN for host-based mobility
as shown in Figure 3(a) in
<xref target="sec:distributed-anchoring-host-based" />.
<vspace/>
</t>

<t>
LMs may be a separate server
with LMp implemented at CPA
whereas LMc is implemented at CPN 
in a hierarchical network with network-based mobility
as shown in Figure 2(b) in
<xref target="sec:distributed-anchoring-network-based-hierarchical" />
or at MN for host-based mobility
as shown in Figure 3(b) in
<xref target="sec:distributed-anchoring-host-based" />.
<vspace/>
</t>

</list>
<!-- LM-cfg list end -->
</t>



<t>
<!-- LM-db starts -->
<list style='format LM-db: '>

<t>
LM may manage the location information in a client-server database system.
<vspace/>
<vspace/>
Example LM database functions are as follows:
</t>

</list>
<!-- LM-db ends -->
</t>


<t>
<!-- LM-db list starts -->
<list style='format LM-db:%d'>

<t>
LMc may query LMs about location information for a prefix of MN (pull). 
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN: integrity support required 
and privacy support may be required.
<vspace/>
</t>

<t>
LMs may reply to LMc query about location information for a prefix of MN (pull). 
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN: integrity support required 
and privacy support may be required
<vspace/>
- IP address of FM-DP/DPA/DPN to forward the packets of the flow:
integrity support required. 
<vspace/>
</t>

<t>
LMs may inform LMc about location information for a prefix of MN (push). 
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN: integrity support required
and privacy support may be required
<vspace/>
- IP address of FM-DP/DPA/DPN to forward the packets of the flow. 
<vspace/>
<vspace/>
This function in the PMIPv6 protocol
is the Update Notification (UPN)
together with the Update Notification Acknowledgment (UPA)
as defined in
<xref target="RFC7077"/>.
<vspace/>
</t>

<t>
LMc may inform LMs about update location information for a prefix of MN. 
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN: integrity support required
and privacy support may be required 
<vspace/>
- IP address of FM-DP/DPA/DPN to forward the packets of the flow:
integrity support required 
<vspace/>
<vspace/>
This function in the MIPv6 / PMIPv6 protocol
is the Binding Update (BU) / Proxy Binding Update (PBU)
together with the Binding Acknowledgment (BA) / Proxy Binding Acknowledgment (PBA)
as defined in
<xref target="RFC6275"/> / <xref target="RFC5213"/> respectively.
<vspace/>
</t>

<t>
The MN may be a host or a router. 
When the MN is an MR,
the prefix information may include
the MNP delegated to the MR. 
<vspace/>
Additional parameters: 
<vspace/>
MNP: integrity support required
and privacy support may be required 
<vspace/>
</t>

</list>
<!-- LM-db list end -->
</t>







<t>
<!-- LM-servers starts -->
<list style='format LM-svr: '>

<t>
The LM may be a distributed database with multiple LMs servers.
<vspace/>
<vspace/>
For example:
</t>

</list>
<!-- LM-servers ends -->
</t>



<t>
<!-- LM-servers list start -->
<list style='format LM-svr:%d'>
<t>
A LMs may join a pool of LMs servers.
<vspace/>
Parameters: 
<vspace/>
- IP address of the LMs: integrity support required
<vspace/>
- IP prefixes for which 
the LMs will host the primary location information:
integrity support required.
<vspace/>
</t>

<t>
LMs may query a peer LMs about location information for a prefix of MN.
<vspace/>
Parameters: 
<vspace/>
- IP prefix: integrity support required
and privacy support may be required. 
<vspace/>
</t>

<t>
LMs may reply to a peer LMs about location information for a prefix of MN. 
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN: integrity support required
and privacy support may be required 
<vspace/>
- IP address of FM-DP/DPA/DPN to forward the packets of the flow:
integrity support required. 
</t>

</list>
<!-- LM-servers list end -->
</t>



<t>
The parameters indicated above are only the minimal.
In a specific mobility protocol,
additional parameters should be added as needed. 
Examples of these additional parameters
are those passed in the mobility options
of the mobility header for MIPv6
<xref target="RFC6275"/>
and for PMIPv6
<xref target="RFC5213"/>.
</t>

</section>
<!-- Location management behaviors (end section) -->




<!-- Forwarding management behaviors (begin section) -->
<section anchor="sec:FM-behaviors"
          title="Forwarding Management">




<t>
Forwarding management configurations:
</t>


<t>
<!-- FM-cfg starts -->
<list style='format FM-cfg: '>

<t>
As shown in 
<xref target="sec:distributed-anchoring-configurations" />:
<vspace/>
<vspace/>
FM-CP may be implemented at CPA, CPN, MN
depending on the configuration chosen.
<vspace/>
<vspace/>
FM-DP may also be implemented at CPA, CPN, MN
depending on the configuration chosen.
<vspace/>
<vspace/>
Specifically:
</t>

</list>
<!-- FM-cfg end -->
</t>







<t>
<!-- FM-cfg list starts -->
<list style='format FM-cfg:%d'>

<t>
FM-CP and FM-DP may be implemented at CPA and DPA respectively
in a flat network with network-based mobility
as shown in Figure 1(a) and Figure 1(b) in
<xref target="sec:distributed-anchoring-network-based" />.
<vspace/>
</t>

<t>
FM-CP may be implemented at both CPA and CPN
and
FM-DP is implemented at both DPA and DPN
in a hierarchical network with network-based mobility
as shown in Figure 2(a) and Figure 2(b) in
<xref target="sec:distributed-anchoring-network-based-hierarchical" />.
<vspace/>
</t>

<t>
FM-CP and FM-DP may be implemented at CPA and DPA respectively
and also both implemented at MN for host-based mobility
as shown in Figure 3(a) and Figure 3(b) in
<xref target="sec:distributed-anchoring-host-based" />.
<vspace/>
</t>

</list>
<!-- FM-cfg list end -->
</t>










<!-- FM discovery (begin) -->
<t>
Forwarding management operations and parameters:
<list style='format FM-find:%d'>
<t>
An anchor may discover and be discovered 
such as through an anchor registration system as follows:
<vspace/>
</t>

<t>
FM registers and authenticates itself 
with a centralized mobility controller.
<vspace/>
Parameters: 
<vspace/>
- IP address of DPA and its CPA:
integrity support required
<vspace/>
- IP prefix anchored to the DPA:
integrity support required
<vspace/>
<vspace/>
registration reply: acknowledge of registration and echo the input parameters.
<vspace/>
</t>

<t>
FM discovers the FM of another IP prefix
by querying the mobility controller based on the IP prefix.
<vspace/>
Parameters: 
<vspace/>
- IP prefix of MN:
integrity support required
and privacy support may be required
<vspace/>
</t>

<t>
when making anchor discovery FM expects the answer parameters: 
<vspace/>
- IP address of DPA to which IP prefix of MN is anchored:
integrity support required
<vspace/>
- IP prefix of the corresponding CPA:
integrity support required
</t>
</list>
<vspace/> 
</t>
<!-- FM discovery (end) -->



<!-- FM flow (begin) -->
<t>
<list style='format FM-flow:%d'>
<t>
The FM may be carried out on the packets to/from an MN up to the granularity of a flow.
<vspace/>
</t>
<t>
Example matching parameters are in the 5-tuple of a flow.
<vspace/>
</t>
</list>
</t>
<!-- FM flow (end) -->



<t>
<!-- FM CPDP (begin) -->
<list style='format FM-cpdp: '>
<t>
With separation of control plane function and data plane function,
FM-CP and FM-DP communicate with each other.
Such communication may be realized by the appropriate messages in
<xref target="I-D.ietf-dmm-fpc-cpdp"/>. 
<vspace/>
<vspace/>
For example:
<vspace/>
</t>
</list>
<!-- FM CPDP (end) -->
</t>

<t>
<!-- FM CPDP list (begin) -->
<list style='format FM-cpdp:%d'>
<t>
CPA/FM-CP sends forwarding table updates to DPA/FM-DP.
<vspace/>
Parameters: 
<vspace/>
- New forwarding table entries to add:
integrity support required
<vspace/>
- Expired forwarding table entries to delete:
integrity support required
<vspace/>
</t>

<t>
DPA/FM-DP sends to CPA/FM-CP about its status and load. <vspace/>
Parameters: 
<vspace/>
- State of forwarding function being active or not:
integrity support required
<vspace/>
- Loading percentage:
integrity support required
</t>
</list>
<vspace/>
<!-- FM CPDP list (end) -->
</t>


<!-- FM forward (begin) -->
<t>
<list style='format FM-path:%d' counter="GL_path">
<t>
FM may change the forwarding path of a flow
upon a change of point of attachment of a MN.
Prior to the changes,
packets coming from the CN to the MN
would traverse from the CN to the home network anchor of the flow
for the MN
before reaching the MN.
Changes are from this original forwarding path or paths
to a new forwarding path or paths
from the CN to the current AR of the MN
and then the MN itself.
<vspace/>
</t>

<t>
As an incoming packet is forwarded from the CN to the MN,
the far end where forwarding path change begins
may in general be 
any node in the original forwarding path from
the CN to the home network DPA.
The packet is forwarded to 
the MN for host-based mobility
and to a node in the network
which will deliver the packets to the MN 
for network-based mobility.
The near-end is generally a DPN
with a hierarchical network
but may also be another node with DPA capability
in a flattened network. 
<vspace/>
</t>

<t>
The mechanisms to accomplish such changes
may include changes to the forwarding table
and indirection such as tunneling, rewriting packet header, or NAT.
<vspace/>
<vspace/>
Note: An emphasis in this document in distributed mobility anchoring
is to explain the use of multiple anchors
to avoid unnecessarily long route 
which may be encountered
in centralized mobility anchoring.
It is therefore not the emphasis of this document
on which particular mechanism to choose from. 
<vspace/>
</t>

</list>
</t>
<!-- FM forward (end) -->

<!-- FM forward-table (begin) -->
<t>
<list style='format FM-path-tbl:%d' counter="GL_path">

<t>
With forwarding table updates,
changes to the forwarding table are needed
at each of the affected forwarding switches
in order to change the forwarding path 
of the packets for the flow
from that originally between the CN and the home network anchor
to that between the CN and the new AR.
<vspace/>
<vspace/>
Forwarding table updates may be achieved through BGP update
as described in 
<xref target="I-D.templin-aerolink"/>,
<xref target="I-D.mccann-dmm-flatarch"/> 
and also for 3GPP Evolved Packet Core (EPC) network in 
<xref target="I-D.matsushima-stateless-uplane-vepc"/>
when the scope and response time can be managed.
Alternatively, a centralized control plane may be used.
<vspace/>
<vspace/>
When the control plane is centralized,
forwarding table updates may be achieved
through messaging 
between the centralized control plane
and the distributed forwarding switches
as described above (FM-cpdp) in this section.
<vspace/>
<vspace/>
Forwarding table updates may be triggered
using DHCPv6-PD prefix delegation
to change the role of IP anchoring
from the home network anchor (with FM-DP) 
to the new anchor (with FM-DP)
to which the MN is currently attached. 
The new anchor will then advertise routes for the delegated prefix.
<vspace/>
<vspace/>
With a distributed routing protocol,
the updates spread out from neighbors to neighbors
and will affect all the forwarding switches
such that the packets sent from "any" node to MN
will go to the new AR.
<vspace/>
<vspace/>
Yet the scope of such updates for a given flow may be confined
to only those forwarding switches
such that the packets sent only from the "CN" to MN
will go to the new AR.
Such confinement may be made
when using a centralized central plane
possessing a global view of all the forwarding switches.
<vspace/>
</t>

<t>
FM reverts the changes previously made to the forwarding path of a flow
when such changes are no longer needed,
e.g., when all the ongoing flows using an IP prefix/address
requiring IP session continuity have closed. 
When using DHCPv6-PD,
the forwarding paths will be reverted
upon prefix lease expiration. 
<vspace/>
</t>

</list>
</t>
<!-- FM forward-table (end) -->

<!-- FM forward-indirection (begin) -->
<t>
<list style='format FM-path-ind:%d' counter="GL_path">

<t>
Indirection forwards
the incoming packets of the flow 
from the DPA at the far end 
to a DPA/DPN at the near end of indirection.
Both ends of the indirection
needs to know the LM information of the MN for the flow
and also needs to possess FM capability to perform indirection.
<vspace/>
</t>

<t>
The mechanism of changing the forwarding path
in <xref target="RFC6275"/> and <xref target="RFC5213"/>
is tunneling.
In the control plane, the FM-CP sets up the tunnel 
by instructing the FM-DP at both ends of the tunnel.
In the data plane, 
the FM-DP at the start of the tunnel performs packet encapsulation,
whereas the FM-DP at the end of the tunnel decapsulates the packet. 
<vspace/>
<vspace/>
Note that in principle the ends of the indirection path
can be any pair of network elements with the FM-DP function.
<vspace/>
</t>

<t>
FM reverts the changes previously made to the forwarding path of a flow
when such changes are no longer needed,
e.g., when all the ongoing flows using an IP prefix/address
requiring IP session continuity have closed. 
When tunneling is used,
the tunnels will be torn down when they are no longer needed. 
<vspace/>
</t>

</list>

</t>
<!-- FM forward-indirection (end) -->



<!-- FM ends (begin) -->
<t>
<list style='format FM-DPA:%d' counter="GL_DPA">
<t>
Recall from above that
for the incoming packets from the CN,
forwarding path change by FM
is from the DPA at the far end
which may be at any forwarding switch (or even CN itself)
in the original forwarding path
to the near end DPA/DPN. 
<vspace/>
<vspace/>
It is necessary that
any incoming packet from the CN of the flow 
must traverse the DPA
(or at least one of the DPAs, e.g., in the case of anycast)
at the far end
in order for the packet to detour to a new forwarding path.
<vspace/>
<vspace/>
Therefore a convenient design
is to locate the far end DPA at a unique location
which is always in the forwarding path. 
This is the case in a centralized mobility design
where the DPA at the far end 
is the home network anchor of the flow.
<vspace/>
<vspace/>
Distributed mobility however may place the far end DPA 
at other locations 
in order to avoid unnecessarily long route. 
<vspace/>
</t>

<t>
With multiple nodes possessing DPA capabilities,
the role of FM to begin path change 
for the incoming packets of a flow
at the home network DPA at the far end
may be passed to or added to that of another DPA. 
<vspace/>
<vspace/>
In particular,
this DPA role may be moved upstream
from the home network DPA
in the original forwarding path from CN to MN.
<vspace/>
</t>

<t>
Optimization of the new forwarding path may be achieved
when the path change for the incoming packets 
begins at a DPA
where the original path and the direct IPv6 path overlaps.
Then the new forwarding path 
will resemble the direct IPv6 path from the CN to the MN.
<vspace/>
</t>

</list>
</t>
<!-- FM forward-indirection (end) -->

<!-- FM forward-indirection-table (begin) -->
<t>
<list style='format FM-DPA-tbl:%d' counter="GL_DPA">

<t>
Forwarding table updates,
such as that triggered
using DHCPv6-PD 
to change the role of IP anchoring
from the home network anchor (DPA with FM-DP) 
to the new anchor (DPA with FM-DP),
may put the near end of the path change at the new DPA.
Subsequent forwarding table updates
may propagates upstream
up to a far end where the original path
and the direct IPv6 path overlaps.
<vspace/>
<vspace/>
When that far end is too far upstream
the signaling of forwarding table updates 
may become excessive. 
An alternative is to use indirection
(see FM-DPA-ind)
from that far end to the new DPA at the near end.
<vspace/>
<vspace/>
Still another alternative is to combine forwarding table update
with indirection.
<vspace/>
</t>

<t>
Changes made by FM to the following tables,
which are IPv6 nodes, 
at the ends of the path change for a flow
will be reverted when the mobility support for the flow
is no longer needed,
e.g., when the flows have terminated. 
<vspace/>
</t>

</list>
</t>
<!-- FM forward-indirection-table (end) -->

<!-- FM forward-indirection-indirection (begin) -->
<t>
<list style='format FM-DPA-ind:%d' counter="GL_DPA">

<t>
With indirection,
locating or moving
the FM function to begin indirection 
upstream along the forwarding path from CN to MN
again may help to reduce unnecessarily long path.
<vspace/>
</t>

<t>
Changes made by FM to establish indirection at the DPA and DPN,
which are IPv6 nodes, 
at the ends of the path change for a flow
will be reverted when the mobility support for the flow
is no longer needed,
e.g., when the flows have terminated. 
<vspace/>
</t>

</list>

<vspace/>
</t>
<!-- FM forward-indirection-indirection (end) -->






<!-- FM state (begin) -->
<t>
<list style='format FM-state:%d'>
<t>
In addition to the above, a flow/session may contain states
with the required information for QoS, charging, etc. as needed.
These states need to be transferred from the old anchor to the new anchor.
<vspace/>
</t>
</list>
</t>
<!-- FM state (end) -->









<!-- FM buffer (begin) -->
<t>
<list style='format FM-buffer:%d'>
<t>
An anchor can buffer packets of a flow in a mobility event:
</t>
<t>
CPA/FM-CP informs DPA/FM-DP to buffer packets of a flow. 
<vspace/>
Trigger: 
<vspace/>
- MN leaves DPA in a mobility event.
<vspace/>
Parameters: 
<vspace/>
- IP prefix of the flow for which packets need to be buffered:
integrity support required
<vspace/>
</t>

<t>
CPA/FM-CP on behalf of a new DPA/FM-DP 
informs the CPA/FM-CP of the prior DPA/FM-DP  
that it is ready to receive any buffered packets of a flow.
<vspace/>
Parameters: 
<vspace/>
- Destination IP prefix of the flow's packets:
integrity support required 
<vspace/>
- IP address of the new DPA:
integrity support required
</t>
</list>
<vspace/>
</t>
<!-- FM buffer (end) -->





<!-- FM MR (begin) -->
<t>
<list style='format FM-mr:%d'>
<t>
When the MN is a mobile router 
the access router anchoring the IP prefix of MR
will also anchor the IP prefix or prefixes delegated to the MR.
<vspace/>
</t>
</list>
</t>
<!-- FM MR (end) -->



</section>
<!-- Forwarding management behaviors (end section) -->


</section>
<!-- distributed anchoring behaviors (end section) -->


<!-- distributed mobility anchoring (end section) -->
</section>






<!-- IP mobility handling (begin section) 
<section anchor="sec:mobility-handling"
 title="IP Mobility Handling in Distributed Mobility Anchoring Environments">
</section>
IP mobility handling (end section) -->



<!-- IP mobility support only when needed (begin section) -->
<section anchor="sec:on-demand"
 title="IP Mobility Handling in Distributed Anchoring Environments
- Mobility Support Only When Needed">


<t>
IP Mobility Support Only When Needed:
</t>

<t>
IP mobility support may be provided only when needed 
instead of being provided by default.
The LM and FM functions 
in the different configurations shown in 
<xref target="sec:distributed-anchoring-configurations"/>
are then utilized only when needed.
</t>

<t>
A straightforward choice of mobility anchoring 
is for a flow to use the IP prefix of the network 
to which the MN is attached when the flow is initiated 
<xref target="I-D.seite-dmm-dma"/>. 
</t>


<t>
The IP prefix/address at the MN's side of a flow
may be anchored at the access router to which the MN is attached.
For example, 
when an MN attaches to a network (Net1) or moves to a new network (Net2),
it is allocated an IP prefix from the attached network. 
In addition to configuring new link-local addresses,
the MN configures from this prefix an IP address 
which is typically a dynamic IP address. 
It then uses this IP address when a flow is initiated.
Packets to the MN in this flow are simply forwarded
according to the forwarding table.</t>


<t>
There may be multiple IP prefixes/addresses
that an MN can select when initiating a flow.
They may be from the same access network or different access networks. 
The network may advertise these prefixes with cost options 
<xref target="I-D.mccann-dmm-prefixcost"/> 
so that the mobile node may choose the one with the least cost. 
In addition, 
these IP prefixes/addresses may be of different types 
regarding whether mobility support is needed
<xref target="I-D.ietf-dmm-ondemand-mobility"/>. 
A flow will need to choose the appropriate one 
according to whether it needs IP mobility support.
</t>





<!-- Changing to the new IP prefix/address (begin section) -->
<section anchor="sec:changing-anchor"
 title="No Need of IP Mobility: Changing to New IP Prefix/Address">

<t>
When IP mobility support is not needed for a flow,
the LM and FM functions are not utilized
so that the configurations in 
<xref target="sec:distributed-anchoring-configurations"/>
are simplified as shown in Figure 5.
</t>

<figure>
  <preamble/>
  <artwork><![CDATA[
Net1                                                   Net2     

+---------------+                                      +---------------+
|AR1            |                                      |AR2            |
+---------------+                                      +---------------+
|CPA:           |                                      |CPA:           |
|---------------|                                      |---------------|
|DPA(IPa1):     |                                      |DPA(IPa2):     |
|anchors IP1    |                                      |anchors IP2    |
+---------------+                                      +---------------+


+...............+                                      +---------------+
.MN(IP1)        .                 move                 |MN(IP2)        |
.flow(IP1,...)  .               =======>               |flow(IP2,...)  |
+...............+                                      +---------------+
  ]]></artwork>

  <postamble>Figure 5. Changing to the new IP prefix/address. 
MN running a flow using IP1 in a network Net1 
changes to running a flow using IP2 in Net2.
  </postamble>
</figure>

<t>
When there is no need to provide IP mobility to a flow, 
the flow may use a new IP address acquired from a new network 
as the MN moves to the new network.
</t>

<t>
Regardless of whether IP mobility is needed, 
if the flow has terminated before the MN moves to a new network, 
the flow may subsequently restart 
using the new IP address allocated from the new network.
</t>

<t>When IP session continuity is needed, 
even if a flow is ongoing as the MN moves, 
it may still be desirable for the flow to change to using the new IP prefix 
configured in the new network. 
The flow may then  close and then restart 
using a new IP address configured in the new network. 
Such a change in the IP address of the flow may be enabled
using a higher layer mobility support
which is not in the scope of this document.
</t>

<t>
In Figure 5, a flow initiated 
while the MN was in a network Net1 has terminated 
before the MN moves to a new network Net2. 
After moving to Net2, 
the MN uses the new IP prefix anchored in Net2 to start a new flow. 
The packets may then be forwarded 
without requiring IP layer mobility support.
</t>

<t>An example call flow is outlined in Figure 6.</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
 MN                    p-AR          n-AR                             CN
  |MN attaches to p-AR: |             |                                |
  |acquire MN-ID and profile          |                                |
  |--RS---------------->|             |                                |
  |                     |             |                                |
  |<----------RA(HNP1)--|             |                                |
  |                     |             |                                |
Allocated prefix HNP1
IP1 address configuration
  |                     |             |                                |
  |<-Flow(IP1,IPcn,...)-+--------------------------------------------->|
  |                     |             |                                |
  |MN detaches from p-AR|             |                                |
  |MN attaches to n-AR  |             |                                |
  |                     |             |                                |
  |--RS------------------------------>|                                |
  |                     |             |                                |
  |<--------------RA(HNP2)------------|                                |
  |                     |             |                                |
Allocated prefix HNP2
IP2 address configuration
  |                     |             |                                |
  |<-new Flow(IP2,IPcn,...)-----------+------------------------------->|
  |                     |             |                                |

  ]]></artwork>

  <postamble>Figure 6. Re-starting a flow to use the IP allocated 
from the network at which the MN is attached.
  </postamble>
</figure>



<!-- IPv6 nodes: Changing to the new IP prefix/address (begin section) -->
<section anchor="sec:IPv6-nodes-changing-anchor"
 title="Guidelines for IPv6 Nodes: Changing to New IP Prefix/Address">

<t>
A network or network slice may not need IP mobility support.
For example, a network slice for stationary sensors only will never encounter mobility. 
</t>

<t>
The standard functions in IPv6
already include dropping the old IPv6 prefix/address
and acquiring new IPv6 prefix/address
when the node changes its point of attachment to a new network. 
Therefore, a network or network slice not providing IP mobility support at all
will not need any of the functions 
with the mobility operations and messages described in
<xref target="sec:distributed-anchoring-behaviors"/>. 
</t>

<t>
The guidelines for the IPv6 nodes 
in a network or network slice 
supporting a mix of flows 
requiring and not requiring IP mobility support
include the following:

<!-- GL_cfg (begin) -->
<list style='format GL-cfg:%d' counter="GL_cfg">

<t>
A network or network slice supporting a mix of flows 
requiring and not requiring mobility support
may take any of the configurations described in
<xref target="sec:distributed-anchoring-configurations"/>
and need to implement in the appropriate IPv6 nodes 
the mobility functions
LM and FM as described respectively in LM-cfg and FM-cfg in 
<xref target="sec:distributed-anchoring-behaviors"/>
according to the configuration chosen.
</t>

</list>
<!-- GL_cfg (end) -->
</t>


<t>
<!-- GL_mix (begin) -->
<list style='format GL-mix:%d' counter="GL_mix">

<t>
These mobility functions perform
some of the operations with the appropriate messages as described in
<xref target="sec:distributed-anchoring-behaviors"/>
depending on which mobility mechanisms are used.
Yet these mobility functions must not be invoked for a flow 
that does not need IP mobility support.
It is necessary to be able to distinguish the needs of a flow.
The guidelines for the MN and the AR are in the following.
<vspace blankLines="1"/></t>

<t>
Regardless of whether there are flows requiring IP mobility support,
when the MN changes its point of attachment to a new network,
it needs to configure a new global IP address for use in the new network
in addition to configuring the new link-local addresses. 
<vspace blankLines="1"/></t>

<t>
The MN needs to check whether a flow needs IP mobility support. 
This can be performed when the application was initiated.
The specific method is not in the scope of this document.
<vspace blankLines="1"/></t>

<t>
The information of whether a flow needs IP mobility support
is conveyed to the network
such as by choosing an IP address to be provided with mobility support
as described in
<xref target="I-D.ietf-dmm-ondemand-mobility"/>.
Then as the MN attaches to a new network,
if the MN was using an IP address 
that is not supposed to be provided with mobility support,
the access router will not invoke the mobility functions
described in 
<xref target="sec:distributed-anchoring-behaviors"/>
for this IP address.
That is, the IP address from the prior network 
is simply not used in the new network.
<vspace blankLines="1"/></t>

</list>
<!-- GL_mix (end) -->

</t>

<t>
The above guidelines are only
to enable distinguishing whether there is need of IP mobility support
for a flow that does not.
When the flow needs IP mobility support,
the list of guidelines will continue in
<xref target="sec:IPv6-nodes-needing-mobility"/>.
</t>

</section>
<!-- IPv6 nodes: Changing to the new IP prefix/address (end section) -->


</section>
<!-- Changing to the new IP prefix/address (end section) -->



<!-- Need IP mobility support (begin section) -->
<section anchor="sec:needed"
 title="Need of IP Mobility">


<t>
When IP mobility is needed for a flow,
the LM and FM functions in 
<xref target="sec:distributed-anchoring-configurations"/>
are utilized.
The mobility support may be provided 
by IP prefix anchor switching to the new network to be described in 
<xref target="sec:switching-anchor"/> 
or by using other mobility management methods 
(<xref target="Paper-Distributed.Mobility.PMIP"/> and 
<xref target="Paper-Distributed.Mobility.Review"/>).
Then the flow may continue to use the IP prefix 
from the prior network of attachment. 
Yet some time later, 
the user application for the flow may be closed. 
If the application is started again, 
the new flow may not need to use the prior network's IP address 
to avoid having to invoke IP mobility support.
This may be the case where a dynamic IP prefix/address 
rather than a permanent one is used. 
The flow may then use the new IP prefix in the network 
where the flow is being initiated. 
Routing is again kept simpler without employing IP mobility 
and will remain so as long as the MN 
which is now in the new network
has not moved again and left to another new network.
</t>

<t>
An example call flow in this case is outlined in Figure 7.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
 MN                    p-AR          n-AR                             CN
  |MN attaches to p-AR: |             |                                |
  |acquire MN-ID and profile          |                                |
  |--RS---------------->|             |                                |
  |                     |             |                                |
  |<----------RA(HNP1)--|             |                                |
  |                     |             |                                |
Allocated prefix HNP1
IP1 address configuration
  |                     |             |                                |
  |<-Flow(IP1,IPcn,...)-+--------------------------------------------->|
  |                     |             |                                |
  |MN detach from p-AR  |             |                                |
  |MN attach to n-AR    |             |                                |
  |                     |             |                                |
  |--RS------------------------------>|                                |

IP mobility support such as that described in next sub-section
  |<--------------RA(HNP2,HNP1)-------|                                |
  |                     |             |                                |
  |<-Flow(IP1,IPcn,...)---------------+------------------------------->|
  |                     |             |                                |
Allocated prefix HNP2
IP2 address configuration
  |                     |             |                                |
Flow(IP1,IPcn) terminates
  |                     |             |                                |
  |<-new Flow(IP2,IPcn,...)-----------+------------------------------->|
  |                     |             |                                |

  ]]></artwork>

  <postamble>Figure 7. A flow continues to use the IP from its home network
after MN has moved to a new network.
  </postamble>
</figure>


<!-- IPv6 nodes: Needing IP mobility support (begin section) -->
<section anchor="sec:IPv6-nodes-needing-mobility"
 title="Guidelines for IPv6 Nodes: Need of IP Mobility">


<t>
The configuration guidelines of distributed mobility 
for the IPv6 nodes 
in a network or network slice 
supporting a mix of flows 
requiring and not requiring distributed mobility support
are as follows:

<!-- GL_cfg (begin) -->
<list style='format GL-cfg:%d' counter="GL_cfg">

<t>
Multiple instances of DPAs (at access routers)
which are providing IP prefix to the MNs
are needed to provide distributed mobility anchoring
in an appropriate configuration 
such as those in Figure 1 
(<xref target="sec:distributed-anchoring-network-based" />)
for network-based distributed mobility
or in Figure 3
(<xref target="sec:distributed-anchoring-host-based" />)
for host-based distributed mobility.
<vspace blankLines="1"/>
<vspace blankLines="1"/>
The appropriate IPv6 nodes (CPA, DPA, CPN, DPN) are to be implemented
the mobility functions
LM and FM as described respectively in LM-cfg and FM-cfg in 
<xref target="sec:distributed-anchoring-behaviors"/>
according to the configuration chosen.
</t>

</list>
<!-- GL_cfg (begin) -->
</t>

<t>
The guidelines of distributed mobility for the IPv6 nodes 
in a network or network slice 
supporting a mix of flows 
requiring and not requiring distributed mobility support
had begun with those given as GL-mix in
<xref target="sec:IPv6-nodes-changing-anchor"/>
and continue as follows:

<!-- GL_mix (begin) -->
<list style='format GL-mix:%d' counter="GL_mix">

<t>
The distributed anchors may need to message with each other.
When such messaging is needed,
the anchors may need to discover each other
as described in the FM operations and mobility message parameters (FM-find) in 
<xref target="sec:FM-behaviors" />.
<vspace blankLines="1"/></t>

<t>
The anchors may need to provide mobility support
on a per-flow basis 
as described in the FM operations and mobility message parameters (FM-flow) in 
<xref target="sec:FM-behaviors" />.
<vspace blankLines="1"/></t>

<t>
Then the anchors need to properly forward the packets of the flows
as described in the FM operations and mobility message parameters 
(FM-path, FM-path-tbl, FM-DPA, FM-DPA-tbl) in 
<xref target="sec:FM-behaviors" />.
<vspace blankLines="1"/></t>

<t>
If there are in-flight packets toward the old anchor
while the MN is moving to the new anchor,
it may be necessary to buffer these packets and then forward to the new anchor
after the old anchor knows that the new anchor is ready. 
Such are described in the FM operations and mobility message parameters (FM-buffer) in 
<xref target="sec:FM-behaviors" />.
<vspace blankLines="1"/></t>

</list>
</t>


</section>
<!-- IPv6 nodes: Needing IP mobility support (end section) -->


</section>
<!-- Need IP mobility support (end section) -->

</section>
<!-- IP mobility support only when needed (end section) -->


<!-- IP prefix/address anchor switching to the new network (begin section) -->
<section anchor="sec:switching-anchor"
         title="IP Mobility Handling in Distributed Mobility Anchoring Environments
- Anchor Switching to the New Network">



<t>
IP Prefix/Address Anchor Switching to the New Network:
</t>

<t>
IP mobility is invoked to enable IP session continuity
for an ongoing flow
as the MN moves to a new network. 
Here the anchoring of the IP address of the flow 
is in the home network of the flow,
which is not in the current network of attachment. 
A centralized mobility management mechanism
may employ indirection from the anchor in the home network
to the current network of attachment.
Yet it may be difficult to avoid unnecessarily long route
when the route between the MN and the CN 
via the anchor in the home network
is significantly longer than the direct route between them.
An alternative is to switch the IP prefix/address anchoring 
to the new network.
</t>



<!-- IP prefix/address anchor switching to the new network: flat network (begin section) -->
<section anchor="sec:switching-anchor-flatter"
         title="IP Prefix/Address Anchor Switching for Flat Network">

<t>
The IP prefix/address anchoring may move 
without changing the IP prefix/address of the flow.
Here the LM and FM functions in Figures 1(a) and 1(b) in 
<xref target="sec:distributed-anchoring-configurations"/>
are implemented as shown in Figure 8.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
Net1                                                   Net2     

+---------------+                                      +---------------+
|AR1            |                                      |AR2            |
+---------------+                                      +---------------+
|CPA:           |                                      |CPA:           |
|LM:IP1<-->IPa2 |                                      |LM:IP1<-->IPa2 |
|---------------|                                      |---------------|
|DPA(IPa1):     |                                      |DPA(IPa2):     |
|anchors IP1    |                 move                 |anchors IP2,IP1|
|FM:DHCPv6-PD   |               =======>               |FM:DHCPv6-PD   |
+---------------+                                      +---------------+


+...............+                                      +---------------+
.MN(IP1)        .                 move                 |MN(IP2,IP1)    |
.flow(IP1,...)  .               =======>               |flow(IP1,...)  |
+...............+                                      +---------------+
  ]]></artwork>

  <postamble>Figure 8. 
IP prefix/address anchor switching to the new network. 
MN with flow using IP1 in Net1 continues to run the flow
using IP1 as it moves to Net2.
  </postamble>
</figure>

<t>
As an MN with an ongoing session moves to a new network, 
the flow may preserve IP session continuity 
by moving the anchoring of the original IP prefix/address 
of the flow to the new network. 
BGP UPDATE messages may be used
to change the forwarding table entries as described in
<xref target="I-D.templin-aerolink"/>
and
<xref target="I-D.mccann-dmm-flatarch"/> 
if the response time of such updates 
does not exceed the handover delay requirement
of the flow. 
An alternative is to use a centralized routing protocol
to be described in 
<xref target="sec:switching-anchor-central-CP" />
with a centralized control plane. 
</t>

<!-- IPv6 nodes: Switching Anchor (begin section) -->
<section anchor="sec:IPv6-nodes-switching-anchor"
 title="Guidelines for IPv6 Nodes: Switching Anchor for Flat Network">

<t>
The configuration guideline 
for a flat network or network slice 
supporting a mix of flows
requiring and not requiring IP mobility support
is:

<!-- GL_cfg (begin) -->
<list style='format GL-cfg:%d' counter="GL_cfg">

<t>
Multiple instances of DPAs (at access routers)
which are providing IP prefix to the MNs are needed to provide
distributed mobility anchoring 
according to Figure 1(a) or Figure 1(b)in
<xref target="sec:distributed-anchoring-configurations"/>
for a flat network.
<vspace blankLines="1"/>
<vspace blankLines="1"/>
The appropriate IPv6 nodes (CPA, DPA) are to be implemented
the mobility functions
LM and FM as described respectively in LM-cfg:1 or LM-cfg:2 and FM-cfg:1 in 
<xref target="sec:distributed-anchoring-behaviors"/>.
</t>

</list>
<!-- GL_cfg (end) -->
</t>


<t>
The guidelines (GL-mix) in
<xref target="sec:IPv6-nodes-changing-anchor" />
and in
<xref target="sec:IPv6-nodes-needing-mobility" />
for the IPv6 nodes 
for a network or network slice
supporting a mix of flows
requiring and not requiring IP mobility support
apply here. 
In addition, the following are required.

<list style='format GL-switch:%d' counter="GL_switch">

<t>
The location management provides information
about which IP prefix from an AR in the original network
is being used by a flow in which AR in a new network.
Such information needs to be deleted or updated
when such flows have closed so that the IP prefix
is no longer used in a different network. 
The LM operations are described in
<xref target="sec:LM-behaviors"/>.
<vspace blankLines="1"/></t>

<t>
The FM functions are implemented through the DHCPv6-PD protocol.
Here the anchor operations to properly forward the packets for a flow
as described in the FM operations and mobility message parameters in 
<xref target="sec:FM-behaviors" /> FM-path, FM-path-tbl, FM-DPA, FM-DPA-tbl
are realized by changing the anchor with DHCPv6-PD
and also by reverting such changes later 
after the application has already closed
and when the DHCPv6-PD timer expires.
If there are in-flight packets toward the old anchor
while the MN is moving to the new anchor,
it may be necessary to buffer these packets 
and then forward to the new anchor
after the old anchor knows that the new anchor is ready
as are described in 
<xref target="sec:FM-behaviors" /> (FM-buffer).
The anchors may also need to discover each other
as described also in the FM operations and mobility message parameters (FM-find).
<vspace blankLines="1"/> </t>

<t>
The security management function in the anchor node at a new network 
must allow to assign the original IP prefix/address 
used by the mobile node at the previous (original) network. 
As the assigned original IP prefix/address is to be used in the new network,
the security management function in the anchor node 
must allow to advertise the prefix of the original IP address 
and also allow the mobile node to send and receive data packets 
with the original IP address.
<vspace blankLines="1"/></t>

<t>
The security management function in the mobile node 
must allow to configure the original IP prefix/address 
used at the previous (original) network 
when the original IP prefix/address is assigned 
by the anchor node in the new network. 
The security management function in the mobile node 
also allows to use the original IP address 
for the previous flow in the new network.
<vspace blankLines="1"/></t>

</list>
</t>

</section>
<!-- IPv6 nodes: Switching Anchor (end section) -->


</section>
<!-- IP prefix/address anchor switching to the new network: flat network (end section) -->


<!-- Centralized control plane (begin section) -->
<section anchor="sec:switching-anchor-central-CP"
         title="IP Prefix/Address Anchor Switching for Flat Network with Centralized Control Plane">
<t>
An example of IP prefix anchor switching is in the case 
where Net1 and Net2 both belong to the same operator network 
with separation of control and data planes 
(<xref target="I-D.liu-dmm-deployment-scenario"/> and 
<xref target="I-D.matsushima-stateless-uplane-vepc"/>), 
where the controller may send to the switches/routers 
the updated information of the forwarding tables 
with the IP address anchoring of the original IP prefix/address 
at AR1 moved to AR2 in the new network.
That is, the IP address anchoring in the original network 
which was advertising the prefix will need to move to the new network. 
As the anchoring in the new network advertises the prefix 
of the original IP address in the new network, 
the forwarding tables will be updated
so that packets of the flow will be forwarded 
according to the updated forwarding tables. 

The configurations in Figures 1(a) and 1(b) in 
<xref target="sec:distributed-anchoring-configurations"/>
for which FM-CP and LM are centralized
and FM-DP's are distributed
apply here.
Figure 9 shows its implementation
where LM is a binding 
between the original IP prefix/address of the flow
and the IP address of the new DPA,
whereas FM uses the DHCPv6-PD protocol.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
Net1                                                   Net2
+----------------------------------------------------------------------+
|                            CPA:                                      |
|                            LM:IP1<-->IPa2                            |
|                            FM-CP                                     |
+----------------------------------------------------------------------+


+---------------+                                      +---------------+
|AR1            |                                      |AR2            |
+---------------+                                      +---------------+
|DPA(IPa1):     |                                      |DPA(IPa2):     |
|anchors IP1    |                 move                 |anchors IP2,IP1|
|FM:DHCPv6-PD   |               =======>               |FM:DHCPv6-PD   |
+---------------+                                      +---------------+


+...............+                                      +---------------+
.MN(IP1)        .                 move                 |MN(IP2,IP1)    |
.flow(IP1,...)  .               =======>               |flow(IP1,...)  |
+...............+                                      +---------------+
  ]]></artwork>

  <postamble>Figure 9. 
IP prefix/address anchor switching to the new network with 
with LM and FM-CP in a centralized control plane
whereas the FM-DP's are distributed.</postamble>
</figure>

<t>
The example call flow in Figure 10 shows that 
MN is allocated HNP1 when it attaches to the p-AR. 
A flow running in MN and needing IP mobility
may continue to use the previous IP prefix
by moving the anchoring of the IP prefix to the new network.
Yet a new flow to be initiated in the new network
may simply use a new IP prefix allocated from the new network.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
 MN                    p-AR          n-AR            DHCPv6 Servers   CN
  |MN attaches to p-AR: |             |                     |          |
  |acquire MN-ID and profile          |                     |          |
  |--RS---------------->|             |                     |          |
  |<----------RA(HNP1)--|             |                     |          |
  |                     |             |             Allocate MN-HNP1   |
IP addr config          |             |                     |          |
  |                     |             |                     |          |
  |<-Flow(IP1,IPcn,...)-+--------------------------------------------->|
  |                     |             |                     |          |
  |MN detach from p-AR  |             |                     |          |
  |MN attach to n-AR    |             |                     |          |
  |                     |             |                     |          |
  |--RS------------------------------>|                     |          |
  |                     |             |                     |          |
  |                     |------DHCPv6 release-------------->|          |
  |                     |             |                     |          |
  |                     |             |--DHCPv6 PD request->|          |
  |                     |             |<-DHCPv6 PD reply--->|          |
  |                     |             |                     |          |
  |                 forwarding table updates                |          |
  |                     |             |                     |          |
  |<--------------RA(HNP2,HNP1)-------|                     |          |
  |                     |             |             Allocate MN-HNP2   |
IP addr config          |             |                     |          |
  |                     |             |                     |          |
  |<-Flow(IP1,IPcn,...)---------------+------------------------------->|
  |                     |             |                     |          |
  |  Flow(IP1,IPcn,...) terminates    |                     |          |
  |                     |             |                     |          |
  |                     | DHCPv6-PD timeout                 |          |
  |                     |             |                     |          |
  |                 forwarding table updates                |          |
  |                     |             |                     |          |
  |                     |             |                     |          |
  |<-new Flow(IP2,IPcn,...)-----------+------------------------------->|
  |                     |             |                     |          |

  ]]></artwork>

  <postamble>Figure 10. DMM solution. 
MN with flow using IP1 in Net1 continues to run the flow 
using IP1 as it moves to Net2.</postamble>

</figure>

<t>
As the MN moves from p-AR to n-AR, 
the p-AR as a DHCPv6 client may send a DHCPv6 release message to release the HNP1. 
It is now necessary for n-AR 
to learn the IP prefix of the MN from the previous network
so that it will be possible for Net2 
to allocate both the previous network prefix and the new network prefix. 
The network may learn the previous prefix in different methods.
For example, the MN may provide its previous network prefix information 
by including it to the RS message 
<xref target="I-D.jhlee-dmm-dnpp"/>.
</t>

<t>
Knowing that MN is using HNP1, 
the n-AR sends to a DHCPv6 server a DHCPv6-PD request to move the HNP1 to n-AR. 
The server sends to n-AR a DHCPv6-PD reply to move the HNP1. 
Then forwarding tables updates will take place here.
</t>

<t>
In addition, the MN also needs a new HNP in the new network. 
The n-AR may now send RA to n-AR, 
with prefix information that includes HNP1 and HNP2. 
The MN may then continue to use IP1. 
In addition, the MN is allocated the prefix HNP2 
with which it may configure its IP addresses. 
Now for flows using IP1, 
packets destined to IP1 will be forwarded to the MN via n-AR.
</t>

<t>
As such flows have terminated and DHCPv6-PD has timed out, 
HNP1 goes back to Net1. 
MN will then be left with HNP2 only, 
which it will use when it now starts a new flow.
</t>


<!-- IPv6 nodes: Switching anchor with centralized Control Plane (begin section) -->
<section anchor="sec:IPv6-nodes-switching-anchor-central-CP"
 title="Additional Guidelines for IPv6 Nodes: 
Switching Anchor with Centralized CP">


<t>
The configuration guideline 
for a flat network or network slice 
with centralized control plane
and supporting a mix of flows
requiring and not requiring IP mobility support
is:

<!-- GL_cfg (begin) -->
<list style='format GL-cfg:%d' counter="GL_cfg">

<t>
Multiple instances of DPAs (at access routers)
which are providing IP prefix to the MNs are needed to provide
distributed mobility anchoring 
according to Figure 1(a) or Figure 1(b)in
<xref target="sec:distributed-anchoring-configurations"/>
with centralized control plane for a flat network.
<vspace blankLines="1"/>
<vspace blankLines="1"/>
The appropriate IPv6 nodes (CPA, DPA) are to be implemented
the mobility functions
LM and FM as described respectively in LM-cfg:1 or LM-cfg:2 and FM-cfg:1 in 
<xref target="sec:distributed-anchoring-behaviors"/>.
</t>

</list>
<!-- GL_cfg (end) -->
</t>


<t>
The guidelines (GL-mix) in
<xref target="sec:IPv6-nodes-changing-anchor" />
and in
<xref target="sec:IPv6-nodes-needing-mobility" />
for the IPv6 nodes 
for a network or network slice
supporting a mix of flows
requiring and not requiring IP mobility support
apply here. 

The guidelines (GL-mix) in
<xref target="sec:IPv6-nodes-switching-anchor" />
also apply here. 

In addition, the following are required.

<list style='format GL-switch:%d' counter="GL_switch">

<t>
The anchor operations to properly forward the packets for a flow
as described in the FM operations and mobility message parameters in
<xref target="sec:FM-behaviors"/> FM-path, FM-path-tbl, FM-DPA, FM-DPA-tbl
is realized by changing the anchoring with DHCPv6-PD
and undoing such changes later 
when its timer expires and the application has already closed.
With the anchors being separated in control and data planes
with LMs and FM-CP centralized in the same control plane,
messaging between anchors and the discovery of anchors
become internal to the control plane
as described in 
<xref target="sec:FM-behaviors"/> FM-cpdp. 
However, the centralized FM-CP needs to communicate with the distributed FM-DP
as described as described in the FM operations and mobility message parameters (FM-find).
Such may be realized by the appropriate messages in
<xref target="I-D.ietf-dmm-fpc-cpdp"/>.
<vspace blankLines="1"/></t>

<t>
It was already mentioned before that, 
if there are in-flight packets toward the old anchor
while the MN is moving to the new anchor,
it may be necessary to buffer these packets and then forward to the new anchor
after the old anchor knows that the new anchor is ready
 
Here, however,
the corresponding FM operations and mobility message parameters
as described in 
<xref target="sec:FM-behaviors"/> 
(FM-buffer) 
can be realized by the internal operations in the control plane
together with signaling between the control plane and distributed data plane.
These signaling may be realized by the appropriate messages in
<xref target="I-D.ietf-dmm-fpc-cpdp"/>.
<vspace blankLines="1"/></t>

</list>
</t>

</section>
<!-- IPv6 nodes: Switching anchor with centralized Control Plane (end section) -->


</section>
<!-- Centralized control plane (end section) -->



<!-- Hierarchical network (begin section) --> 
<section anchor="sec:hierarchical-network"
                 title="IP Prefix/Address Anchor Switching for a Hierarchical Network">

<t>
The configuration for a hierarchical network
is shown in Figures 1(c) and 1(d) in 
<xref target="sec:distributed-anchoring-configurations"/>.
With centralized control plane,
CPA and CPN, with the associated LM and FM-CP
are all co-located.
There are multiple DPAs (each with FM-DP)
in distributed mobility anchoring.
In the data plane,
there are multiple DPNs (each with FM-DP)
hierarchically below each DPA.
The DPA at each AR
supports forwarding to the DPN at each of
a number of forwarding switches (FW's).
A mobility event in this configuration
belonging to distributed mobility management
will be deferred to
<xref target="sec:hierarchical-network-anchor-switching"/>.
</t>

<t>
In this distributed mobility configuration, a mobility event
involving change of FW only but not of AR
as shown in Figure 11
may still belong to centralized mobility management
and may be supported using PMIPv6.
This configuration of network-based mobility
is also applicable to host-based mobility
with the modification
for the MN directly taking the role of DPN and CPN,
and the corresponding centralized mobility event
may be supported using MIPv6. 
</t>

<t>
In Figure 11, the IP prefix allocated to the MN 
is anchored at the access router (AR)
supporting indirection
to the old FW to which the MN was originally attached
as well as
to the new FW to which the MN has moved.
</t>

<t>
The realization of LM
may be the binding
between the IP prefix/address of the flow
used by the MN
and the IP address of the DPN to which MN has moved.
The implementation of FM to enable change of FW 
without changing AR
may be accomplished using tunneling 
between the AR and the FW as described in 
<xref target="I-D.korhonen-dmm-local-prefix"/> 
and in
<xref target="I-D.templin-aerolink"/> 

or using some other L2 mobility mechanism.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
Net1                                                   Net2
+----------------------------------------------------------------------+
|                            CPA,CPN:                                  |
|                            LM:IP1<-->IPn2                            |
|                            FM-CP                                     |
+----------------------------------------------------------------------+


                           +---------------+
                           |AR1            |
                           +---------------+
                           |DPA(IPa1):     |
                           |anchors IP1    |
                           |FM:DHCPv6-PD   |
                           +---------------+


+---------------+                                      +---------------+
|FW1            |                                      |FW2            |
+---------------+                 move                 +---------------+
|DPN(IPn1):     |               =======>               |DPN(IPn2):     |
+---------------+                                      +---------------+


+...............+                                      +---------------+
.MN(IP1)        .                 move                 |MN(IP2)        |
.flow(IP1,...)  .               =======>               |flow(IP1,...)  |
+...............+                                      +---------------+
  ]]></artwork>

  <postamble>Figure 11. 
Mobility without involving change of IP anchoring 
in a network in which the IP prefix allocated to the MN 
is anchored at an AR which is hierarchically above multiple FWs
to which the MN may connect.</postamble>

</figure>



<!-- IPv6 nodes: No anchoring change with hierarchical network (begin section) -->
<section anchor="sec:IPv6-nodes-switching-dpn-hierarchical-network"
 title="Additional Guidelines for IPv6 Nodes: 
No Anchoring Change with a Hierarchical Network">


<t>
The configuration guideline ( )
for a hierarchical network or network slice 
with centralized control plane
and supporting a mix of flows
requiring and not requiring IP mobility support
is:

<!-- GL_cfg (begin) -->
<list style='format GL-cfg:%d' counter="GL_cfg">

<t>
Multiple instances of DPAs (at access routers)
which are providing IP prefix to the MNs are needed to provide
distributed mobility anchoring 
according to Figure 2(a) or Figure 2(b)in
<xref target="sec:distributed-anchoring-network-based-hierarchical"/>
with centralized control plane for a hierarchical network.
<vspace blankLines="1"/>
<vspace blankLines="1"/>
The appropriate IPv6 nodes (CPA, DPA) are to be implemented
the mobility functions
LM and FM as described respectively in LM-cfg:3 or LM-cfg:4 and FM-cfg:2 in 
<xref target="sec:distributed-anchoring-behaviors"/>.
</t>

</list>
<!-- GL_cfg (end) -->
</t>


<t>
Even when the mobility event does not involve change of anchor,
it is still necessary to distinguish whether a flow needs IP mobility support. 
</t>

<t>
The GL-mix guidelines in
<xref target="sec:IPv6-nodes-changing-anchor" />
and in
<xref target="sec:IPv6-nodes-needing-mobility" />
for the IPv6 nodes 
for a network or network slice
supporting a mix of flows
requiring and not requiring IP mobility support
apply here. 


The guidelines (GL-switch) in
<xref target="sec:IPv6-nodes-switching-anchor" />
and in
<xref target="sec:IPv6-nodes-switching-anchor-central-CP" />
also apply here. 

In addition, the following are required.

<list style='format GL-switch:%d' counter="GL_switch">

<t>
Here, the LM operations and mobility message parameters
described in
<xref target="sec:LM-behaviors" />
provides information of which IP prefix from its FW
needs to be used by a flow using which new FW. 
The anchor operations to properly forward the packets of a flow
described in the FM operations and mobility message parameters 
(FM-path, FM-path-ind, FM-cpdp in
<xref target="sec:FM-behaviors"/>)
may be realized with PMIPv6 protocol 
(<xref target="I-D.korhonen-dmm-local-prefix"/>)
or with AERO protocol
(<xref target="I-D.templin-aerolink"/>)
to tunnel between the AR and the FW.
<vspace blankLines="1"/></t>

</list>
</t>



</section>
<!-- IPv6 nodes: No anchoring change with hierarchical network (end section) -->


</section>
<!-- Hierarchical network (end section) -->


<!-- Hierarchical network with anchoring change (begin section) -->
<section anchor="sec:hierarchical-network-anchor-switching"
                 title="IP Prefix/Address Anchor Switching for a Hierarchical Network">

<t>
The configuration for the hierarchical network
is again shown in Figures 1(c) and 1(d) in 
<xref target="sec:distributed-anchoring-configurations"/>.
Again, with centralized control plane,
CPA and CPN, with the associated LM and FM-CP
are all co-located.
There are multiple DPAs (each with FM-DP)
in distributed mobility anchoring.
In the data plane,
there are multiple DPNs (each with FM-DP)
hierarchically below each DPA.
The DPA at each AR
supports forwarding to the DPN at each of
a number of forwarding switches (FW's).
</t>

<t>
A distributed mobility event in this configuration
involves change from a previous DPN
which is hierarchically under the previous DPA
to a new DPN 
which is hierarchically under a new DPA.
Such an event involving change of both DPA and DPN
is shown in Figure 12.
</t>

<figure>
  <preamble/>

  <artwork><![CDATA[
Net1                                                   Net2
+----------------------------------------------------------------------+
|                            CPA,CPN:                                  |
|                            LM:IP1<-->IPa2,IPn2                       |
|                            FM-CP                                     |
+----------------------------------------------------------------------+

                            +---------------+
                            |Aggregate Point|
                            |---------------|
                            |FM,    LM      |
                            +---------------+


+---------------+                                      +---------------+
|AR1            |                                      |AR2            |
+---------------+                                      +---------------+
|DPA(IPa1):     |                                      |DPA(IPa2):     |
|anchors IP1    |                 move                 |anchors IP2,IP1|
|FM:DHCPv6-PD   |               =======>               |FM:DHCPv6-PD   |
+---------------+                                      +---------------+


+---------------+                                      +---------------+
|FW1            |                                      |FW2            |
+---------------+                 move                 +---------------+
|DPN(IPn1):     |               =======>               |DPN(IPn2):     |
+---------------+                                      +---------------+


+...............+                                      +---------------+
.MN(IP1)        .                 move                 |MN(IP2,IP1)    |
.flow(IP1,...)  .               =======>               |flow(IP1,...)  |
+...............+                                      +---------------+
  ]]></artwork>

  <postamble>Figure 12. Mobility involving change of IP anchoring 
in a network with hierarchy 
in which the IP prefix allocated to the MN 
is anchored at an Edge Router 
supporting multiple access routers to which the MN may connect.
  </postamble>
</figure>


<t>
This deployment case involves both a change of anchor from AR1 to AR2
and a network hierarchy AR-FW.
It can be realized by a combination of
changing the IP prefix/address anchoring from AR1 to AR2
with the mechanism as described in 
<xref target="sec:switching-anchor-central-CP"/>
and then forwarding the packets with network hierarchy AR-FW
as described in 
<xref target="sec:hierarchical-network"/>.
</t>

<t>
To change AR, AR1 acting as a DHCPv6-PD client 
may exchange message with the DHCPv6 server 
to release the prefix IP1. 
Meanwhile, AR2 acting as a DHCPv6-PD client may exchange message 
with the DHCPv6 server to delegate the prefix IP1 to AR2.
</t>



<!-- IPv6 nodes: Switching anchor with hierarchical network (begin section) -->
<section anchor="sec:IPv6-nodes-switching-anchor-hierarchical-network"
 title="Additional Guidelines for IPv6 Nodes: 
Switching Anchor with Hierarchical Network">


<t>
The configuration guideline (GL-cfg)
for a hierarchical network or network slice 
with centralized control plane described in
<xref target="sec:IPv6-nodes-switching-dpn-hierarchical-network" />
apply here.
</t>



<t>
The GL-mix guidelines in
<xref target="sec:IPv6-nodes-changing-anchor" />
and in
<xref target="sec:IPv6-nodes-needing-mobility" />
for the IPv6 nodes 
for a network or network slice
supporting a mix of flows
requiring and not requiring IP mobility support
apply here. 
</t>

<t>
The guidelines (GL-switch) in
<xref target="sec:IPv6-nodes-switching-anchor" />
and in
<xref target="sec:IPv6-nodes-switching-anchor-central-CP" />
also apply here 
to change the anchoring of the IP prefix/address
with a centralized control plane. 
</t>

<t>
In addition,
the guideline for indirection 
between the new DPA and the new DPN
as described in
<xref target="sec:IPv6-nodes-switching-dpn-hierarchical-network" />
apply here.
</t>

</section>
<!-- IPv6 nodes: Switching anchor with hierarchical network (end section) -->




</section>
<!-- Hierarchical network with anchoring change (begin section) -->

</section>
<!-- IP prefix/address anchor switching to the new network (end section) -->

<section anchor="security" title="Security Considerations">
<t>TBD</t>
</section>

<section title="IANA Considerations">
<t>This document presents no IANA considerations.</t>
</section>

<section title="Contributors">
<t>
This document has benefited from other work 
on mobility solutions using BGP update, 
on mobility support in SDN network, 
on providing mobility support only when needed,
and on mobility support in enterprise network. 
These work have been referenced. 
While some of these authors have taken the work to jointly write this document,
others have contributed at least indirectly by writing these drafts. 
The latter include Philippe Bertin, Dapeng Liu, Satoru Matushima, 
Peter McCann, Pierrick Seite, Jouni Korhonen, and Sri Gundavelli.</t>

<t>Valuable comments have also been received from 
John Kaippallimalil,
ChunShan Xiong,
and Dapeng Liu.</t>
</section>

</middle>

<back>
<references title="Normative References">
&rfc2119;
<?rfc include="reference.RFC.6275.xml" ?>
<?rfc include="reference.RFC.5213.xml" ?>
<?rfc include="reference.RFC.3753.xml" ?>
<?rfc include="reference.RFC.7077.xml" ?>
<?rfc include="reference.RFC.7333.xml" ?>
<?rfc include="reference.RFC.7429.xml" ?>

<!--
<?rfc include="reference.RFC.7389.xml" ?>
<?rfc include="reference.RFC.6241.xml" ?>
-->


<?rfc include="reference.I-D.ietf-dmm-ondemand-mobility.xml"?>
<?rfc include="reference.I-D.ietf-dmm-fpc-cpdp.xml"?>
<?rfc include="reference.I-D.ietf-dmm-deployment-models.xml"?>
<?rfc include="reference.I-D.mccann-dmm-prefixcost.xml"?>
<?rfc include="reference.I-D.jhlee-dmm-dnpp.xml"?>
<?rfc include="reference.I-D.seite-dmm-dma.xml"?>
<?rfc include="reference.I-D.mccann-dmm-flatarch.xml"?>
<?rfc include="reference.I-D.liu-dmm-deployment-scenario.xml"?>
<?rfc include="reference.I-D.sijeon-dmm-deployment-models.xml"?>
<?rfc include="reference.I-D.matsushima-stateless-uplane-vepc.xml"?>
<?rfc include="reference.I-D.templin-aerolink.xml"?>
<?rfc include="reference.I-D.korhonen-dmm-local-prefix.xml"?>



<!--
<?rfc include="reference.I-D.bernardos-dmm-cmip.xml"?>
<?rfc include="reference.I-D.bernardos-dmm-pmip.xml"?>
<?rfc include="reference.I-D.sarikaya-dmm-for-wifi.xml"?>
<?rfc include="reference.I-D.yhkim-dmm-enhanced-anchoring.xml"?>
-->
</references>

<references title="Informative References">
<reference anchor="Paper-Distributed.Mobility.Review">
        <front>
          <title>Distributed and Dynamic Mobility Management in Mobile
          Internet: Current Approaches and Issues</title>

          <author initials="H" surname="Chan">
            <organization/>
          </author>

          <author initials="H" surname="Yokota">
            <organization/>
          </author>

          <author initials="J" surname="Xie">
            <organization/>
          </author>

          <author initials="P" surname="Seite">
            <organization/>
          </author>

          <author initials="D" surname="Liu">
            <organization/>
          </author>

          <date month="February" year="2011"/>
        </front>
</reference>

<reference anchor="Paper-Distributed.Mobility">
        <front>
          <title>Distributed IP Mobility Management from the Perspective of
          the IETF: Motivations, Requirements, Approaches, Comparison, and
          Challenges</title>

          <author initials="J" surname="Lee">
            <organization/>
          </author>

          <author initials="J" surname="Bonnin">
            <organization/>
          </author>

          <author initials="P" surname="Seite">
            <organization/>
          </author>

          <author initials="H" surname="Chan">
            <organization/>
          </author>

          <date month="October" year="2013"/>
        </front>

        <seriesInfo name="" value="IEEE Wireless Communications"/>
</reference>

<reference anchor="Paper-Distributed.Mobility.PMIP">
        <front>
          <title>Proxy Mobile IP with Distributed Mobility Anchors</title>

          <author initials="H" surname="Chan">
            <organization/>
          </author>

          <date month="December" year="2010"/>
        </front>

        <seriesInfo name=""
                    value="Proceedings of GlobeCom Workshop on Seamless Wireless Mobility"/>
      </reference>
</references>
</back>

</rfc>
