draft-ietf-dmm-fpc-cpdp-01.txt   draft-ietf-dmm-fpc-cpdp-02.txt 
DMM Working Group M. Liebsch DMM Working Group M. Liebsch
Internet-Draft NEC Internet-Draft NEC
Intended status: Standards Track S. Matsushima Intended status: Standards Track S. Matsushima
Expires: January 7, 2016 SoftBank Expires: September 22, 2016 SoftBank
S. Gundavelli S. Gundavelli
Cisco Cisco
D. Moses D. Moses
Intel Corporation Intel Corporation
July 6, 2015 L. Bertz
Sprint
March 21, 2016
Protocol for Forwarding Policy Configuration (FPC) in DMM Protocol for Forwarding Policy Configuration (FPC) in DMM
draft-ietf-dmm-fpc-cpdp-01.txt draft-ietf-dmm-fpc-cpdp-02.txt
Abstract Abstract
The specification as per this document supports the separation of the This specification supports the separation of the Control-Plane for
Control-Plane for mobility- and session management from the actual mobility- and session management from the Data-Plane. The protocol
Data-Plane. The protocol semantics abstract from the actual details semantics abstract the configuration of Data-Plane nodes and applies
for the configuration of Data-Plane nodes and apply between a Client it between a Client function, which is used by an application of the
function, which is used by an application of the mobility Control- mobility Control-Plane, and an Agent function, which is associated
Plane, and an Agent function, which is associated with the with the configuration of Data-Plane nodes, according to the Data-
configuration of Data-Plane nodes according to the policies issued by Plane rules issued by the mobility Control-Plane. The scope of the
the mobility Control-Plane. The scope of the policies comprises rules comprises traffic description and treatment of packets in terms
forwarding rules and treatment of packets in terms of encapsulation, of encapsulation, IP address re-writing and QoS. Additional protocol
IP address re-writing and QoS. Additional protocol semantics are semantics are described to support the maintenance of the Data-Plane
described to support the maintenance of the Data-Plane path. path.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 7, 2016. This Internet-Draft will expire on September 22, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 4
3. Model for Policy-based DMM Network Control . . . . . . . . . 3 3. Reference Architecture and Deployment Options . . . . . . . . 4
3.1. Reference Architecture for DMM Forwarding Policy 3.1. Architecture for DMM Forwarding Policy Configuration . . 4
Configuration . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Model 1 . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Generalized Rules on the Client-Agent-Interface . . . . . 6 3.2.1. Role of the FPC Client Function . . . . . . . . . . . 7
3.3. Role of the DMM FPC Client Function . . . . . . . . . . . 6 3.2.2. Role of the FPC Agent Function . . . . . . . . . . . 7
3.4. Role of the DMM FPC Agent Function . . . . . . . . . . . 7 3.3. Model 2 . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Protocol Messages and Semantics . . . . . . . . . . . . . . . 7 3.3.1. Role of the DMM FPC Client Function . . . . . . . . . 8
4.1. Protocol Messages . . . . . . . . . . . . . . . . . . . . 7 3.3.2. Role of the DMM FPC Agent Function . . . . . . . . . 8
4.2. Protocol Attributes . . . . . . . . . . . . . . . . . . . 9 4. Protocol to support Model I . . . . . . . . . . . . . . . . . 9
4.3. Protocol Operation . . . . . . . . . . . . . . . . . . . 13 4.1. Data Structure . . . . . . . . . . . . . . . . . . . . . 9
5. Conceptual Data Structures . . . . . . . . . . . . . . . . . 18 4.2. Protocol Attributes . . . . . . . . . . . . . . . . . . . 12
6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 4.3. Protocol Messages and Semantics . . . . . . . . . . . . . 19
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 4.4. Protocol Operation . . . . . . . . . . . . . . . . . . . 20
8. Work Team Participants . . . . . . . . . . . . . . . . . . . 19 5. Protocol to support Model II . . . . . . . . . . . . . . . . 29
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1. Protocol Attributes . . . . . . . . . . . . . . . . . . . 29
9.1. Normative References . . . . . . . . . . . . . . . . . . 19 5.2. Protocol Messages and Semantics . . . . . . . . . . . . . 31
9.2. Informative References . . . . . . . . . . . . . . . . . 19 5.3. Protocol Operation . . . . . . . . . . . . . . . . . . . 33
Appendix A. YANG Data Model for the FPC Protocol . . . . . . . . 20 6. YANG Data Model for the FPC protocol . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 6.1. FPC Base . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.1. FPC Base YANG Model . . . . . . . . . . . . . . . . . 34
6.1.2. FPC Base tree . . . . . . . . . . . . . . . . . . . . 51
6.2. FPC PMIP . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.1. FPC PMIP YANG Model . . . . . . . . . . . . . . . . . 57
6.2.2. FPC PMIP tree . . . . . . . . . . . . . . . . . . . . 60
7. Security Considerations . . . . . . . . . . . . . . . . . . . 65
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 65
9. Work Team Participants . . . . . . . . . . . . . . . . . . . 66
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 66
10.1. Normative References . . . . . . . . . . . . . . . . . . 66
10.2. Informative References . . . . . . . . . . . . . . . . . 66
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 67
1. Introduction 1. Introduction
One objective of the Distributed Mobility Management (DMM) WG is the One objective of the Distributed Mobility Management (DMM) WG is the
separation of the mobility management Control- and Data-Plane to separation of the mobility management Control- and Data-Plane to
enable flexible deployment, such as decentralized provisioning of enable flexible deployment, such as decentralized provisioning of
Data-Plane nodes (DPN). Data-Plane nodes can be configured to Data-Plane nodes (DPN). Data-Plane nodes can be configured to
function as anchor for a registered Mobile Node's (MN) traffic, function as an anchor for a registered Mobile Node's (MN) traffic,
others can be configured to function as Mobile Access Gateway (MAG) others can be configured to function as a Mobile Access Gateway (MAG)
as per the Proxy Mobile IPv6 protocol [RFC5213] or a Foreign Agent per the Proxy Mobile IPv6 protocol [RFC5213] or a Foreign Agent (FA)
(FA) as per the Mobile IPv4 protocol [RFC3344]. Requirements for DMM per the Mobile IPv4 protocol [RFC3344]. Requirements for DMM have
have been described in [RFC7333], whereas best current practices for been described in [RFC7333], whereas best current practices for DMM
DMM are documented in [RFC7429]. are documented in [RFC7429].
The Data-Plane must provide a set of functions to the Mobility The Data-Plane must provide a set of functions to the Mobility
Control-Plane, such as support for encapsulation, IP address re- Control-Plane, such as support for encapsulation, IP address re-
writing, QoS differentiation and traffic shaping. In addition, the writing, QoS differentiation and traffic shaping. In addition, means
configuration of forwarding rules must be provided. These for traffic description must be provided to complement traffic
treatment actions and build unambiguous Data-plane rules. These
requirements are met by various transport network components, such as requirements are met by various transport network components, such as
IP switches and routers, though configuration semantics differs IP switches and routers, though configuration semantics differ
between them. between them.
Forwarding Policy Configuration (FPC) as per this document enables Forwarding Policy Configuration (FPC) per this document enables the
the configuration of any Data-Plane node and type by the abstraction configuration of any Data-Plane node and type by the abstraction of
of configuration details and the use of common configuration configuration details and the use of common configuration semantics.
semantics. The protocol using the FPC semantics is deployed between The protocol using the FPC semantics is deployed between a Client
a Client function, which is associated with the Mobility Management function, which is associated with the Mobility Management Control-
Control-Plane, and an Agent function. The Agent function enforces Plane, and an Agent function. The Agent function enforces the Data-
the Data-Plane configuration and can be present on a transport Plane configuration and can be present on a transport network
network controller or co-located with a Data-Plane node. The Agent controller or co-located with a Data-Plane node. The Agent applies
applies the generalized configuration semantics to configuration, the generalized configuration semantics to configuration, which is
which is specific to the Data-Plane node and type. The Mobility specific to the Data-Plane node and type.
Control-Plane can select one or multiple DPNs which suit the MN's
mobility management without the need to handle each node's routing- This specification follows a common functional architecture, which
or switching tables and local interface configurations for utilizes the FPC protocol between the Client and Agent functions, and
potentially many routers serving the Data-Plane, but enforce the supports two operational models, Model I and Model II.
policies for traffic treatment and forwarding through the FPC Client
and the FPC Agent functions. A Client supporting Model I interacts with the Agent to build
unambiguous rules which are to be enforced in the Data-Plane. An
Agent supporting Model I translates a rule, which follows the data
model herein, into one or multiple configuration actions to enforce
the rule in the Data-Plane.
A Client supporting Model II utilizes a sequence of control messages
to interact with the Agent, where each control message has an
unambiguous semantic, e.g. to set up a tunnel interface or to
configure a policy route in a Data-Plane node. An Agent supporting
Model II performs a configuration action per the semantics of the
received control message.
The availability of both operational models enables tailored
implementation and deployment of Control-/Data-Plane separation in
mobile communication gateways, e.g. by having the Mobility Control-
Plane directly communicating to a Data-Plane node as per Model II, or
per Model I by the deployment of a Network Controller in between the
Mobility Control-Plane and Data-Plane nodes, which are under control
of the Network Controller. Support for both the models enables an
operator to transition their network in incremental phases.
The architecture and reference interface specified in this document
is not tied to any specific Control-Plane protocol that is in use in
the mobility network, or to any type of access technology. The
mobility protocols in use can be Proxy Mobile IPv6, GTP, IPSec or
other protocols; and the access network can be 4G LTE, WiFi, or 5G.
These aspects have no direct implication on the FPC interface that is
between Control- and Data-Plane nodes.
2. Conventions and Terminology 2. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. Model for Policy-based DMM Network Control 3. Reference Architecture and Deployment Options
3.1. Reference Architecture for DMM Forwarding Policy Configuration 3.1. Architecture for DMM Forwarding Policy Configuration
The DMM Forwarding Policy Configuration (FPC) protocol enables DMM The DMM Forwarding Policy Configuration (FPC) protocol enables the
use cases in deployments with separated Control-/Data-Plane and is separation of the mobility management Control-Plane from the Data-
used by applications of the Mobility Control-Plane to enforce rules Plane and provides the required control and semantics in between
for forwarding and traffic treatment in the Data-Plane. Figure 1 these two planes. Figure 1 depicts an exemplary use case where IP
depicts an exemplary use case where downlink traffic from a traffic between a Correspondent Node (CN) and a Mobile Node (MN)
Correspondent Node (CN) towards a Mobile Node (MN) traverses multiple traverses multiple DPNs, each applying policies as per the Control-
DPNs, each applying policies as per the Control-Plane's request. Plane's request. Policies in the one or multiple DPNs can result in
Policies in the one or multiple DPNs can result in traffic steering traffic steering according to a host-route, packet scheduling and
according to a host-route, packet scheduling and marking according to marking according to a subscriber's QoS profile, or forwarding rules
a subscriber's QoS profile, or forwarding rules (e.g. encapsulation (e.g. encapsulation within GRE or GTP-U tunnel).
within GRE or GTP-U tunnel).
+--------------------------+ +--------------------------+
| Mobility Control | | Mobility Control |
+--------------------------+ +--------------------------+
| | | | | |
| | | | | |
| | | | | |
\ / V V V \ / V V V
+--+ -o- +---+ +---+ +---+ +--+ +--+ -o- +---+ +---+ +---+ +--+
|MN| ---- |---|DPN|<========|DPN|<----|DPN|<--|CN| |MN| ---- |---|DPN|<========|DPN|<----|DPN|<--|CN|
+--+ | +---+ +---+ +---+ +--+ +--+ | +---+ +---+ +---+ +--+
Rules: Rules: Rules: Rules: Rules: Rules:
Decap, Encap, host-route Encap,Decap, Encap,Decap Policy-Route,
Forward Forward, Forward,QoS Forward,QoS Forward
qos
Figure 1: Exemplary illustration of a use case for DMM traffic Figure 1: Exemplary illustration of DMM traffic steering and policy
steering and policy enforcement at Data Plane Nodes (DPN) enforcement at Data Plane Nodes (DPN)
Mobility Control-Plane functions have the following roles in common: Mobility Control-Plane functions have the following roles in common:
o Tracking an MN's location o Tracking a mobile node's attachment, detachment from the access
network
o Accept requests to set up and maintain mobility-related Data-Plane o Accept requests to set up and maintain mobility-related Data-Plane
path between DPNs, taking QoS attributes into account. Such paths between DPNs, enforcing QoS and forwarding policies. Such
requests can be issued through mobility protocols, such as Proxy requests are a result of mobility signaling between different
Mobile IPv6, and the associated operation with remote Mobility Mobility Control-Plane functions.
Control-Plane functions.
o Become aware of different DPNs that provide the required Data- o Ensure that required rules to establish and maintain connectivity
plane functions to the Mobility Control-Plane and can be used for of an MN with its correspondent nodes are enforced in the Data-
mobility traffic forwarding and treatment Plane.
o Monitor the DPNs' operation and handle exceptions, e.g. the o Participate in monitoring the DPNs' operation and support the
detection of a partial DPN failure and the diversion of traffic handling of exceptions, e.g. the detection of a partial DPN
through a different DPN failure and the diversion of traffic through a different DPN.
o Maintain consistency between multiple DPNs which enforce policy o Maintain consistency between multiple DPNs which enforce policy
rules for an MN rules to ensure connectivity between a MN and its correspondent
services.
Mobility Data-Plane functions have the following roles in common: Mobility Data-Plane functions have the following roles in common:
o Forward and treat traffic according to the policies and directives o Forward and treat traffic according to the policies and directives
sent by the Mobility Control-Plane sent by the Mobility Control-Plane
o Provide status (e.g. load, health, statistics and traffic volume) o Provide status information (e.g. load, health, statistics and
information on request traffic volume) and events related to service failure upon request
o Participate in the process for topology acquisition, e.g. by o Participate in the process of topology acquisition, e.g. by
exposing relevant topological and capability information, such as exposing relevant topological and capability information, such as
support for QoS differentiation and supported encapsulation support for QoS differentiation and supported encapsulation
protocols protocols
The protocol for DMM FPC applies to the interface between an FPC The protocol for DMM FPC applies to the interface between a FPC
Client function and an FPC Agent function, as depicted in Figure 2. Client function and a FPC Agent function, as depicted in Figure 2.
The FPC Client function is associated with an application function of The FPC Client function is associated with an application function of
the mobility management Control-Plane, e.g. a Local Mobility Anchor the mobility management Control-Plane, e.g. a Local Mobility Anchor
Control-Plane function as per the Proxy Mobile IPv6 protocol. The Control-Plane function per the Proxy Mobile IPv6 protocol. The FPC
FPC Agent function processes the FPC protocol semantics and Agent function processes the FPC protocol semantics and translates
translates them into configuration commands as per the DPN's them into configuration commands per the DPN's technology. In one
technology. In one example, an FPC Agent can be co-located with a example, an FPC Agent can be co-located with a Network Controller,
Transport Network Controller, which enforces forwarding rules on a which enforces forwarding rules on a set of Data-plane nodes. In
set of SDN switches. In another example, the Agent can be co-located another example, the Agent can be co-located with a Data-Plane node
with a single router to directly interact with interface management to directly interact with interface management and the router's RIB
and the router's RIB Manager. The mapping of the common FPC Manager. The mapping of the common FPC semantics and policy
semantics and policy description as per this specification to the description to the configuration commands of a particular DPN is
configuration commands of a particular DPN is specific to the DPN's specific to the DPN's technology and the Agent's implementation.
technology and the Agent's implementation.
+-------------------------+ +-------------------------+
| Mobility Control-Plane | | Mobility Control-Plane |
| | | |
|+--------[API]----------+| |+--------[API]----------+|
|| FPC Client Function || || FPC Client Function ||
|+----------^------------+| |+----------^------------+|
+-----------|-------------+ +-----------|-------------+
| |
| DMM FPC protocol | DMM FPC protocol
| |
+-----------|-------------+ +-----------|-------------+
|+----------v------------+| |+----------v------------+|
|| FPC Agent Function || || FPC Agent Function ||
|+-----------------------+| |+-----------------------+|
| | | |
| DPN Configuration API | | DPN Configuration API |
+-------------------------+ +-------------------------+
Figure 2: Illustration of the functional reference architecture for Figure 2: Functional reference architecture for DMM Forwarding Policy
DMM Forwarding Policy Configuration (FPC) Configuration (FPC)
3.2. Generalized Rules on the Client-Agent-Interface
To abstract configuration details of an IP switch or IP router on the
FPC protocol interface, this specification adopts the model of
logical Ports to bind certain properties, such as a QoS policy.
Additional properties can be bound to the same logical Port, e.g.
encapsulation of packets, being directed to that logical Port, in a
GRE tunnel. The remote tunnel endpoint is configured as part of the
property bound to that logical Port. All traffic, which has a
forwarding rule in common and should be forwarded according to the
properties bound to a particular Port, can be referred to that Port
by configuration of a forwarding rule. Multiple IP flows or even
aggregated traffic being destined to a given IP prefix can be
directed to that logical Port and experiences the same treatment
according to the configured properties and forwarding
characteristics. Aggregated or per-Host/per-Flow traffic can be
identified by a longest prefix match or a Traffic Selector [RFC6088]
respectively.
Figure 3 illustrates the generic policy configuration model as used
between an FPC Client function and an FPC Agent function.
<prefix 1> <IP flow 1> <host src IP 1> +-------------------+
<host dst IP 1> <IP flow 2> <prefix 2> | Bind 1..M |
| <IP flow 3> | | traffic templates |
| | | | to each logical |
| | | | port |
| | | +-------------------+
v v v
<PORT_1>------<PORT_2>------<PORT_3>--- ... [logical ports space]
| | |
+--PROP_1.1 +--PROP_2.1 +--PROP_3.1 +-------------------+
| | | Bind 1..N |
+--PROP_1.2 +--PROP_3.2 | properties |
| | to each logical |
+--PROP_1.3 | port |
+-------------------+
Figure 3: Illustration of generalized rules
3.3. Role of the DMM FPC Client Function 3.2. Model 1
3.2.1. Role of the FPC Client Function
The DMM FPC Client function includes the following tasks: The FPC Client function, which follows Model I operation, includes
the following tasks:
o Per mobility management transaction or relevant event, build one o Build one or multiple FPC Control messages/attributes to
or multiple Control messages/attributes to control policies on one establish, update or delete rules on one or multiple DPN(s)
or multiple DPA(s) according to the application's directives according to the Mobility Control-Plane's directives
o Treat a DPN's policy rules (encapsulation, address re-write, QoS, o Apply a DPN's policy rules (encapsulation, address re-write, QoS,
traffic monitoring) on the basis of properties being bound to traffic monitoring) on the basis of properties bound to logical
logical ports (similar to the bearer concept in cellular networks) ports (similar to the bearer concept in cellular networks)
o Build, modify or delete logical ports as needed o Build, modify or delete logical ports as needed
o Bind associated policy rules as one or multiple properties to a o Bind associated policy rules as one or multiple properties to a
logical port logical port
o Treat forwarding rules (e.g. per-IP flow, per-MN, per-IP, per- o Apply traffic forwarding rules (e.g. per-IP flow, per-MN, per-IP,
prefix) on the basis of logical ports per-prefix) on the basis traffic descriptions bound to logical
ports
o Send each generated message to the DMM FPC Agent associated with o Send each generated FPC control message to the FPC Agent
the identified DPN
o Keep record of the policy rules/port information and the o Keep record of the configured policy rules and interact with the
associated DPN and FPC Agent Function FPC Agent to ensure proper synchronization between Mobility
Control-Plane states and rules configured on the FPC Agent
o Process received Response, Notification and Query messages issued o Process received Response, Notification and Query messages issued
by a DMM FPC Agent Function and notify the application by a FPC Agent and interact with the Control-Plane to act
accordingly
3.4. Role of the DMM FPC Agent Function 3.2.2. Role of the FPC Agent Function
The DMM FPC Agent function includes the following tasks: The FPC Agent function, which follows Model I operation, includes the
following tasks:
o Process the received Control messages issued by a DMM FPC Client o Process received Control messages issued by a FPC Client Function
Function
o Unambiguously match each logical port with an associated physical o Apply received rules to local configuration (e.g. encapsulation,
port or interface at the identified DPN NA(P)T, traffic prioritization and scheduling) in the Data-Plane
o Apply the received properties to local configuration (e.g. o Maintain administrative data as well as operational data, which
encapsulation, NA(P)T, traffic prioritization and scheduling) on describes the status of the rules in the Data-Plane
the identified DPN according to the DPN's technology
o Monitor scheduled events (e.g. failure or missing rule) and issue o Monitor events (e.g. failure, incomplete rule) and issue an
an associated message to the FPC Client Function (NOTIFICATION, associated message to the FPC Client Function (NOTIFICATION,
QUERY) QUERY)
4. Protocol Messages and Semantics 3.3. Model 2
4.1. Protocol Messages 3.3.1. Role of the DMM FPC Client Function
The following table lists all specified protocol messages to create The FPC Client function, which follows Model II operation, includes
and delete logical Ports, to add properties and to add forwarding the following tasks:
rules in terms of binding traffic descriptors to a logical Port.
Furthermore, messages are specified to schedule tasks, such as o The FPC Client offers a set of services to the mobility control
monitoring, at an Agent and to probe the status of the scheduled task plane entities. These services are for activating/deactivating
from a Client. Additional messages are specified to enable the Data- specific configuration on a Data-Plane node supported by a FPC
Plane to notify or query the Control-Plane through the Agent and Agent. These services for example are creation/deletion of a
Client functions. layer-3 tunnel; adding/deleting an IP route;
o The FPC Client translates the request from the mobile control
plane as a FPC message. The message identifies the service name
and includes a set of information elements. This message is sent
to the FPC Agent over the FPC interface.
3.3.2. Role of the DMM FPC Agent Function
The FPC Agent function, which follows Model II operation, includes
the following tasks:
o FPC Agent offers a set of services to the FPC client. Each of
these services have a well-defined meaning and can be invoked by
the FPC Client passing a set of parameters. These services for
example are creation/deletion of a layer-3 tunnel; adding/deleting
an IP route.
o Any FPC Client can invoke a specific service on the FPC Agent
through the use of FPC messaging interface. The interface
semantics allow the identification of the service request and for
inclusion of the parameters relevant for that service request.
o FPC Agent processes a FPC message and identifies the service
request. The FPC Agent maps the service request to a local
configuration and enables that configuration in the forwarding
plane. For example, if there is a service request for Tunnel
creation including the relevant parameters such as source IP
address, destination IP address and encapsulation type, this
request will result in the FPC Agent configuring such tunnel
configuration on the Data-Plane node.
o The FPC Agent provides a resulting status code on how the request
was executed by the agent.
4. Protocol to support Model I
4.1. Data Structure
To abstract from configuration details of an IP switch or IP router
on the FPC protocol interface, Model I adopts the construct of
logical ports to describe rules for D-Plane processing. A port binds
one or multiple properties, which describe traffic treatment actions,
such as a QoS policy, IP address re-write or packet encapsulation.
Which traffic is treated is determined by one or multiple traffic
descriptors, which also bind to that port. A group of one or
multiple traffic descriptors, one or multiple properties defining
traffic treatment actions and the port identifier make a rule. The
port identifier serves as key to access the rule.
All traffic arriving at a Data-Plane node and matching a traffic
descriptor will be treated per the properties bound to the port the
traffic descriptor is also bound to. For example, Traffic Selectors
[RFC6088], which can be bound to a port, can identify single or
multiple IP flows. Aggregated IP traffic destined toward a given IP
address prefix or originated from an address matching a particular IP
address range can be described using the Traffic Selector or an IP
prefix traffic descriptor per this specification.
In addition to traffic descriptors and traffic treatment actions,
which build a Data-Plane processing rule, a port has associated
operational data, which tracks the status of rule enforcement in a
selected Data-Plane node. A rule can also have administrative data
such as its directionality (uni- or bi-directional) and
administrative status such as enabled, disabled or virtual.
Furthermore, an identifier of the Data-Plane node to which the rule
applies is kept in the operational data associated with a port.
When the Client desires specific operational state for the port, it
may apply administrative state properties to the port. This,
however, may not take immediate effect on the Data-Plane Node. Thus,
Client implementations must support situations where differences
exist between configured and operational state of a port. A Client
can request operational data associated with a particular port from
an Agent.
A Client adds, modifies or deletes a rule on an Agent using the FPC
protocol messages. The protocol enables a Client to provide
additional administrative information about a particular port or a
group of ports to the Agent. This includes control of the operation
of a rule, e.g. whether a rule associated with a particular port
applies only uni-directionally or bi-directionally. In case of bi-
directionality, an Agent can apply a rule associated with a single
port in the Data-Plane to both directions. As example, a rule which
performs re-writing of an arriving packet's destination IP address
from IP_A to IP_B matching an associated Traffic Selector, can be
enforced in the Data-Plane via an Agent to implicitly consider
matching arriving packet's source IP address against IP_B and re-
write the source IP address to IP_A.
Figure 3 illustrates the generic policy configuration model as used
between a FPC Client and a FPC Agent.
TrafficDescriptor_1-+ +--Property_1
| |
TrafficDescriptor_2-+---<PORT#>---+--Property_2
: | +--------+|
: : /Adm Data/ +--Property_3
: | +--------+ : :
TrafficDescriptor_M-+ +-------+ +--Property_N
/OP Data/
+-------+
+-------------------+ +---------------------+
| Bind 1..M traffic | | Bind 1..N traffic |
| templates to | --------> | treatment actions |
| a port | | to a port |
+-------------------+ +---------------------+
| |
+------------------ Data-Plane Rule --------------------+
Figure 3: Structure of rules on Client/Agent defining Data-Plane
traffic treatment
As depicted in Figure 3, the port represents the anchor of a rule. A
Client and Agent use the identifier of a port to access the rule and
perform modifications of traffic descriptors or properties. From the
viewpoint of packet processing, arriving packets are matched against
traffic descriptors and processed according to the treatment actions
specified in the list of properties associated with the port.
A Client can assign an existing or new port to a group of ports using
a port group identifier. The logic behind grouping multiple ports is
up to the Control-Plane. As example, multiple rules associated with
a single mobile node can be grouped and identified by the port group
identifier. In case the Control-Plane needs to delete all rules
associated with the mobile node, the Client can issue a message to
delete a port one and identify the group group identifier instead of
deleting each port individually. A Client can also apply
administrative properties to a group of ports by adding the port
group ID to the FPC message.
A Client can complement a traffic descriptor with a match priority
value to allow unambiguous traffic matching on the Data-Plane. If
the Client does not provide a match priority value with a traffic
descriptor or a group of traffic descriptors have the same priority
value, an Agent enforces the rule in the Data-Plane node to enable
traffic detection by longest prefix match.
Operational information of a port includes the data listed in the
following table:
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| Message | Description | | Admin Data | Format Clarification | Description |
+=====================================================================+ +=====================================================================+
| Messages issued by the FPC Client | | DPN_ID | Sect. 4.2 | Identifies a Data-Plane node|
+---------------------------------------------------------------------+ | | | to which the rule applies |
| PRT_ADD | Add a logical port |
+---------------------------------------------------------------------+
| PRT_DEL | Delete an existing logical port |
+---------------------------------------------------------------------+
| PROP_ADD | Add a property to a logical port |
+---------------------------------------------------------------------+
| PROP_MOD | Modify a property of a logical port |
+---------------------------------------------------------------------+
| PROP_DEL | Remove and delete a property from a logical port |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_ADD | Add forwarding rule by binding traffic descriptor | | PRT_BIDIR | BOOLEAN | Bidirectionality of a port |
| | to a logical port | | | | (cleared = unidirectional) |
+----------------+----------------------+-----------------------------+
| ADMIN_STATUS | [8, admin status] | Requested status for a rule |
| | | in a Data-Plane node |
| | | (enabled, disabled, virtual)|
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_MOD | Modify existing forwarding rule by changing the | | SESSION_STATUS | [8, session status] | Status of a session in the |
| | traffic descriptor bound to a logical port | | | | Control-Plane (complete, |
| | | incomplete, outdated) |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_DEL | Delete a forwarding rule | | PRT_GROUP_ID | [32, group id] | Identifies a group of ports |
| | | to which this port belongs |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| EVENT_REG | Register an event and descriptions at an Agent | | CLI_ID | Sect. 4.2 | Identifies the Client which |
| | about what is to be monitored by the Agent and | | | | created this port |
| | what is to be reported in case the event occurs |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| PROBE | Probe the status of a registered event | | AGT_ID | Sect. 4.2 | Identifies the Agent which |
| | | enforces the rule as per |
| | | this port |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| Messages issued by the FPC Agent |
Figure 4: Administrative Data associated with a port
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| | Notify the Client about the status of a | |Operational Data| Format Clarification | Description |
| NOTIFY | monitored attribute at any event kind | +=====================================================================+
| | (periodic / event trigger / probed) | | OPER_STATUS | [8, oper status] | Status of a rule in a |
| | | Data-Plane node (enabled, |
| | | disabled, virtual) |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| QUERY | Query the Client about missing rules/states | | SERVICE_STATUS | [8, service status] | Ability of an enabled rule |
| | | to serve traffic (complete, |
| | | incomplete, outdated) |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
Figure 4: Protocol Messages Figure 5: Operational Data associated with a port
A Client MAY apply an administrative state property to a port
indicating the desired operational status of a port, e.g. enabled,
disabled or virtual (not intended to serve traffic but used as a
template for other ports). Rules specified by an enabled port are
enforced in the Data-Plane node. A disabled port on an Agent can be
useful for pre-configuration, e.g. other operations can be performed
on the port prior to its enablement. Ultimately, a disabled port is
intended to be enabled. Virtual ports can serve as a reference to
clone new ports, which can then be enabled. When creating a cloned
port, the Client can update or add properties to suit the rule that
should be enforced in the Data-Plane.
A Client MAY set a Session state for a particular port or group of
ports on the Agent to guide the Agent on how to treat local events.
As example, an Agent SHOULD refrain from sending an FPC message to
the Client as result of a local event, which indicates a missing
rule, in case the session state is 'incomplete', as the Agent can
expect the Control-Plane to provide the missing rule unsolicited. In
case the session state is 'outdated', the Agent MAY notify the Client
to update the associated rule on the Agent.
4.2. Protocol Attributes 4.2. Protocol Attributes
Protocol messages as per Section 4.1 carry attributes to identify an Protocol messages as per Section 4.3 identify an FPC Client or Agent
FPC Client- or Agent function, as well as a DPN, logical ports and function, as well as a DPN, and carry traffic descriptor attributes,
configuration data. Furthermore, attributes are carried to manage logical port identification and properties specifying traffic
logical ports and describe properties associated with a logical port, treatment actions. Traffic can be described per-host, in aggregate
as well as to describe per-host-, aggregate or IP flow traffic and or per-IP flow. A Client MAY append administrative properties to a
refer to a logical port as forwarding information. message to indicate the desired status of a port to the Agent.
This document specifies attributes from the following categories: This document specifies attributes from the following categories:
o Identifier attributes o Identifier attributes
o Traffic Descriptors
o Properties o Properties specifying traffic treatment actions
o Property-specific attributes
o Rules and Traffic descriptors
Note on the list of attributes: The list of attributes is not yet o Protocol-specific Properties
complete.
Note on Format Clarification: Meant to provide an idea on the content o Administrative properties
of attributes. Semantics of key information fields or sub-option and
the value's length (bit) are indicated. The possibility of a field/
option to appear multiple times in a message or within an attribute,
e.g. as sub-option, is referred to by '*'.
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| Attribute | Format Clarification | Description | | Attribute | Format Clarification | Description |
+=====================================================================+ +=====================================================================+
| Identifiers | | Identifiers |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| PRT_ID | [32,PRT_ID] | Identifies a logical Port | | PRT_ID | [32,PRT_ID] | Identifies a logical Port |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| PRT_GROUP_ID | [32,PRT_GROUP_ID] | Identifies a group of |
| | | logical Ports |
+---------------------------------------------------------------------+
| PRT_PROP_ID | [32,PRT_ID] | Identifies a logical Port | | PRT_PROP_ID | [32,PRT_ID] | Identifies a logical Port |
| | [8,PROP_ID] | and one of its properties | | | [8,PROP_ID] | and one of its properties |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| PRT_RULE_ID | [32,PRT_ID] | Identifies a logical Port | | PRT_TD_ID | [32,PRT_ID] | Identifies a logical Port |
| | [8,RULE_ID] | and a rule that refers to | | | [8,TD_ID] | and a traffic descriptor |
| | | the Port | | | | that applies to the port |
+----------------+----------------------+-----------------------------+ +----------------+----------------------+-----------------------------+
| CLI_ID | [16, Carrier ID] | Identifies an | | CLI_ID | [16, Carrier ID] | Identifies an |
| | [16, Network ID] | FPC Client function | | | [16, Network ID] | FPC Client function |
| | [32, Client ID] | | | | [32, Client ID] | |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| AGT_ID | [16, Carrier ID] | Identifies an | | AGT_ID | [16, Carrier ID] | Identifies an |
| | [16, Network ID] | FPC Agent function | | | [16, Network ID] | FPC Agent function |
| | [32, Agent ID] | | | | [32, Agent ID] | |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| DPN_ID | [16, Carrier ID] | Identifies a Data Plane | | DPN_ID | [16, Carrier ID] | Identifies a Data Plane |
| | [16, Network ID] | Node (DPN) | | | [16, Network ID] | Node (DPN) |
| | [32, DPN ID] | | | | [32, DPN ID] | |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| EVENT_ID | [32, Event ID] |Identifies a registered event| | MONITOR_ID | [32, Monitor ID] | Identifies a registered |
| | | monitor |
+---------------------------------------------------------------------+
| EVENT_TYPE_ID | [8, Event Type ID] | Identifies an event type |
+---------------------------------------------------------------------+
| Optional Identifiers |
+---------------------------------------------------------------------+
| SERVICE_PATH_ID| [24-bit identifier] | Service Path Identifier |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
Figure 5: Protocol Attributes: Identifiers Figure 6: Model I Protocol Attributes: Identifiers
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| Attribute | Format Clarification | Description | | Attribute | Format Clarification | Description |
+======================================================================+ +======================================================================+
| Properties | | Properties |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| PROP_TUN | [type][src][dst] | Property Encapsulation, | | PROP_TUN | [type][src][dst] | Property Encapsulation, |
| | | indicates type GRE, IP, | | | | indicates type GRE, IP, |
| | | GTP | | | | GTP |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| PROP_REWR | [in_src_ip][out_src_ip] | Property NAT defines | | PROP_REWR | [in_src_ip][out_src_ip] | Property NAT defines |
| | [in_dst_ip][out_dst_ip] | IP address and port | | | [in_dst_ip][out_dst_ip] | IP address and port |
| | [in_src_port][out_src_port]| re-write rules | | | [in_src_port][out_src_port]| re-write rules |
| | [in_dst_port][out_dst_port]| | | | [in_dst_port][out_dst_port]| |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| PROP_QOS | [QoS index type][index] | Property QoS refers to | | PROP_QOS | [QoS index type][index] | Property QoS refers to |
| | [DSCP] | single index and DS Code| | | [DSCP] | single index and DS Code|
| | | Point to write | | | | Point to write |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| PROP_QOS_GBR | [GBR] *[PRT_ID] | Guaranteed Bit Rate and |
| | | single or multiple |
| | | PRT_IDs to which the |
| | | GBR applies when being |
| | | aggregated |
+---------------+----------------------------+-------------------------+
| PROP_QOS_MBR | [MBR] *[PRT_ID] | Maximum Bit Rate and |
| | | single or multiple |
| | | PRT_IDs to which the |
| | | MBR applies when being |
| | | aggregated |
+---------------+----------------------------+-------------------------+
| PROP_GW | [ip address next hop] | IP address of the Next | | PROP_GW | [ip address next hop] | IP address of the Next |
| | | Hop to which IP packets | | | | Hop to which IP packets |
| | | should be forwarded | | | | should be forwarded |
+----------------------------------------------------------------------+ +----------------------------------------------------------------------+
| PROP_CPY_FORW | [PRT_ID] | Copy IP packets, treat |
| | | the duplicates per the |
| | | properties of the |
| | | referred port |
+----------------------------------------------------------------------+
| PROP_DROP | | Drop IP packet |
+----------------------------------------------------------------------+
| PROP_CONCAT | [PRT_ID] | Include treatment per |
| | | the referred port into |
| | | the rule |
+----------------------------------------------------------------------+
| Optional Properties |
+----------------------------------------------------------------------+
| PROP_NSH | [SERVICE_PATH_ID] | Include NSH |
| | [Service Index] | |
+----------------------------------------------------------------------+
Figure 6: Protocol Attributes: Properties Figure 7: Model I Protocol Attributes: Traffic Treatment Properties
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| Attribute | Format Clarification | Description | | Attribute | Format Clarification | Description |
+=====================================================================+ +=====================================================================+
| Property-specific | | Protocol-specific |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| IPIP_CONF | | IP-encapsulation | | IPIP_CONF | | IP-encapsulation |
| | | configuration attribute | | | | configuration attribute |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| GRE_CONF | [prototype][seq-#] | GRE_encapsulation | | GRE_CONF | [prototype][seq-#] | GRE_encapsulation |
| | [key] | configuration attribute | | | [key] | configuration attribute |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| GTP_CONF | [TEID_local] | GTP-U encapsulation | | GTP_CONF | [TEID_local] | GTP-U encapsulation |
| | [TEID_remote] | configuration attribute | | | [TEID_remote] | configuration attribute |
| | [seq-#] | | | | [seq-#] | |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| QOS_GBR | [GBR] *[PRT_ID] | Guaranteed Bit Rate and |
| | | single or multiple PRT_IDs |
| | | to which the GBR applies |
| | | when being aggregated |
+----------------+----------------------+-----------------------------+
| QOS_MBR | [MBR] *[PRT_ID] | Maximum Bit Rate and single |
| | | or multiple PRT_IDs to which|
| | | the MBR applies when being |
| | | aggregated |
+----------------+----------------------+-----------------------------+
Figure 7: Protocol Attributes: Property-specific Figure 8: Model I Protocol Attributes: Protocol-specific
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| Attribute | Format Clarification | Description | | Attribute | Format Clarification | Description |
+=====================================================================+ +=====================================================================+
| Rules | | Traffic Descriptor Container |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_DST_IP | [IP address] | Aggregated or per-host dst | | TD_CONTAINER | [PRT_TD_ID] | Traffic handling priority, |
| | [8, PRIO] | One or multiple traffic |
| |*[traffic descriptor] | descriptors |
+---------------------------------------------------------------------+
Figure 9: Protocol Attributes: Traffic Description Container
+---------------------------------------------------------------------+
| Attribute | Format Clarification | Description |
+=====================================================================+
| Traffic Descriptors |
+---------------------------------------------------------------------+
| TD_DST_IP | [IP address] | Aggregated or per-host dst |
| | [Prefix Len] | IP address/prefix rule | | | [Prefix Len] | IP address/prefix rule |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_SRC_IP | [IP address] | Aggregated or per-host src | | TD_SRC_IP | [IP address] | Aggregated or per-host src |
| | [Prefix Len] | IP address/prefix rule | | | [Prefix Len] | IP address/prefix rule |
+---------------------------------------------------------------------+ +---------------------------------------------------------------------+
| RULE_TS | [Traffic Selector] | Traffic Selector based rule,| | TD_TS | [Traffic Selector] | Traffic Selector, |
| | | Format as per RFC6088 | | | | Format as per RFC6088 |
+----------------+----------------------+-----------------------------+ +----------------+----------------------+-----------------------------+
Figure 8: Protocol Attributes: Rules Figure 10: Protocol Attributes: Traffic Descriptors
4.3. Protocol Operation +----------------------------------------------------------------------+
| Attribute | Format Clarification | Description |
+======================================================================+
| Properties |
+----------------------------------------------------------------------+
| ADMIN_STATE | [state] | Administrative state: |
| | | enabled, disabled, |
| | | virtual |
+----------------------------------------------------------------------+
| SESSION_STATE | [state] | Session state: complete,|
| | | incomplete, outdated |
+----------------------------------------------------------------------+
| CLONE_REF | [PRT_ID] | Cloning of a rule based |
| | | on referred port ID |
+----------------------------------------------------------------------+
| ACT_DELAY | [delay] | Delay in ms before an |
| | | updated rule takes |
| | | effect at the Agent |
+----------------------------------------------------------------------+
| PRT_BIDIR | [boolean] | When set, the rule per |
| | | this port is applied |
| | | bi-directionally |
+----------------------------------------------------------------------+
| RESULT | [result] | Result of processing |
| | | a message: |
| | | success, failure |
+----------------------------------------------------------------------+
Figure 11: Protocol Attributes: Administrative Properties
+----------------------------------------------------------------------+
| Attribute | Format Clarification | Description |
+======================================================================+
| Monitors and Notification |
+----------------------------------------------------------------------+
| MONITOR | Monitor-ID Attribute | A Monitor |
| | [REPORT CONFIG] | |
+----------------------------------------------------------------------+
| REPORT_CONFIG | [8, REPORT-TYPE] | The type of report and |
| | [TYPE_SPECIFIC_INFO] | type-specific |
| | | configurations |
+----------------------------------------------------------------------+
| PERIODIC_CONFIG | [32, period] | REPORT-TYPE is PERIODIC, |
| | | period specifies the |
| | | report interval (ms) |
+----------------------------------------------------------------------+
| THRESHOLD_CONFIG | [32, low] | REPORT-TYPE is THRESHOLD, |
| | [32, hi] | Low Threshold, |
| | | High Threshold (at least |
| | | one value required) |
+----------------------------------------------------------------------+
| SCHEDULED_CONFIG | [32, time] | REPORT-TYPE is SCHEDULED, |
| | | Time when NOTIFY is sent |
| | | |
+----------------------------------------------------------------------+
| EVENTS_CONFIG | *[EVENT_TYPE_ID] | List of Events that |
| | | trigger the Monitor |
+----------------------------------------------------------------------+
| DEREG_INFO | *[MONITOR_ID] | Monitors to deregister, |
| | [boolean] | Boolean (optional) |
| | | indicates if a successful |
| | | DEREG triggers a NOTIFY |
| | | with final data |
+----------------------------------------------------------------------+
| NOTIFY_INFO | [32, Notification-Id] |ID used for Client ordering|
| | [MONITOR-ID] |Monitor-ID of the NOTIFY, |
| | [32, TRIGGER] |TRIGGER for the NOTIFY, |
| | [32, timestamp] |Timestamp of when the |
| | |attributes were recorded |
+----------------------------------------------------------------------+
Figure 12: Protocol Attributes: Monitor and Notify Attributes
TRIGGERS include but are not limited to the following values:
o Events specified in the Event List of an EVENTS CONFIG
o LOW_THRESHOLD_CROSSED
o HIGH_THRESHOLD_CROSSED
o PERIODIC_REPORT
o SCHEDULED_REPORT
o PROBED
o DEREG_FINAL_VALUE
4.3. Protocol Messages and Semantics
The following table specifies all protocol messages to create and
modify a rule by creating and deleting logical Ports, adding and
modifying properties and binding traffic descriptors to a port.
Furthermore, messages can schedule tasks, such as monitoring, at an
Agent or probe the status of the scheduled task from a Client.
Additional messages enable the Data-Plane to notify or query the
Control-Plane through the Agent and Client functions.
+---------------------------------------------------------------------+
| Message | Description |
+=====================================================================+
| Messages issued by the FPC Client |
+---------------------------------------------------------------------+
| PRT_ADD | Add a logical port |
+---------------------------------------------------------------------+
| PRT_DEL | Delete a logical port |
+---------------------------------------------------------------------+
| PROP_ADD | Add a property to a logical port |
+---------------------------------------------------------------------+
| PROP_MOD | Modify a property of a logical port |
+---------------------------------------------------------------------+
| PROP_DEL | Delete a property from a logical port |
+---------------------------------------------------------------------+
| TD_ADD | Add traffic descriptor to a logical port |
+---------------------------------------------------------------------+
| TD_MOD | Modify an existing traffic descriptor |
+---------------------------------------------------------------------+
| TD_DEL | Delete an existing traffic descriptor |
+---------------------------------------------------------------------+
| MONITOR_REG | Install a monitor at an Agent. The message |
| | includes information about the attribute to |
| | monitor and the reporting method. |
+---------------------------------------------------------------------+
| MONITOR_DEREG | Remove a monitor at an Agent. |
+---------------------------------------------------------------------+
| PROBE | Probe the status of a registered event |
+---------------------------------------------------------------------+
| Messages issued by the FPC Agent |
+---------------------------------------------------------------------+
| | Notify the Client about the status of a |
| NOTIFY | monitored attribute per the reporting method |
| | (periodic / event trigger / probed) |
+---------------------------------------------------------------------+
| QUERY | Query the Client about missing rules/states |
+---------------------------------------------------------------------+
Figure 13: Protocol Messages
4.4. Protocol Operation
The following list comprises a more detailed description of each The following list comprises a more detailed description of each
message's semantic. message's semantic.
An FPC Client and Agent MUST identify themself using the CLI_ID and
AGT_ID respectively to ensure that for all transactions a recipient
of an FPC message can unambiguously identify the sender of the FPC
message. A Client MAY direct the Agent to enforce a rule in a
particular DPN by including a DPN_ID value. Otherwise the Agent
selects a suitable DPN to enforce a rule and notifies the Client
about the selected DPN using the DPN_ID.
o PRT_ADD - Issued by a Client to add a new logical port at an o PRT_ADD - Issued by a Client to add a new logical port at an
Agent, to which traffic can be directed. An Agent receiving the Agent. An Agent receiving the PRT_ADD message identifies the new
PRT_ADD message should identify the new logical port according to port according to the included port identifier (PRT_ID). The
the included port identifier (PRT_ID). The Agent should add a new Agent adds a new port into its conceptual data structures using
logical port into its conceptual data structures using the port the port identifier as key. Optionally, the PRT_ADD message MAY
identifier as key. Optionally, the PRT_ADD message can include include properties as well as traffic descriptors, which are bound
property descriptions as well as rules descriptions, which are and refer to the new port. This enables a Client to issue a new
bound and refer to the new logical port. This enables a Client to configuration in a single transaction with an Agent. A Client MAY
issue a new configuration in a single transaction with an Agent. assign a port to a group of ports and indicate the associated port
group identifier (PRT_GROUP_ID) in the PRT_ADD message.
o PRT_DEL - Used by a Client to delete an existing logical port. An o PRT_DEL - Used by a Client to delete a port. An Agent receiving
Agent receiving such message should delete all properties such message MUST delete all properties associated with the
associated with the identified port. identified port.
o PROP_ADD - Used by the Client to add a new property to an existing o PROP_ADD - Used by the Client to add a new property to an existing
logical port. The property is unambiguously identified through a port. The property is unambiguously identified through a property
property identifier (PRT_PROP_ID). All traffic, which is directed identifier (PRT_PROP_ID). All traffic, which is directed to this
to this logical port, experiences the existing and newly added port is treated according to the existing and newly added
property. Optionally, the PROP_ADD message can include rules property. Optionally, the PROP_ADD message can include traffic
descriptions, which refer to the port to which the properties are descriptors, which refer to the port to which the properties are
bound. This enables a Client to add new rules to the existing bound. This enables a Client to add new rules to the existing
port to which the new properties have been bound in a single port to which the new properties have been bound in a single
transaction. transaction.
o PROP_MOD - Used by a Client to modify an existing property. For o PROP_MOD - Used by a Client to modify an existing property. For
example, a tunnel property can be changed to direct traffic to a example, a tunnel property can be changed to direct traffic to a
different tunnel endpoint in case of an MN's handover. different tunnel endpoint in case of a mobile node's handover.
Optionally, the PROP_MOD message can include rules descriptions, Optionally, the PROP_MOD message can include rules descriptions,
which refer to the port whose properties are modified. This which refer to the port whose properties are modified. This
enables a Client to add new rules to the existing port whose enables a Client to add new rules to the existing port whose
properties have been modifier in a single transaction. properties have been modified in a single transaction.
o PROP_DEL - Used by a Client to delete one or multiple properties, o PROP_DEL - Used by a Client to delete one or multiple properties,
each being identified by a property identifier. each being identified by a property identifier.
o RULE_ADD - Used by a Client to add a forwarding rule and direct o TD_ADD - Used by a Client to add a traffic descriptor to a port.
traffic towards a logical port. The rule add command must The traffic descriptor SHOULD unambiguously identify aggregated
unambiguously identify aggregated traffic (longest prefix), per traffic (longest prefix), per host IP traffic or per-flow traffic
host IP traffic or per-flow traffic in the RULE_ADD command and in the TD_ADD command and bind the identified traffic to a port.
bind the identified traffic to a logical port. An Agent receiving Traffic descriptors are carried in a TD_CONTAINER, which allows
a RULE_ADD command must add the rule to its local conceptual data the identification of a traffic description as well as the
structures and apply commands for local configuration to add the indication if a traffic handling priority in case the sole traffic
new forwarding rule on the DPN. Multiple forwarding rules, each description does not suffice unambiguous traffic matching. An
identifying different traffic, can direct traffic to the same Agent receiving a TD_ADD command MUST add the traffic descriptor
logical port. All traffic being directed to this logical port to its local conceptual data structures and apply commands for
will then experience the same properties. local configuration to add the new traffic descriptor to the rule
on the DPN. Multiple traffic descriptors can bind to the same
port. All traffic captured by the traffic descriptor will
experience the same treatment per the properties which bind to
that port.
o RULE_MOD - Used by a Client to modify an existing forwarding rule. o TD_MOD - Used by a Client to modify an existing traffic
An Agent receiving such message should apply commands for local descriptor. An Agent receiving such messages MUST apply commands
configuration to update the forwarding rule on the DPN. to the local configuration and update the rule on the DPN
accordingly.
o RULE_DEL - Used to delete an existing forwarding rule on a DPN. o TD_DEL - Used to remove an existing traffic descriptor from a
The Agent receiving such message should delete the rules from its port. The Agent receiving such messages MUST delete the
local conceptual data structures and apply commands for local identified traffic descriptor from the local configuration and
configuration to remove the forwarding rule on the DPN. update the rule on the DPN accordingly.
o EVENT_REG - Used by a Client to register an attribute, which is to o MONITOR_REG - Used by a Client to install a monitor at an Agent.
be monitored, at an Agent. The EVENT_REG provides an attribute to A monitor contains the monitor id, attribute to monitor, and
the Agent as well as a reporting kind. The Agent should register optional reporting configuration. The attribute may be any ID
the event and an event identifier in the local conceptual data with the exception of MONITOR_ID and EVENT_TYPE_ID. When a
structures. The Agent should start monitoring the registered Monitor registration is applied, the reporting configuration MUST
attribute (e.g. load) and notify the Client about the status be applicable to the attribute monitored, e.g. a Monitor using a
according to the registered reporting kind (periodic, event Threshold configuration cannot be applied to a Port but it can be
trigger, probed). In case of a periodic reporting kind, the Agent applied to a numeric Port Property. Four report types are
should report the status of the attribute each configured interval defined: (1) Periodic reporting specifies an interval by which a
using a NOTIFY message. The reporting interval is provided with NOTIFY is sent to the Client, (2) Event reporting specifies a list
the EVENT_REG message. In case of an event triggered reporting of EVENT_TYPE_IDs that, if they occur and are related to the
kind, the Agent should report the status of the attribute in case monitored attribute, will result in sending a NOTIFY to the
of a triggered event, e.g. the monitored attribute's value exceeds Client, (3) Scheduled reporting specifies the time (in seconds
a given threshold. The threshold is provided with the EVENT_REG since Jan 1, 1970) when a NOTIFY for the monitor should be sent to
message. In case of probed reporting, the Agent receives a PROBE the Client. Once this Monitor's NOTIFY is completed the Monitor
message and should report the status of a monitored attributes to is automatically de-registered, (4) Threshold reporting specifies
the Client by means of a NOTIFY message. one or both of a low and high threshold. When these values are
crossed a corresponding NOTIFY is sent to the Client. All
monitored data can be requested by the Client at any time using
the PROBE message. Thus, reporting configuration is optional and
when not present only PROBE messages may be used for monitoring.
If a SCHEDULED or PERIODIC configuration is provided during
registration with the time related value (time or period
respectively) of 0 a NOTIFY is immediately sent and the monitor is
immediately de-registered. This method should when a MONITOR has
not been installed, an immediate NOTIFY is sufficient for the
Client's needs and the Client has no further need for the monitor
to be registered. An Agent may reject a registration if it or the
DPN has insufficient resources.
o MONITOR_DEREG - Used by a Client to remove a monitor from an
Agent. The message identifies one or multiple monitors by
including the MONITOR_ID. The message also includes an optional
Boolean value that, when true, will result in NOTIFY messages
being sent for the MONITOR_ID to the Client. When a monitor has a
reporting configuration of SCHEDULED it is automatically de-
registered after the NOTIFY occurs. An Agent or DPN may
temporarily suspend monitoring if insufficient resources exist.
In such a case the Agent MUST notify the Client.
o PROBE - Used by a Client to retrieve information about a o PROBE - Used by a Client to retrieve information about a
previously registered event. The PROBE message should identify previously installed monitor. The PROBE message SHOULD identify
one or more events by means of including the associated event one or more monitors by means of including the associated monitor
identifier. An Agent receiving a PROBE message should send the identifier. An Agent receiving a PROBE message SHOULD send the
requested information for each event in a single or multiple requested information in a single or multiple NOTIFY messages.
NOTIFY messages.
o NOTIFY - Used by an Agent to report the status of an event to a o NOTIFY - Used by an Agent to report the status of a monitor to a
Client. Client. This message contains the MONITOR_ID, a NOTIFICATION_ID
to permit the Client to distinguish amongst many monitoring
related requests, a TRIGGER that caused the NOTIFY message, the
timestamp of when the monitored information was record for the
message along with the value of the monitored attribute.
o QUERY - Used by an Agent to request an update of logical port o QUERY - Used by an Agent to request an update of port properties
properties via a Client. via a Client. The Agent adds one or multiple port identifiers to
the QUERY message to request all properties associated with the
identified port(s). The Agent MAY request the update of
particular properties associated with a port by including the
property and its identifier. As result of processing a QUERY
message, the Client sends one or multiple PROP_MOD messages with
the requested properties to the Agent.
The following list provides some information on the use and semantics All messages sent from a Client to an Agent MUST be acknowledged by
of attributes: the Agent. The response must include all attributes as well as
status information, which indicates the result of processing the
message, using the RESULT property. In case the processing of the
message results in a failure, the Agent sets the RESULT accordingly
and MAY clear the property or traffic descriptor, which caused the
failure, in the response.
A Client MAY add a property to a port without providing all required
details of the attribute's value. In such case the Agent SHOULD
determine the missing details and provide the completed property
description back to the Client. In case the Agent cannot determine
the missing value of an attribute's value per the Client's request,
it leaves the attribute's value cleared in the response and sets the
RESULT to failure. As example, the Control-Plane needs to setup a
tunnel configuration in the Data-Plane but has to rely on the Agent
to determine the tunnel endpoint which is associated with the DPN
that enforces the rule. The Client adds the tunnel property
attribute to the FPC message and clears the value of the attribute
(e.g. IP address of the local tunnel endpoint). The Agent
determines the tunnel endpoint and includes the completed tunnel
property in its response to the Client.
The following list provides information on the use and semantics of
attributes for traffic treatment:
o PROP_TUN - Defines the properties for encapsulation into different o PROP_TUN - Defines the properties for encapsulation into different
tunnel headers. The property includes IP address information of tunnel headers. The property includes IP address information of
tunnel endpoints as well as a type identifier to select the tunnel endpoints as well as a type identifier specifying the
encapsulation type. Further attributes may be included to provide encapsulation type. Further attributes may be included to provide
information which is relevant for the configuration and information which is relevant for the configuration and
initialization of the tunnel. initialization of the tunnel.
o PROP_REWR - Defines the properties for IP address and port re- o PROP_REWR - Defines the properties for IP address and port re-
write. write.
o PROP_QOS - Defines the QoS properties in terms of a known index o PROP_QOS - Defines the QoS properties in terms of a known index
type, e.g. LTE's Quality Class Index (QCI), and its value (QCI type, e.g. LTE's Quality Class Index (QCI), and its value (QCI
1..9), as well as a Differentiated Services Code Point (DSCP) to 1..9), as well as a Differentiated Services Code Point (DSCP) to
classify and mark packets. Additional attributes may follow, e.g. classify and mark packets. Additional QoS attributes may follow,
as sub-options, to define Guaranteed Bit Rate (GBR) and Maximum to define Guaranteed Bit Rate (GBR) and Maximum Bit Rate (MBR)
Bit Rate (MBR) bounds. GBR and MBR attributes can apply to a bounds. PROP_QOS_GBR and PROP_QOS_MBR attributes can apply to a
single port or multiple ports. The latter is required to single port or multiple ports. The latter is required to
configure aggregate bounds, such as Aggregate Maximum Bit Rate configure aggregate bounds, such as Aggregate Maximum Bit Rate
(AMBR), taking traffic, which is forwarded through different ports (AMBR), taking traffic, which is forwarded through different ports
(hence experiencing different treatment), into account. In such (hence experiencing different treatment), into account. In such
case the GBR/MBR attributes append multiple PRT_ID attributes to case the GBR/MBR attributes append multiple PRT_ID attributes to
identify the ports which are to be monitored to determine the identify the ports which are to be monitored to determine the
aggregated view of the bit rate. The scope of attributes for QoS aggregated view of the bit rate. As alternative to binding a
is aligned to [RFC7222]. The Allocation and Retention Priority PROP_QOS_MBR property to each port whose traffic is to be taken
(ARP) as per [RFC7222] is not present in the list of QoS-specific into account for Aggregate Maximum Bitrate (AMBR) metering, a
Client can create a separate port with a single PROP_QOS_MBR
property. Other ports, whose traffic is to be metered per the
AMBR, can refer to the port with the PROP_QOS_MBR property using
the PROP_CONCAT property. The scope of attributes for QoS is
aligned to [RFC7222]. The Allocation and Retention Priority (ARP)
as per [RFC7222] is not present in the list of QoS-specific
attributes, since ARP is treated and kept in the Control-Plane for attributes, since ARP is treated and kept in the Control-Plane for
granting requests for new resources and QoS, as well as for granting requests for new resources and QoS, as well as for
preempting other QoS configuration, if needed. preempting other QoS configuration, if needed.
o PROP_QOS_GBR - Defines the GBR bound for traffic associated with a
port.
o PROP_QOS_MBR - Defines the MBR bound for traffic associated with a
port.
o PROP_GW - Defines a Next Hop IP address, to which packets are o PROP_GW - Defines a Next Hop IP address, to which packets are
forwarded. Using this attribute, the Control-Plane can configure forwarded. Using this attribute, the Control-Plane can configure
a host-route in the Data-Plane to deviate from default routes. a host-route in the Data-Plane to deviate from default routes.
Figure 9 illustrates an exemplary session life-cycle based on Proxy o PROP_CPY_FORW - Refers to a different port and results in
treatment of a copy of packets per the properties bound to the
referred port.
o PROP_DROP - Defines a treatment action to drop packets of traffic
associated with a port. As example, this treatment action can be
used to enforce gating rules and filter traffic which does not
match any traffic descriptor.
o PROP_CONCAT - Traffic can be treated per properties bound to
concatenated ports. After treatment of traffic according to the
properties of a port, additional treatment actions per the
properties bound to a separate port, which is referred to in the
PROP_CONCAT property, apply to the traffic. As example, port
concatenation can be used to enable AMBR metering to traffic which
is associated with multiple other ports.
o PROP_NSH - Defines the properties for a Network Service Header
(NSH). The header is included to the classified IP flows.
Unlike descriptors, overlapping or contradictory properties cannot be
resolved by the Agent. For example, adding address translation
related properties and a Drop property to a single port may result in
needless activity in the DPN or it may reflect a temporary
administrative activity where the port must Drop traffic. Other
properties may be intentionally set, e.g. a property that invokes and
accounting activity and a Drop property present on the same port.
The FPC Client MUST avoid situations where contradictory properties
or those that result in unnecessary activity are added to ports.
Rather, in such situations, multiple ports MUST be used. In some
obvious cases the Agent MAY raise a warning but a contradictory
action.
The following list provides information on the use and semantics of
administrative properties:
o ADMIN_STATE - A Client can apply an administrative state to a port
indicating the desired operational status of a port (enabled,
disabled, virtual). An Agent, which receives a message without
ADMIN_STATE property, SHOULD consider the port to be 'enabled'.
o SESSION_STATE - A Client can indicate to the Agent the status of a
rule to serve Data-Plane traffic. A session state 'complete'
confirms that a rule is valid and ready to serve Data-Plane
traffic. A session state 'incomplete' hints to the Agent that
more FPC message will arrive from the Client to complete a rule,
whereas session state 'outdated' requires the Agent to solicit an
update of the rule from the Client in case a rule with session
state 'complete' is desired. An Agent, which receives a message
without SESSION_STATE property, SHOULD assume the session state is
'complete'.
o CLONE_REF - Instead of repeatedly sending all properties and
traffic descriptors for similar rules, a Client can take a clone
of a previously configured rule as base for a new one by using the
CLONE_REF property with a PRT_ADD message and refer to an existing
port. The cloned port will be a copy of the referred port and
serve as base for the new port. The cloned port will have its own
port identifier, which will also be present in the port identifier
portion of the property identifiers. After a cloned port has been
created, it represents its own rule without any further dependency
on the reference port which served as source to create the clone.
A Client MAY apply updates to existing properties of the new port,
as well as delete or add properties. Updates to the port in terms
of new or changed properties and traffic descriptors MAY already
come with the PRT_ADD message or subsequently using messages to
handle properties and traffic descriptors. A Client can use the
CLONE_REF property with messages to handle properties and traffic
descriptors to achieve a different result. In such case these
messages identify an existing port already and processing the
CLONE_REF property on the receiving Agent will result in a reset
of the identified port to match the properties of the port
referred to in the CLONE_REF property.
o ACT_DELAY - A Client can use this property to define a delay in ms
before an updated rule takes effect at an Agent, e.g. an
administrative state 'enabled' will be enforced by the Agent after
the delay per the Client's request.
o PRT_BIDIR - A Client uses this property to indicate to an Agent to
apply a rule associated with a port bi-directionally. In case the
PRT_BIDIR property is absent in a message, the Agent assumes a
rule applies uni-directionally.
o RESULT - An Agent uses this property to signal to the Client in a
response the result of processing a message.
Figure 14 illustrates an exemplary session life-cycle based on Proxy
Mobile IPv6 registration via MAG Control-Plane function 1 (MAG-C1) Mobile IPv6 registration via MAG Control-Plane function 1 (MAG-C1)
and handover to MAG Control-Plane function 2 (MAG-C2). Edge DPN1 and handover to MAG Control-Plane function 2 (MAG-C2). Edge DPN1
represents the Proxy CoA after attachment, whereas Edge DPN2 serves represents the Proxy CoA after attachment, whereas Edge DPN2 serves
as Proxy CoA after handover. as Proxy CoA after handover. As exemplary architecture, the FPC
Agent and the network control function are assumed to be co-located
with the Anchor-DPN, e.g. a Router.
+-------Router--------+ +-------Router--------+
+-----------+ |+-------+ +---------+| +-----------+ |+-------+ +---------+|
+------+ +------+ +-----+ FPC | | FPC | | Anchor | +------+ +------+ +-----+ FPC | | FPC | | Anchor |
|MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN |
+------+ +------+ +-----+-------+ +-------+ +---------+ +------+ +------+ +-----+-------+ +-------+ +---------+
[MN attach] | | | | [MN attach] | | | |
|-------------PBU----->| | | |-------------PBU----->| | |
| | |----(1)-PRT_ADD---------->| | | | |----(1)-PRT_ADD---------->| |
| | | [PRT_ID] | | | | | [PRT_ID] | |
| | | | | | | | | |
| | |--(2)---PROP_ADD--------->| | | | |--(2)---PROP_ADD--------->| |
| | | [PROP_ID,PROP_TUN] |--tun1 up->| | | | [PRT_ID,PROP_TUN] |--tun1 up->|
| | | | | | | | | |
| | |--(3)---PROP_ADD--------->| | | | |--(3)---PROP_ADD--------->| |
| | | [PROP_ID,PROP_QOS] |--tc qos-->| | | | [PRT_ID,PROP_QOS] |--tc qos-->|
|<------------PBA------|--(4)----RULE_ADD-------->| | |<------------PBA------|--(4)----TS_ADD---------->| |
| +----+ | | [HNP,PRT_ID] |-route add>| | +----+ | | [PRT_ID, |-route add>|
| |Edge| | | | | | |Edge| | | TD_CONTAINER(HNP)] | |
| |DPN1| | | | | | |DPN1| | | | |
| +----+ | | | | | +----+ | | | |
| | | | | |
| |-=======================================================-| | |-=======================================================-|
| | | | | | | |
| [MN handover] | | | | [MN handover] | | |
| |---PBU ---->| | | | |---PBU ---->| | |
| | |--(5)---PROP_MOD--------->| | | | |--(5)---PROP_MOD--------->| |
| |<--PBA------| [PROP_ID,PROP_TUN] |-tun1 mod->| | |<--PBA------| [PRT_ID,PROP_TUN] |-tun1 mod->|
| | | | | | | | | |
| | +----+ | | | | | +----+ | | |
| | |Edge| | | | | | |Edge| | | |
| | |DPN2| | | | | | |DPN2| | | |
| | +----+ | | | | | +----+ | | |
| | | | | | | | | | | |
| | |-============================================-| | | |-============================================-|
| | | | | | | | | |
Figure 9: Exemplary Message Sequence (focus on FPC reference point) Figure 14: Exemplary Message Sequence (focus on FPC reference point)
After reception of the Proxy Binding Update (PBU) at the LMA Control- After reception of the Proxy Binding Update (PBU) at the LMA Control-
Plane function (LMA_C), the LMA-C selects a suitable DPN, which Plane function (LMA_C), the LMA-C selects a suitable DPN, which
serves as Data-Plane anchor to the MN's traffic. The LMA-C adds a serves as Data-Plane anchor to the mobile node's (MN) traffic. The
new logical port to the DPN to treat the MN's traffic (1) and LMA-C adds a new logical port to the DPN to treat the MN's traffic
includes a Port Identifier (PRT_ID) to the PRT_ADD command. The (1) and includes a Port Identifier (PRT_ID) to the PRT_ADD command.
LMA-C identifies the selected Anchor DPN by including the associated The LMA-C identifies the selected Anchor DPN by including the
DPN identifier. associated DPN identifier.
Subsequently, the LMA-C adds properties to the new logical port. One Subsequently, the LMA-C adds properties to the new port. One
property is added (2) to specify the forwarding tunnel type and property is added (2) to specify the forwarding tunnel type and
endpoints (Anchor DPN, Edge DPN1). Another property is added (3) to endpoints (Anchor DPN, Edge DPN1). Another property is added (3) to
specify the QoS differentiation, which the MN's traffic should specify the QoS differentiation, which the MN's traffic should
experience. At reception of the properties, the FPC Agent calls experience. At reception of the properties, the FPC Agent utilizes
local router commands to enforce the tunnel configuration (tun1) as local configuration commands to create the tunnel (tun1) as well as
well as the traffic control (tc) for QoS differentiation. After the traffic control (tc) to enable QoS differentiation. After
configuration of port properties have been completed, the LMA can configuration of port properties have been completed, the LMA binds
configure the enforcement of the MN's traffic by adding a rule the traffic description for the MN's traffic to the port by sending a
(RULE_ADD) to forward traffic destined to the MN's HNP to the new TS_CONTAINER to the Agent and identifying the MN's Nome Network
logical port (4). At the reception of the forwarding rule, the Agent Prefix (HNP) in the traffic descriptor. At the reception of the
applies a new route to forward all traffic destined to the MN's HNP traffic descriptor, the Agent applies a new route to forward all
to the configured tunnel interface (tun1). traffic destined to the MN's HNP to the configured tunnel interface
(tun1).
During handover, the LMA-C receives an updating PBU from the handover During handover, the LMA-C receives an updating PBU from the handover
target MAG-C2. The PBU refers to a new Data-Plane node (Edge DPN2) target MAG-C2. The PBU refers to a new Data-Plane node (Edge DPN2)
to represent the new tunnel endpoint. The LMA-C sends a PROP_MOD to represent the new tunnel endpoint. The LMA-C sends a PROP_MOD
message (5) to the Agent to modify the existing tunnel property of message (5) to the Agent to modify the existing tunnel property of
the existing logical port and to update the tunnel endpoint from Edge the existing port and to update the tunnel endpoint from Edge DPN1 to
DPN1 to Edge DPN2. At reception of the PROP_MOD message, the Agent Edge DPN2. Upon reception of the PROP_MOD message, the Agent applies
applies local configuration commands to modify the tunnel. updated tunnel property to the local configuration.
To reduce the number of protocol handshakes between the LMA-C and the To reduce the number of protocol handshakes between the LMA-C and the
DPN, the LMA-C can append property (PROP_TUN, PROP_QOS) and rules DPN, the LMA-C can append properties (PROP_TUN, PROP_QOS) and traffic
(prefix info HNP) attributes to the PRT_ADD message, as illustrated descriptor attributes to the PRT_ADD message, as illustrated in
in Figure 10 Figure 15.
+-----------+ +-------+ +---------+ +-----------+ +-------+ +---------+
+------+ +------+ +-----+ FPC | | FPC | | Anchor | +------+ +------+ +-----+ FPC | | FPC | | Anchor |
|MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN |
+------+ +------+ +-----+-------+ +-------+ +---------+ +------+ +------+ +-----+-------+ +-------+ +---------+
[MN attach] | | | | [MN attach] | | | |
|-------------PBU----->| | | |-------------PBU----->| | |
| | |----(1)-PRT_ADD----------->| | | | |----(1)-PRT_ADD----------->| |
| | | [PRT_ID,PROP_ID,PROP_TUN, |--tun1 up->| | | | [PRT_ID,PROP_TUN, |--tun1 up->|
|<------------PBA------| PROP_ID,PROP_QOS, |--tc qos-->| |<------------PBA------| PROP_QOS, |--tc qos-->|
| | | HNP] |-route add>| | | | TS_CONTAINER(HNP)] |-route add>|
| [Edge]-=====================================================-| | [Edge]-=====================================================-|
| [DPN1| | | | | | [DPN1| | | | |
| | | | | | | | | |
| [MN handover] | | | | [MN handover] | | |
| |---PBU ---->| | | | |---PBU ---->| | |
| | |---------PROP_MOD--------->| | | | |---------PROP_MOD--------->| |
| |<--PBA------| [PROP_ID,PROP_TUN] |-tun1 mod->| | |<--PBA------| [PRT_ID,PROP_TUN] |-tun1 mod->|
| | | | | | | | | |
| | [Edge]-===========================================-| | | [Edge]-===========================================-|
| | [DPN2] | | | | | [DPN2] | | |
Figure 10: Example: Sequence for Message Aggregation (focus on FPC Figure 15: Example: Sequence for Message Aggregation (focus on FPC
reference point) reference point)
5. Conceptual Data Structures 5. Protocol to support Model II
An FPC Client must keep record about the logical ports, each port's 5.1. Protocol Attributes
properties as well as configured rules as per the Mobility Control-
Plane function's request. Such information must be maintained for
each Agent, with which the Client communicates. In case the Mobility
Control-Plane function identifies a particular DPN at which the
policies should be enforced, the Client must associate the DPN
identifier with the logical port configuration.
According to the FPC Agent's role, the Agent translates the +---------------------------------------------------------------------+
generalized model for policy configuration and forwarding rules into | Attribute | Format | Description |
semantics and commands for local configuration, which is specific to +=====================================================================+
a DPN. Keeping a local record of DPN configuration attributes/values | IP Tunnel Attributes |
is implementation specific and out of scope of this document. +---------------------------------------------------------------------+
|TUN_SRC_IP_ADDR |[IP address] | Tunnel Source IP |
| | | |
+---------------------------------------------------------------------+
|TUN_DST_IP_ADDR |[IP address] | Tunnel Destination IP |
| | | |
+---------------------------------------------------------------------+
|TUN_ENCAP_TYPE |[ENCAP_GRE, ENACP_UDP,| Encapsulation Type |
| | ENCAP_IP] | |
+---------------------------------------------------------------------+
|TUN_TYPE_UDP |[SRC_PRT, DST_PRT] | UDP Direction - Source |
| | | or Destination |
+---------------------------------------------------------------------+
|TUN_TYPE_GRE |[UPLINK_GRE_KEY, | GRE Tunnel Type |
| | DOWNLINK_GRE_KEY] | |
+---------------------------------------------------------------------+
|TUN_IF_MTU |[MTU] | Tunnel Interface MTU |
| | | |
+---------------------------------------------------------------------+
|TUN_PAYLOAD_TYPE |[PAYLOAD_IPV4, | Tunnel Payload Type |
| | PAYLOAD_IPV6, | |
| | PAYLOAD_DUAL] | |
+---------------------------------------------------------------------+
|TUN_VENDOR_SPEC_PARAM|[OPAQUE] | Tunnel Vendor Specific |
| | | Parameters |
+---------------------------------------------------------------------+
| Route Management Attributes |
+---------------------------------------------------------------------+
|INPUT_IF |[IF_INDEX] |Input Interface |
| | | |
+---------------------------------------------------------------------+
|OUTPUT_IF |[IF_INDEX] |Output Interface |
| | | |
+---------------------------------------------------------------------+
|NEXT_HOP_IP_GW_ADDR |[IP address] |Next Hop IP Gateway |
| | |Address |
+---------------------------------------------------------------------+
|TRAFFIC_SELECTOR_ACL |TBD | |
| | | |
+---------------------------------------------------------------------+
|DST_IP_SUBNET |[IP prefix] |Destination IP Subnet |
| | | |
+---------------------------------------------------------------------+
|DST_IP_SUBNET_MASK |[IP prefix] |Destination IP Subnet |
| | |Mask |
+---------------------------------------------------------------------+
| QoS Attributes |
+---------------------------------------------------------------------+
|AMBR |[Unsigned Integer |Aggregate Maximum |
| | (32 bit)] |Bitrate |
+---------------------------------------------------------------------+
|GBR |[Unsigned Integer |Guaranteed Bitrate |
| | (32 bit)] | |
+---------------------------------------------------------------------+
|TCLASS |[Unsigned Integer |Traffic Class |
| | (32 bit)] | |
+---------------------------------------------------------------------+
|TFT |TBD |Traffic Flow Template |
| | | |
+---------------------------------------------------------------------+
| Optional Attributes |
+---------------------------------------------------------------------+
|NSH_HEADER |[Service Path Id] |NSH Header |
| | Service Index, TFT] | |
+---------------------------------------------------------------------+
Description of detailed data structures and information to be Figure 16: Model II Protocol Attributes: Traffic Treatment
recorded and maintained by an FPC Client and an FPC Agent are TBD and
will be added to a revision of this initial document.
6. Security Considerations +---------------------------------------------------------------------+
| Attribute | Format | Description |
+=====================================================================+
| Identifier |
+---------------------------------------------------------------------+
|TUNNEL_IF_ID |[IF_INDEX] |Tunnel Interface |
| | |Identifier |
+---------------------------------------------------------------------+
|VRF_ID |[Unsigned INT] |VRF Identifier |
+---------------------------------------------------------------------+
|PBR_ID |[Unsigned INT] |Policy Based Routing |
| | |Identifier |
+---------------------------------------------------------------------+
|CTRL_PLANE_ID |IP address |Control-Plane Identifier |
+---------------------------------------------------------------------+
|CONTEXT_ID |TBD |Context Identifier |
+---------------------------------------------------------------------+
|QOS_SERVICE_ID |[Unsigned INT] |QoS Service Identifier |
+---------------------------------------------------------------------+
|SESSION_ID |[Unsigned INT] |Session Identifier |
+---------------------------------------------------------------------+
|ROUTE_ID |[Unsigned INT] |Route Identifier |
+---------------------------------------------------------------------+
| Optional Identifiers |
+---------------------------------------------------------------------+
|SERVICE_PATH_ID |[24-bit identifier] |Service Path Identifier |
+---------------------------------------------------------------------+
Detailed protocol implementations for DMM Forwarding Policy Figure 17: Model II Protocol Attributes: Identifiers
Configuration must ensure integrity of the information exchanged
between an FPC Client and an FPC Agent. Required Security
Associations may be derived from co-located functions, which utilize
the FPC Client and FPC Agent respectively.
7. IANA Considerations 5.2. Protocol Messages and Semantics
This document provides an information model for DMM Forwarding Policy +---------------------------------------------------------------------+
Configuration. Detailed protocol specifications for DMM Forwarding | Message | Description |
Policy Configuration will follow the information model as per this +=====================================================================+
document and can be based on, for example, ReST-like or binary | Tunnel Interface Management |
protocol formats. Such protocol-specific details will be described +---------------------------------------------------------------------+
in separate documents and may require IANA actions. | CREATE_TUNNEL_IF | Create a Tunnel Interface |
+---------------------------------------------------------------------+
| DELETE_TUNNEL_IF | Delete a Tunnel Interface |
+---------------------------------------------------------------------+
| UPDATE_TUNNEL_PARAMETER | Update a parameter of the specified |
| | tunnel |
+---------------------------------------------------------------------+
| QUERY_TUNNEL_IF | Request Tunnel Interface information |
+---------------------------------------------------------------------+
| Policy Route Management |
+---------------------------------------------------------------------+
| CREATE_POLICY_ROUTE | Create a Policy-based Route |
+---------------------------------------------------------------------+
| DELETE_POLICY_ROUTE | Deletes a Policy-based Route |
+---------------------------------------------------------------------+
| ADD_TRAFFIC_SELECTOR | Adds a Traffic Selector to a Policy- |
| | based Route |
+---------------------------------------------------------------------+
| DELETE_TRAFFIC_SELECTOR | Removes a Traffic Selector from |
| | a Policy-based Route |
+---------------------------------------------------------------------+
| QUERY_POLICY_ROUTE | Request Policy Route information |
+---------------------------------------------------------------------+
| IP Route Management |
+---------------------------------------------------------------------+
| CREATE_IP_ROUTE | Create an IP Route |
+---------------------------------------------------------------------+
| DELETE_IP_ROUTE | Delete an IP Route |
+---------------------------------------------------------------------+
| QUERY_IP_ROUTE | Request IP Route information |
+---------------------------------------------------------------------+
| IP QoS Management |
+---------------------------------------------------------------------+
| ALLOCATE_QOS_RESOURCES | Allocates QoS Resources, e.g. AMBR, to |
| | the specified Session / Context |
+---------------------------------------------------------------------+
| DEALLOCATE_QOS_RESOURCES | Removes applies QoS Resources from |
| | the specified Session / Context |
+---------------------------------------------------------------------+
| Optional Management |
+---------------------------------------------------------------------+
| ADD_NSH_HEADER | Add NSH Header for the classified |
| | IP flows |
+---------------------------------------------------------------------+
| DELETE_NSH_HEADER | Remove NSH Header for the classified |
| | IP flows |
+---------------------------------------------------------------------+
8. Work Team Participants Figure 18: Model II Protocol Messages
Participants in the FPSM work team discussion include Satoru 5.3. Protocol Operation
Matsushima, Danny Moses, Sri Gundavelli, Marco Liebsch, Pierrick
Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred
Templin.
9. References The following list comprises a description of each message's
semantic.
9.1. Normative References o CREATE_TUNNEL_IF - Message can include TUN_SRC_IP_ADDR,
TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, TUN_TYPE_UDP,
TUN_TYPE_GRE, TUN_IF_MTU, TUN_PAYLOAD_TYPE, TUN_VENDOR_SPEC_PARAM,
VRF_ID, CTRL_PLANE_ID, CONTEXT_ID.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate o DELETE_TUNNEL_IF - Message can include TUN_SRC_IP_ADDR,
Requirement Levels", BCP 14, RFC 2119, March 1997. TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, CTRL_PLANE_ID,
CONTEXT_ID.
[RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont, o UPDATE_TUNNEL_PARAMETER - Message can include TUN_SRC_IP_ADDR,
"Traffic Selectors for Flow Bindings", RFC 6088, January TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, TUN_IF_MTU,
2011. TUN_PAYLOAD_TYPE, TUN_VENDOR_SPEC_PARAM, CTRL_PLANE_ID,
CONTEXT_ID.
[RFC7333] Chan, H., Liu, D., Seite, P., Yokota, H., and J. Korhonen, o QUERY_TUNNEL_IF -
"Requirements for Distributed Mobility Management", RFC
7333, August 2014.
[RFC7429] Liu, D., Zuniga, JC., Seite, P., Chan, H., and CJ. o CREATE_POLICY_ROUTE - Message can include INPUT_IF, OUTPUT_IF,
Bernardos, "Distributed Mobility Management: Current NEXT_HOP_IP_GW_ADDR, VRF_ID, PBR_ID, CTRL_PLANE_ID, CONTEXT_ID.
Practices and Gap Analysis", RFC 7429, January 2015.
9.2. Informative References o DELETE_POLICY_ROUTE - Message can include PBR_ID, CTRL_PLANE_ID,
CONTEXT_ID.
[RFC3344] Perkins, C., "IP Mobility Support for IPv4", RFC 3344, o ADD_TRAFFIC_SELECTOR - Message can include TRAFFIC_SELECTOR_ACL,
August 2002. PBR_ID, CTRL_PLANE_ID, CONTEXT_ID.
[RFC5213] Gundavelli, S., Leung, K., Devarapalli, V., Chowdhury, K., o DELETE_TRAFFIC_SELECTOR - Message can include
and B. Patil, "Proxy Mobile IPv6", RFC 5213, August 2008. TRAFFIC_SELECTOR_ACL, PBR_ID, CTRL_PLANE_ID, CONTEXT_ID.
[RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S. o QUERY_POLICY_ROUTE -
Gundavelli, "Quality-of-Service Option for Proxy Mobile
IPv6", RFC 7222, May 2014.
Appendix A. YANG Data Model for the FPC Protocol o CREATE_IP_ROUTE - Message can include DST_IP_SUBNET,
DST_IP_SUBNET_MASK, OUTPUT_IF, VRF_ID, ROUTE_ID, CTRL_PLANE_ID,
CONTEXT_ID.
This appendix provides (so far experimental) formating of some FPC o DELETE_IP_ROUTE - Message can include ROUTE_ID, CTRL_PLANE_ID,
protocol components adopting YANG data modeling. The current FPC CONTEXT_ID.
information model as per this initial draft version will experience
extensions, as it is not yet complete, and may experience changes
that need to be reflected in the data model. Whether a detailed data
model will be included in this document or solely an information
model will be adopted by this document and a detailed data model will
be part of a separate document is currently being discussed.
<CODE BEGINS> file "ietf-dmm-fpcp@2015-07-06.yang" o QUERY_IP_ROUTE -
module ietf-dmm-fpcp { o ALLOCATE_QOS_RESOURCES - Message can include AMBR, GBR, TCLASS,
namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp"; TFT, QOS_SERVICE_ID, CONTEXT_ID.
prefix fpcp;
import ietf-inet-types { prefix inet; } o DEALLOCATE_QOS_RESOURCES - Message can include Session_ID,
QOS_SERVICE_ID, CONTEXT_ID.
organization "IETF DMM Working Group"; o ADD_NSH_HEADER - Message can include SERVICE_PATH_ID,
contact "Satoru Matsushima <satoru.matsushima@g.softbank.co.jp>"; SERVICE_INDEX, TFT
description o DELETE_NSH_HEADER - Message can include SERVICE_PATH_ID,
"This module contains YANG definition for SERVICE_INDEX, TFT
Forwarding Policy Configuration Protocol.(FPCP)";
revision 2015-07-06 { 6. YANG Data Model for the FPC protocol
description "Changes based on -01 version of FPCP draft.";
reference "draft-ietf-dmm-fpc-cpdp-01";
}
typedef fpcp-port-id { These modules define Model I YANG definitions. Four modules are
type uint32; defined:
description "PRT_ID";
}
typedef fpcp-property-id { o ietf-dmm-fpcp-base (fpcp-base) - Defines the base model for Model
type uint8; I FPC as defined in this document
description "PRT_PROP_ID";
} o ietf-pmip-qos (pmip-qos) - Defines proxy mobile IPv6 QoS
parameters per RFC 7222
typedef fpcp-rule-id { o ietf-traffic-selectors-types (traffic-selectors) - Defines Traffic
type uint8; Selectors per RFC 6088
description "PRT_RULE_ID";
}
identity tunnel-type { o ietf-dmm-fpcp-pmip - Augments fpcp-base to include PMIP Traffic
description Selectors as a Traffic Descriptor subtype and pmip-qos QoS
"Base identity from which specific use of parameters, where applicable, as properties.
tunnels are derived.";
}
identity fpcp-tunnel-type { Note (2016-03-21): The YANG Data Model does not yet adopt all
base "tunnel-type"; extensions per this version of the draft and will be updated shortly
description after the IETF95 meeting.
"Base identity from which specific tunnel
types in FPCP uses are derived.";
}
identity ip-in-ip { 6.1. FPC Base
base "fpcp-tunnel-type";
description "IP-in-IP tunnel";
}
identity gtp { 6.1.1. FPC Base YANG Model
base "fpcp-tunnel-type";
description "GTP-U tunnel";
}
identity gre { module ietf-dmm-fpcp-base {
base "fpcp-tunnel-type"; namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-base";
description "GRE tunnel"; prefix fpcp-base;
}
identity service-function { import ietf-inet-types { prefix inet; }
description
"Base identity from which specific
service function types are derived.";
}
identity ip-protocol { organization "IETF DMM Working Group";
description contact "Satoru Matsushima <satoru.matsushima@g.softbank.co.jp>";
"Base identity from which specific
IP protocol types are derived.";
}
identity qos-type { description
description "This module contains YANG definition for
"Base identity from which specific Forwarding Policy Configuration Protocol.(FPCP)";
uses of QoS types are derived.";
}
identity fpcp-qos-type { revision 2016-01-18 {
base "qos-type"; description "Changes based on -01 version of FPCP draft.";
description reference "draft-ietf-dmm-fpc-cpdp-01";
"Base identity from which specific }
QoS types in FPCP uses are derived.";
}
identity fpcp-qos-type-gbr { typedef fpcp-name-type {
base "fpcp-qos-type"; type string;
description description "FPCP common name type";
"A QoS Type for Guaranteed Bit Rate (GBR)."; }
}
identity fpcp-qos-type-mbr { typedef fpcp-carrier-id {
base "fpcp-qos-type"; type uint16;
description description "Carrier-ID";
"A QoS Type for Maximum Bit Rate (MBR)."; }
}
grouping fpcp-client { typedef fpcp-network-id {
description "CLI_ID to identify FPCP Client"; type uint16;
leaf carrier-id { description "Carrier-ID";
type uint16; }
description "Carrier ID";
}
leaf network-id {
type uint16;
description "Network ID";
}
leaf client-id {
type uint32;
mandatory true;
description "Client ID";
}
}
grouping fpcp-agent { typedef fpcp-client-id {
description "AGT_ID to identify FPCP Agent"; type uint32;
leaf carrier-id { description "Client-ID";
type uint16; }
description "Carrier ID";
}
leaf network-id {
type uint16;
description "Network ID";
}
leaf agent-id {
type uint32;
mandatory true;
description "Agent ID";
}
}
grouping dpn { typedef fpcp-agent-id {
description "DPN_ID to identify Data-Plane Node"; type uint32;
leaf carrier-id { description "Agent-ID";
type uint16; }
description "Carrier ID";
}
leaf network-id {
type uint16;
description "Network ID";
}
leaf dpn-id {
type uint32;
mandatory true;
description "DPN ID";
}
}
grouping tunnel-endpoints { typedef fpcp-dpn-id {
description type uint32;
"PROP_TUN property as a set of tunnel endpoints"; description "Carrier-ID";
leaf tunnel-type { }
type identityref {
base "fpcp-tunnel-type";
}
description "Tunnel Type";
}
leaf remote-address {
type inet:ip-address;
description "Remote endpoint";
}
leaf local-address {
type inet:ip-address;
description "Local endpoint";
}
}
grouping gtp-attributes { typedef fpcp-port-id {
description type uint32;
"GTP_CONF as GTP tunnel specific attributes"; description "PRT_ID";
leaf remote-teid { }
type uint32;
description "TEID of remote-endpoint";
}
leaf local-teid {
type uint32;
description "TEID of local-endpoint";
}
}
grouping gre-attributes { typedef fpcp-property-id {
description type uint8;
"GRE_CONF as GRE tunnel specific attribute"; description "PRT_PROP_ID";
leaf key { }
type uint32;
description "GRE_KEY";
}
}
grouping rewriting-properties { typedef fpcp-rule-id {
description type uint8;
"PROP_REWR. TBD for which type of rewriting functions description "PRT_RULE_ID";
need to be defined";
leaf type {
type identityref {
base service-function;
}
description "The type of service-function";
}
}
grouping qos-properties { }
description "PROP_QOS";
leaf qos-type {
type identityref {
base "fpcp-qos-type";
}
description "QoS Type";
}
leaf bandwidth {
type uint32;
description "";
}
}
grouping fpcp-identifier-attributes { typedef fpcp-qos-class-identifier {
description type uint8 {
"Identifiers of protocol attributes"; range "1..9";
container client { }
description "Client ID"; description "QCI";
uses fpcp-client; }
}
container agent {
description "Agent ID";
uses fpcp-agent;
}
list nodes {
key dpn-id;
uses dpn;
description "DPN ID";
}
}
grouping fpcp-traffic-descriptor { typedef fpcp-qos-bandwidth {
description type uint32;
"Traffic descriptor group collects parameters to description "Bandwith value in bit per second.";
identify target traffic flow."; }
leaf rule-id {
type fpcp-rule-id;
description "PRT_RULE_ID";
}
leaf destination-ip {
type inet:ip-prefix;
description "Rule of destination IP";
}
leaf source-ip {
type inet:ip-prefix;
description "Rule of source IP";
}
leaf protocol {
type identityref {
base "ip-protocol";
}
description "Rule of protocol";
}
leaf destination-port {
type inet:port-number;
description "Rule of destination port";
}
leaf source-port {
type inet:port-number;
description "Rule of source port";
}
}
grouping fpcp-port-properties {
description
"A set of port property attributes";
leaf property-id {
type fpcp-property-id;
description "Property ID";
}
container endpoints {
description "Tunnel Endpoint";
uses tunnel-endpoints;
}
container qos {
description "QoS Type";
uses qos-properties;
}
container rewriting {
description "Rewriting function";
uses rewriting-properties;
}
choice tunnel {
description "Tunnel-Type";
case gtp-u {
when "tunnel-type = 'gtp'" {
description "In case of GTP-U is tunnel-type";
}
uses gtp-attributes;
}
case gre {
when "tunnel-type = 'gre'" {
description "In case of GRE is tunnel-type";
}
uses gre-attributes;
}
}
}
// Port Entries identity tunnel-type {
description
"Base identity from which specific use of
tunnels are derived.";
}
container port-entries { identity fpcp-tunnel-type {
description base "tunnel-type";
"This container binds set of traffic-descriptor and description
port properties to a port and lists them as a port entry."; "Base identity from which specific tunnel
list port-entry { types in FPCP uses are derived.";
key port-id; }
description "List of port entries";
leaf port-id {
type fpcp-port-id;
description "Port-ID";
} identity ip-in-ip {
container identifier { base "fpcp-tunnel-type";
description "Attributes set of Identifiers"; description "IP-in-IP tunnel";
uses fpcp-identifier-attributes; }
}
list trafic-descriptor {
key rule-id;
description "Rule and traffic-descriptor";
uses fpcp-traffic-descriptor;
}
list properties {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
// PRT_ADD identity gtp {
base "fpcp-tunnel-type";
description "GTP-U tunnel";
}
rpc port_add { identity gre {
description "PRT_ADD"; base "fpcp-tunnel-type";
input { description "GRE tunnel";
list adding-ports { }
description "Ports that are added to an agent";
leaf port-id {
type fpcp-port-id;
description "Port-ID";
}
container trafic-descriptor {
description "Rule and traffic-descriptor";
uses fpcp-traffic-descriptor;
}
list properties {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
}
// PRT_DEL identity service-function {
description
"Base identity from which specific
service function types are derived.";
}
identity ip-protocol {
description
"Base identity from which specific
IP protocol types are derived.";
}
rpc port_delete { identity property-type {
description "PRT_DEL"; description
input { "Base identity of property";
list deleting-ports { }
description "Ports that are deleted from an agent";
leaf deleting-port {
type fpcp-port-id;
description "Deleting port-id";
}
}
}
}
// PROP_ADD identity property-qos {
base "property-type";
description
"QoS property";
}
rpc port_property_add { identity property-endpoint {
description "PROP_ADD"; base "property-type";
input { description
list adding-properties { "Endpoint property";
description "Properties that are added to an agent"; }
leaf target-port {
type fpcp-port-id;
description "Port-ID";
}
list properties {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
}
// PROP_MOD identity property-type-endpoint {
base "property-type";
description
"Endpoint property";
}
rpc port_property_modify { identity qos-type {
description "PROP_MOD"; description
input { "Base identity from which specific
list modifying-properties { uses of QoS types are derived.";
description }
"Properties that are modified in an agent";
leaf target-port {
type fpcp-port-id;
mandatory true;
description
"Target port-id of modifying properties";
}
list properties {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
} identity fpcp-qos-type {
} base "qos-type";
} description
} "Base identity from which specific
QoS types in FPCP uses are derived.";
}
// PROP_DEL identity fpcp-qos-type-gbr {
base "fpcp-qos-type";
description
"A QoS Type for Guaranteed Bit Rate (GBR).";
}
identity fpcp-qos-type-mbr {
base "fpcp-qos-type";
description
"A QoS Type for Maximum Bit Rate (MBR).";
}
rpc port_property_delete { identity fpcp-qos-index-type {
description "PROP_DEL"; base "qos-type";
input { }
list deleting-property {
description
"Target port/property-id of deleting properties";
leaf port-id {
type fpcp-port-id;
mandatory true;
description "Port ID";
}
leaf property-id {
type fpcp-property-id;
mandatory true;
description "Property ID";
}
}
}
}
// RULE_ADD identity fpcp-qos-index {
base "fpcp-qos-index-type";
}
rpc rule_add { identity traffic-descriptor-type {
description }
"TBD for input parameters of which RULE_ADD includes
but now just traffic-descriptor.";
input {
list adding-rules {
description "Rules that are added to an agent";
leaf target-port {
type fpcp-port-id;
mandatory true;
description "Target port-id of adding rule";
}
list port-rules {
description "Added rule";
uses fpcp-traffic-descriptor;
}
}
}
}
// RULE_MOD
rpc rule_modify { identity fpcp-traffic-descriptor {
description base "traffic-descriptor-type";
"TBD for input parameters of which RULE_MOD includes }
but now just traffic-descriptor.";
input {
list modifying-rules {
description "Rules that are modified in an agent";
leaf target-port {
type fpcp-port-id;
mandatory true;
description "Target port-id of modifying rule";
}
list port-rule {
description "Modified rule";
uses fpcp-traffic-descriptor;
}
}
}
}
// RULE_DEL grouping carrier {
description "Identify FPCP Carrier";
leaf carrier-id {
type fpcp-carrier-id;
mandatory true;
description "Carrier ID";
}
}
rpc rule_delete { grouping agent {
description description "AGT_ID to identify FPCP Agent";
"TBD for input parameters of which RULE_DEL includes leaf agent-id {
but now just traffic-descriptor."; type fpcp-agent-id;
input { description "Agent ID";
list deleting-rules { }
description "Rules that are deleted from an agent"; }
leaf target-port {
type fpcp-port-id;
mandatory true;
description "Target port-id of deleting rule";
}
list target-rules {
description "Deleting rules";
leaf target-rule-id {
type fpcp-rule-id;
mandatory true;
description "Rule ID";
}
}
}
}
}
// EVENT_REG
rpc event_register { grouping client {
description description "CLI_ID to identify FPCP Client";
"TBD for registered parameters included in EVENT_REG."; leaf client-id {
} type fpcp-client-id;
description "Client ID";
}
}
grouping network {
description "Identify FPCP Network";
leaf network-id {
type fpcp-network-id;
description "Network ID";
}
}
// PROBE grouping dpn {
description "Identify FPCP Data-Plane Node";
leaf dpn-id {
type fpcp-dpn-id;
description "DPN ID";
}
}
rpc probe { grouping port {
description description "Identify FPCP Port";
"TBD for retrieved parameters included in PROBE."; leaf port-id {
} type fpcp-port-id;
description "Port-ID";
}
}
// NOTIFY grouping property {
description "Identify FPCP Property";
leaf property-id {
type fpcp-property-id;
description "Property-ID";
}
}
notification notify { grouping rule {
description description "Identify FPCP Rule";
"TBD for which status and event are reported to client."; leaf rule-id {
} type fpcp-rule-id;
} description "Rule-ID";
}
}
</CODE ENDS> grouping fpcp-carrier {
description "Define FPCP network";
uses carrier;
uses agent;
list client {
key client-id;
description "List of FPCP Clients";
leaf name {
type fpcp-name-type;
description "Client Name";
}
uses client;
}
list dpn {
key dpn-id;
description "List of FPCP DPNs";
leaf name {
type fpcp-name-type;
description "DPN Name";
}
uses dpn;
}
}
Figure 11: FPC YANG Data Model grouping dpn-set {
description "DPNs which consist a DPN set.";
leaf name {
type fpcp-name-type;
description "DPN set name";
}
leaf network {
type leafref {
path "/fpcp-carriers/carrier/network/network-id";
}
description "Network-ID which a DPN-set is belonging to.";
}
leaf role {
type enumeration {
enum anchor-l3 {
description "";
}
enum anchor-l2 {
description "";
}
enum access {
description "";
}
}
description "Define DPNs role in data-plane.";
}
list endpoint-dp {
key local-address;
description "List of data-plane endpoint properties of a
set of DPNs.";
leaf local-address {
type inet:ip-address;
description "";
}
leaf remote-dpn {
type leafref {
path "/fpcp-carriers/carrier/dpn-group/name";
}
description "";
}
leaf default-tunnel-type {
type identityref {
base "fpcp-tunnel-type";
}
description "Tunnel Type";
}
}
grouping dpn-set {
description "DPNs which consist a DPN set.";
leaf name {
type fpcp-name-type;
description "DPN set name";
}
leaf network {
type leafref {
path "/fpcp-carriers/carrier/network/network-id";
}
description "Network-ID which a DPN-set is belonging to.";
}
leaf role {
type enumeration {
enum anchor-l3 {
description "";
}
enum anchor-l2 {
description "";
}
enum access {
description "";
}
}
description "Define DPNs role in data-plane.";
}
list endpoint-dp {
key local-address;
description "List of data-plane endpoint properties of a
set of DPNs.";
leaf local-address {
type inet:ip-address;
description "";
}
leaf remote-dpn {
type leafref {
path "/fpcp-carriers/carrier/dpn-group/name";
}
description "";
}
leaf default-tunnel-type {
type identityref {
base "fpcp-tunnel-type";
}
description "Tunnel Type";
}
}
list dpn {
key dpn-id;
uses dpn;
description "DPN list in a DPN set";
}
}
grouping tunnel-endpoints {
description
"PROP_TUN property as a set of tunnel endpoints";
leaf tunnel-type {
type identityref {
base "fpcp-tunnel-type";
}
description "Tunnel Type";
}
leaf remote-address {
type inet:ip-address;
description "Remote endpoint";
}
leaf local-address {
type inet:ip-address;
description "Local endpoint";
}
}
grouping gtp-attributes {
description
"GTP_CONF as GTP tunnel specific attributes";
leaf remote-teid {
type uint32;
description "TEID of remote-endpoint";
}
leaf local-teid {
type uint32;
description "TEID of local-endpoint";
}
}
grouping gre-attributes {
description
"GRE_CONF as GRE tunnel specific attribute";
leaf key {
type uint32;
description "GRE_KEY";
}
}
grouping rewriting-properties {
description
"PROP_REWR. TBD for which type of rewriting functions
need to be defined";
leaf type {
type identityref {
base service-function;
}
description "The type of service-function";
}
}
grouping fpcp-qosattribute {
leaf qci {
type fpcp-qos-class-identifier;
}
leaf attributetype {
type identityref {
base fpcp-qos-type;
}
description "the attribute type";
}
leaf bandwidth {
type fpcp-qos-bandwidth;
}
}
grouping fpcp-qos-property {
description "PROP_QOS";
leaf name {
type fpcp-name-type;
}
leaf qos-index-type {
type identityref {
base "fpcp-qos-index-type";
}
}
choice index-type {
case qci {
when "../qos-index-type = 'fpcp-qos-index'";
container uplink {
uses fpcp-qosattribute;
}
container downlink {
uses fpcp-qosattribute;
}
}
}
}
grouping traffic-descriptor {
description
"Traffic descriptor group collects parameters to
identify target traffic flow.";
leaf destination-ip {
type inet:ip-prefix;
description "Rule of destination IP";
}
leaf source-ip {
type inet:ip-prefix;
description "Rule of source IP";
}
}
grouping fpcp-traffic-descriptor {
leaf name {
type fpcp-name-type;
}
leaf traffic-discriptor-type {
type identityref {
base "traffic-descriptor-type";
}
}
choice descriptor-type {
case fpcp-traffic-descriptor {
when "../descriptor-type = 'fpcp-traffic-descriptor'";
uses traffic-descriptor;
}
}
}
grouping fpcp-forwarding-rule {
uses rule;
uses fpcp-traffic-descriptor;
}
grouping fpcp-port-properties {
description
"A set of port property attributes";
uses property;
list attached-dpns {
key name;
leaf name {
type fpcp-name-type;
description "DPN group name of which port attached.";
}
description "Port attached DPN group list.";
}
container endpoints {
description "Tunnel Endpoint";
uses tunnel-endpoints;
choice tunnel {
description "Tunnel-Type";
case gtp-u {
when "tunnel-type = 'gtp'" {
description "In case of GTP-U is tunnel-type";
}
uses gtp-attributes;
}
case gre {
when "tunnel-type = 'gre'" {
description "In case of GRE is tunnel-type";
}
uses gre-attributes;
}
}
}
container qos {
description "QoS Type";
uses fpcp-qos-property;
list port-in-aggregated-bandwidth {
key port-id;
uses port;
}
}
container rewriting {
description "Rewriting function";
uses rewriting-properties;
}
}
grouping port-field {
description "Definition of attributes of port field";
uses port;
uses carrier;
uses network;
}
// Container for configurations sets.
container fpcp-carriers {
description "Attributes set of FPCP network";
list carrier {
key carrier-id;
description "List of carriers";
leaf name {
type fpcp-name-type;
description "FPCP Carrier name";
}
uses fpcp-carrier;
list network {
key network-id;
description "List of networks in a carrier.";
leaf name {
type fpcp-name-type;
description "Define visible name of a network.";
}
uses network;
}
list dpn-group {
key name;
description "List of DPN groups in a carrier.";
uses dpn-set;
}
list qos-profile {
key name;
uses fpcp-qos-property;
}
list traffic-descriptor {
key name;
uses fpcp-traffic-descriptor;
}
}
}
// Port Entries
container port-entries {
config false;
description
"This container binds set of traffic-descriptor and
port properties to a port and lists them as a port entry.";
list port-entry {
key port-id;
description "List of port entries";
uses port-field;
list property {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
list forwarding-rule {
key rule-id;
description "Rule and traffic-descriptor";
uses fpcp-forwarding-rule;
}
}
}
// PRT_ADD
rpc port_add {
description "PRT_ADD";
input {
list adding-port {
description "Ports that are added to an agent";
uses port-field;
list forwarding-rule {
key rule-id;
description "Rule and traffic-descriptor";
uses fpcp-forwarding-rule;
}
list property {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
}
// PRT_DEL
rpc port_delete {
description "PRT_DEL";
input {
list deleting-port {
description "Ports that are deleted from an agent";
uses port-field;
}
}
}
// PROP_ADD
rpc port_property_add {
description "PROP_ADD";
input {
list adding-property {
description "Properties that are added to an agent";
uses port-field;
list property {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
}
// PROP_MOD
rpc port_property_modify {
description "PROP_MOD";
input {
list modifying-property {
description
"Properties that are modified in an agent";
uses port-field;
list property {
key property-id;
description "Attributes set of properties";
uses fpcp-port-properties;
}
}
}
}
// PROP_DEL
rpc port_property_delete {
description "PROP_DEL";
input {
list deleting-property {
description
"Target port/property-id of deleting properties";
uses port-field;
leaf property-id {
type fpcp-property-id;
mandatory true;
description "Property ID";
}
}
}
}
// RULE_ADD
rpc rule_add {
description
"TBD for input parameters of which RULE_ADD includes
but now just traffic-descriptor.";
input {
list adding-rule {
description "Rules that are added to an agent";
uses port-field;
list forwarding-rule {
description "Added rule";
uses fpcp-forwarding-rule;
}
}
}
}
// RULE_MOD
rpc rule_modify {
description
"TBD for input parameters of which RULE_MOD includes
but now just traffic-descriptor.";
input {
list modifying-rule {
description "Rules that are modified in an agent";
uses port-field;
list forwarding-rule {
description "Modified rule";
uses fpcp-forwarding-rule;
}
}
}
}
// RULE_DEL
rpc rule_delete {
description
"TBD for input parameters of which RULE_DEL includes
but now just traffic-descriptor.";
input {
list deleting-rule {
description "Rules that are deleted from an agent";
uses port-field;
list target-rule {
description "Deleting rules";
leaf target-rule-id {
type fpcp-rule-id;
mandatory true;
description "Rule ID";
}
}
}
}
}
// EVENT_REG
rpc event_register {
description
"TBD for registered parameters included in EVENT_REG.";
}
// PROBE
rpc probe {
description
"TBD for retrieved parameters included in PROBE.";
}
// NOTIFY
notification notify {
description
"TBD for which status and event are reported to client.";
}
}
Figure 19: FPC YANG base
6.1.2. FPC Base tree
module: ietf-dmm-fpcp-base
+--rw fpcp-carriers
| +--rw carrier* [carrier-id]
| +--rw name? fpcp-name-type
| +--rw carrier-id fpcp-carrier-id
| +--rw agent-id? fpcp-agent-id
| +--rw client* [client-id]
| | +--rw name? fpcp-name-type
| | +--rw client-id fpcp-client-id
| +--rw dpn* [dpn-id]
| | +--rw name? fpcp-name-type
| | +--rw dpn-id fpcp-dpn-id
| +--rw network* [network-id]
| | +--rw name? fpcp-name-type
| | +--rw network-id fpcp-network-id
| +--rw dpn-group* [name]
| | +--rw name fpcp-name-type
| | +--rw network? -> /fpcp-carriers/carrier/network/network-id
| | +--rw role? enumeration
| | +--rw endpoint-dp* [local-address]
| | | +--rw local-address inet:ip-address
| | | +--rw remote-dpn? -> /fpcp-carriers/carrier/dpn-group/name
| | | +--rw default-tunnel-type? identityref
| | +--rw dpn* [dpn-id]
| | +--rw dpn-id fpcp-dpn-id
| +--rw qos-profile* [name]
| | +--rw name fpcp-name-type
| | +--rw qos-index-type? identityref
| | +--rw (index-type)?
| | +--:(qci)
| | +--rw uplink
| | | +--rw qci? fpcp-qos-class-identifier
| | | +--rw attributetype? identityref
| | | +--rw bandwidth? fpcp-qos-bandwidth
| | +--rw downlink
| | +--rw qci? fpcp-qos-class-identifier
| | +--rw attributetype? identityref
| | +--rw bandwidth? fpcp-qos-bandwidth
| +--rw traffic-descriptor* [name]
| +--rw name fpcp-name-type
| +--rw traffic-discriptor-type? identityref
| +--rw (descriptor-type)?
| +--:(fpcp-traffic-descriptor)
| +--rw destination-ip? inet:ip-prefix
| +--rw source-ip? inet:ip-prefix
+--ro port-entries
+--ro port-entry* [port-id]
+--ro port-id fpcp-port-id
+--ro carrier-id fpcp-carrier-id
+--ro network-id? fpcp-network-id
+--ro property* [property-id]
| +--ro property-id fpcp-property-id
| +--ro attached-dpns* [name]
| | +--ro name fpcp-name-type
| +--ro endpoints
| | +--ro tunnel-type? identityref
| | +--ro remote-address? inet:ip-address
| | +--ro local-address? inet:ip-address
| | +--ro (tunnel)?
| | +--:(gtp-u)
| | | +--ro remote-teid? uint32
| | | +--ro local-teid? uint32
| | +--:(gre)
| | +--ro key? uint32
| +--ro qos
| | +--ro name? fpcp-name-type
| | +--ro qos-index-type? identityref
| | +--ro (index-type)?
| | | +--:(qci)
| | | +--ro uplink
| | | | +--ro qci? fpcp-qos-class-identifier
| | | | +--ro attributetype? identityref
| | | | +--ro bandwidth? fpcp-qos-bandwidth
| | | +--ro downlink
| | | +--ro qci? fpcp-qos-class-identifier
| | | +--ro attributetype? identityref
| | | +--ro bandwidth? fpcp-qos-bandwidth
| | +--ro port-in-aggregated-bandwidth* [port-id]
| | +--ro port-id fpcp-port-id
| +--ro rewriting
| +--ro type? identityref
+--ro forwarding-rule* [rule-id]
+--ro rule-id fpcp-rule-id
+--ro name? fpcp-name-type
+--ro traffic-discriptor-type? identityref
+--ro (descriptor-type)?
+--:(fpcp-traffic-descriptor)
+--ro destination-ip? inet:ip-prefix
+--ro source-ip? inet:ip-prefix
rpcs:
+---x port_add
| +---w input
| +---w adding-port*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w forwarding-rule* [rule-id]
| | +---w rule-id fpcp-rule-id
| | +---w name? fpcp-name-type
| | +---w traffic-discriptor-type? identityref
| | +---w (descriptor-type)?
| | +--:(fpcp-traffic-descriptor)
| | +---w destination-ip? inet:ip-prefix
| | +---w source-ip? inet:ip-prefix
| +---w property* [property-id]
| +---w property-id fpcp-property-id
| +---w attached-dpns* [name]
| | +---w name fpcp-name-type
| +---w endpoints
| | +---w tunnel-type? identityref
| | +---w remote-address? inet:ip-address
| | +---w local-address? inet:ip-address
| | +---w (tunnel)?
| | +--:(gtp-u)
| | | +---w remote-teid? uint32
| | | +---w local-teid? uint32
| | +--:(gre)
| | +---w key? uint32
| +---w qos
| | +---w name? fpcp-name-type
| | +---w qos-index-type? identityref
| | +---w (index-type)?
| | | +--:(qci)
| | | +---w uplink
| | | | +---w qci? fpcp-qos-class-identifier
| | | | +---w attributetype? identityref
| | | | +---w bandwidth? fpcp-qos-bandwidth
| | | +---w downlink
| | | +---w qci? fpcp-qos-class-identifier
| | | +---w attributetype? identityref
| | | +---w bandwidth? fpcp-qos-bandwidth
| | +---w port-in-aggregated-bandwidth* [port-id]
| | +---w port-id fpcp-port-id
| +---w rewriting
| +---w type? identityref
+---x port_delete
| +---w input
| +---w deleting-port*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
+---x port_property_add
| +---w input
| +---w adding-property*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w property* [property-id]
| +---w property-id fpcp-property-id
| +---w attached-dpns* [name]
| | +---w name fpcp-name-type
| +---w endpoints
| | +---w tunnel-type? identityref
| | +---w remote-address? inet:ip-address
| | +---w local-address? inet:ip-address
| | +---w (tunnel)?
| | +--:(gtp-u)
| | | +---w remote-teid? uint32
| | | +---w local-teid? uint32
| | +--:(gre)
| | +---w key? uint32
| +---w qos
| | +---w name? fpcp-name-type
| | +---w qos-index-type? identityref
| | +---w (index-type)?
| | | +--:(qci)
| | | +---w uplink
| | | | +---w qci? fpcp-qos-class-identifier
| | | | +---w attributetype? identityref
| | | | +---w bandwidth? fpcp-qos-bandwidth
| | | +---w downlink
| | | +---w qci? fpcp-qos-class-identifier
| | | +---w attributetype? identityref
| | | +---w bandwidth? fpcp-qos-bandwidth
| | +---w port-in-aggregated-bandwidth* [port-id]
| | +---w port-id fpcp-port-id
| +---w rewriting
| +---w type? identityref
+---x port_property_modify
| +---w input
| +---w modifying-property*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w property* [property-id]
| +---w property-id fpcp-property-id
| +---w attached-dpns* [name]
| | +---w name fpcp-name-type
| +---w endpoints
| | +---w tunnel-type? identityref
| | +---w remote-address? inet:ip-address
| | +---w local-address? inet:ip-address
| | +---w (tunnel)?
| | +--:(gtp-u)
| | | +---w remote-teid? uint32
| | | +---w local-teid? uint32
| | +--:(gre)
| | +---w key? uint32
| +---w qos
| | +---w name? fpcp-name-type
| | +---w qos-index-type? identityref
| | +---w (index-type)?
| | | +--:(qci)
| | | +---w uplink
| | | | +---w qci? fpcp-qos-class-identifier
| | | | +---w attributetype? identityref
| | | | +---w bandwidth? fpcp-qos-bandwidth
| | | +---w downlink
| | | +---w qci? fpcp-qos-class-identifier
| | | +---w attributetype? identityref
| | | +---w bandwidth? fpcp-qos-bandwidth
| | +---w port-in-aggregated-bandwidth* [port-id]
| | +---w port-id fpcp-port-id
| +---w rewriting
| +---w type? identityref
+---x port_property_delete
| +---w input
| +---w deleting-property*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w property-id fpcp-property-id
+---x rule_add
| +---w input
| +---w adding-rule*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w forwarding-rule*
| +---w rule-id? fpcp-rule-id
| +---w name? fpcp-name-type
| +---w traffic-discriptor-type? identityref
| +---w (descriptor-type)?
| +--:(fpcp-traffic-descriptor)
| +---w destination-ip? inet:ip-prefix
| +---w source-ip? inet:ip-prefix
+---x rule_modify
| +---w input
| +---w modifying-rule*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w forwarding-rule*
| +---w rule-id? fpcp-rule-id
| +---w name? fpcp-name-type
| +---w traffic-discriptor-type? identityref
| +---w (descriptor-type)?
| +--:(fpcp-traffic-descriptor)
| +---w destination-ip? inet:ip-prefix
| +---w source-ip? inet:ip-prefix
+---x rule_delete
| +---w input
| +---w deleting-rule*
| +---w port-id? fpcp-port-id
| +---w carrier-id fpcp-carrier-id
| +---w network-id? fpcp-network-id
| +---w target-rule*
| +---w target-rule-id fpcp-rule-id
+---x event_register
+---x probe
notifications:
+---n notify
Figure 20: FPC base tree
6.2. FPC PMIP
6.2.1. FPC PMIP YANG Model
module ietf-dmm-fpcp-pmip {
namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-pmip";
prefix fpcp-pmip;
import ietf-inet-types { prefix inet; }
import ietf-dmm-fpcp-base { prefix fpcp-base; }
import ietf-pmip-qos { prefix qos-pmip; }
import ietf-traffic-selectors { prefix traffic-selectors; }
organization "IETF DMM Working Group";
contact "Satoru Matsushima <satoru.matsushima@g.softbank.co.jp>";
description
"This module contains YANG definition for
Forwarding Policy Configuration Protocol.(FPCP)";
revision 2016-01-19 {
description "Changes based on -01 version of FPCP draft.";
reference "draft-ietf-dmm-fpc-cpdp-01";
}
identity fpcp-qos-index-pmip {
base "fpcp-base:fpcp-qos-index-type";
}
identity traffic-selector-mip6 {
base "fpcp-base:traffic-descriptor-type";
}
grouping qosattribute-pmip {
leaf dscp {
type inet:dscp;
}
choice attribute {
case per-mn-agg-max-dl {
when "../attributetype = 'Per-MN-Agg-Max-DL-Bit-Rate-type'";
leaf per-mn-agg-max-dl {
type qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value;
}
}
case per-mn-agg-max-ul {
when "../attributetype = 'Per-MN-Agg-Max-UL-Bit-Rate-type'";
leaf per-mn-agg-max-ul {
type qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value;
}
}
case per-session-agg-max {
when "../attributetype = 'Per-Session-Agg-Max-DL-Bit-Rate-type' |
../attributetype = 'Per-Session-Agg-Max-UL-Bit-Rate-type'";
uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value;
}
case agg-max-dl {
when "../attributetype = 'Aggregate-Max-DL-Bit-Rate-type'";
leaf agg-max-dl {
type qos-pmip:Aggregate-Max-DL-Bit-Rate-Value;
}
}
case agg-max-ul {
when "../attributetype = 'Aggregate-Max-UL-Bit-Rate-type'";
leaf agg-max-ul {
type qos-pmip:Aggregate-Max-UL-Bit-Rate-Value;
}
}
case gbr-dl {
when "../attributetype = 'Guaranteed-DL-Bit-Rate-type'";
leaf gbr-dl {
type qos-pmip:Guaranteed-DL-Bit-Rate-Value;
}
}
case gbr-ul {
when "../attributetype = 'Guaranteed-UL-Bit-Rate-type'";
leaf gbr-ul {
type qos-pmip:Guaranteed-UL-Bit-Rate-Value;
}
}
}
}
// Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/qosprofile.
augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type" {
case pmip {
when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'";
uses qosattribute-pmip;
}
}
// Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/traffic-descriptor.
augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type" {
case traffic-selector-mip6 {
when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'";
uses traffic-selectors:traffic-selector;
}
}
// Operational choice augmentation in the fpcp-base under the port-entries/port-entry/property.
augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" {
case pmip {
when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'";
uses qosattribute-pmip;
}
}
// Operational choice augmentation in the fpcp-base under the port-entries/port-entry/forwarding-rule.
augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" {
case traffic-selector-mip6 {
when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'";
uses traffic-selectors:traffic-selector;
}
}
// RPC choice augmentation in the fpcp-base under "port_add" rpc.
augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" {
case pmip {
when "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'";
uses qosattribute-pmip;
}
}
augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" {
case traffic-selector-mip6 {
when "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'";
uses traffic-selectors:traffic-selector;
}
}
// RPC choice augmentation in the fpcp-base under "port_property_add" rpc.
augment "/fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" {
case pmip {
when "/fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'";
uses qosattribute-pmip;
}
}
// RPC choice augmentation in the fpcp-base under "port_property_modify" rpc.
augment "/fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" {
case pmip {
when "/fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'";
uses qosattribute-pmip;
}
}
// RPC choice augmentation in the fpcp-base under "rule_add" rpc.
augment "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" {
case traffic-selector-mip6 {
when "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'";
uses traffic-selectors:traffic-selector;
}
}
// RPC choice augmentation in the fpcp-base under "rule_modify" rpc.
augment "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" {
case traffic-selector-mip6 {
when "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'";
uses traffic-selectors:traffic-selector;
}
}
}
Figure 21: caption1
6.2.2. FPC PMIP tree
module: ietf-dmm-fpcp-pmip
augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type:
+--:(pmip)
+--rw dscp? inet:dscp
+--rw (attribute)?
+--:(per-mn-agg-max-dl)
| +--rw per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value
+--:(per-mn-agg-max-ul)
| +--rw per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value
+--:(per-session-agg-max)
| +--rw max-dl uint32
| +--rw service-flag boolean
| +--rw exclude-flag boolean
+--:(agg-max-dl)
| +--rw agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value
+--:(agg-max-ul)
| +--rw agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value
+--:(gbr-dl)
| +--rw gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value
+--:(gbr-ul)
+--rw gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value
augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type:
+--:(traffic-selector-mip6)
+--rw ts-format? identityref
+--rw start-ipsec-spi? ipsec-spi
+--rw end-ipsec-spi? ipsec-spi
+--rw start-source-port? inet:port-number
+--rw end-source-port? inet:port-number
+--rw start-destination-port? inet:port-number
+--rw end-destination-port? inet:port-number
+--rw start-source-address-v4? inet:ipv4-address
+--rw end-source-address-v4? inet:ipv4-address
+--rw start-destination-address-v4? inet:ipv4-address
+--rw end-destination-address-v4? inet:ipv4-address
+--rw start-ds? inet:dscp
+--rw end-ds? inet:dscp
+--rw start-protocol? uint8
+--rw end-protocol? uint8
+--rw start-source-address-v6? inet:ipv6-address
+--rw end-source-address-v6? inet:ipv6-address
+--rw start-destination-address-v6? inet:ipv6-address
+--rw end-destination-address-v6? inet:ipv6-address
+--rw start-flow-label? inet:ipv6-flow-label
+--rw end-flow-label? inet:ipv6-flow-label
+--rw start-traffic-class? inet:dscp
+--rw end-traffic-class? inet:dscp
+--rw start-next-header? uint8
+--rw end-next-header? uint8
augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type:
+--:(pmip)
+--ro dscp? inet:dscp
+--ro (attribute)?
+--:(per-mn-agg-max-dl)
| +--ro per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value
+--:(per-mn-agg-max-ul)
| +--ro per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value
+--:(per-session-agg-max)
| +--ro max-dl uint32
| +--ro service-flag boolean
| +--ro exclude-flag boolean
+--:(agg-max-dl)
| +--ro agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value
+--:(agg-max-ul)
| +--ro agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value
+--:(gbr-dl)
| +--ro gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value
+--:(gbr-ul)
+--ro gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value
augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type:
+--:(traffic-selector-mip6)
+--ro ts-format? identityref
+--ro start-ipsec-spi? ipsec-spi
+--ro end-ipsec-spi? ipsec-spi
+--ro start-source-port? inet:port-number
+--ro end-source-port? inet:port-number
+--ro start-destination-port? inet:port-number
+--ro end-destination-port? inet:port-number
+--ro start-source-address-v4? inet:ipv4-address
+--ro end-source-address-v4? inet:ipv4-address
+--ro start-destination-address-v4? inet:ipv4-address
+--ro end-destination-address-v4? inet:ipv4-address
+--ro start-ds? inet:dscp
+--ro end-ds? inet:dscp
+--ro start-protocol? uint8
+--ro end-protocol? uint8
+--ro start-source-address-v6? inet:ipv6-address
+--ro end-source-address-v6? inet:ipv6-address
+--ro start-destination-address-v6? inet:ipv6-address
+--ro end-destination-address-v6? inet:ipv6-address
+--ro start-flow-label? inet:ipv6-flow-label
+--ro end-flow-label? inet:ipv6-flow-label
+--ro start-traffic-class? inet:dscp
+--ro end-traffic-class? inet:dscp
+--ro start-next-header? uint8
+--ro end-next-header? uint8
augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type:
+--:(pmip)
+---- dscp? inet:dscp
+---- (attribute)?
+--:(per-mn-agg-max-dl)
| +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value
+--:(per-mn-agg-max-ul)
| +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value
+--:(per-session-agg-max)
| +---- max-dl uint32
| +---- service-flag boolean
| +---- exclude-flag boolean
+--:(agg-max-dl)
| +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value
+--:(agg-max-ul)
| +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value
+--:(gbr-dl)
| +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value
+--:(gbr-ul)
+---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value
augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type:
+--:(traffic-selector-mip6)
+---- ts-format? identityref
+---- start-ipsec-spi? ipsec-spi
+---- end-ipsec-spi? ipsec-spi
+---- start-source-port? inet:port-number
+---- end-source-port? inet:port-number
+---- start-destination-port? inet:port-number
+---- end-destination-port? inet:port-number
+---- start-source-address-v4? inet:ipv4-address
+---- end-source-address-v4? inet:ipv4-address
+---- start-destination-address-v4? inet:ipv4-address
+---- end-destination-address-v4? inet:ipv4-address
+---- start-ds? inet:dscp
+---- end-ds? inet:dscp
+---- start-protocol? uint8
+---- end-protocol? uint8
+---- start-source-address-v6? inet:ipv6-address
+---- end-source-address-v6? inet:ipv6-address
+---- start-destination-address-v6? inet:ipv6-address
+---- end-destination-address-v6? inet:ipv6-address
+---- start-flow-label? inet:ipv6-flow-label
+---- end-flow-label? inet:ipv6-flow-label
+---- start-traffic-class? inet:dscp
+---- end-traffic-class? inet:dscp
+---- start-next-header? uint8
+---- end-next-header? uint8
augment /fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type:
+--:(pmip)
+---- dscp? inet:dscp
+---- (attribute)?
+--:(per-mn-agg-max-dl)
| +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value
+--:(per-mn-agg-max-ul)
| +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value
+--:(per-session-agg-max)
| +---- max-dl uint32
| +---- service-flag boolean
| +---- exclude-flag boolean
+--:(agg-max-dl)
| +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value
+--:(agg-max-ul)
| +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value
+--:(gbr-dl)
| +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value
+--:(gbr-ul)
+---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value
augment /fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type:
+--:(pmip)
+---- dscp? inet:dscp
+---- (attribute)?
+--:(per-mn-agg-max-dl)
| +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value
+--:(per-mn-agg-max-ul)
| +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value
+--:(per-session-agg-max)
| +---- max-dl uint32
| +---- service-flag boolean
| +---- exclude-flag boolean
+--:(agg-max-dl)
| +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value
+--:(agg-max-ul)
| +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value
+--:(gbr-dl)
| +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value
+--:(gbr-ul)
+---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value
augment /fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type:
+--:(traffic-selector-mip6)
+---- ts-format? identityref
+---- start-ipsec-spi? ipsec-spi
+---- end-ipsec-spi? ipsec-spi
+---- start-source-port? inet:port-number
+---- end-source-port? inet:port-number
+---- start-destination-port? inet:port-number
+---- end-destination-port? inet:port-number
+---- start-source-address-v4? inet:ipv4-address
+---- end-source-address-v4? inet:ipv4-address
+---- start-destination-address-v4? inet:ipv4-address
+---- end-destination-address-v4? inet:ipv4-address
+---- start-ds? inet:dscp
+---- end-ds? inet:dscp
+---- start-protocol? uint8
+---- end-protocol? uint8
+---- start-source-address-v6? inet:ipv6-address
+---- end-source-address-v6? inet:ipv6-address
+---- start-destination-address-v6? inet:ipv6-address
+---- end-destination-address-v6? inet:ipv6-address
+---- start-flow-label? inet:ipv6-flow-label
+---- end-flow-label? inet:ipv6-flow-label
+---- start-traffic-class? inet:dscp
+---- end-traffic-class? inet:dscp
+---- start-next-header? uint8
+---- end-next-header? uint8
augment /fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type:
+--:(traffic-selector-mip6)
+---- ts-format? identityref
+---- start-ipsec-spi? ipsec-spi
+---- end-ipsec-spi? ipsec-spi
+---- start-source-port? inet:port-number
+---- end-source-port? inet:port-number
+---- start-destination-port? inet:port-number
+---- end-destination-port? inet:port-number
+---- start-source-address-v4? inet:ipv4-address
+---- end-source-address-v4? inet:ipv4-address
+---- start-destination-address-v4? inet:ipv4-address
+---- end-destination-address-v4? inet:ipv4-address
+---- start-ds? inet:dscp
+---- end-ds? inet:dscp
+---- start-protocol? uint8
+---- end-protocol? uint8
+---- start-source-address-v6? inet:ipv6-address
+---- end-source-address-v6? inet:ipv6-address
+---- start-destination-address-v6? inet:ipv6-address
+---- end-destination-address-v6? inet:ipv6-address
+---- start-flow-label? inet:ipv6-flow-label
+---- end-flow-label? inet:ipv6-flow-label
+---- start-traffic-class? inet:dscp
+---- end-traffic-class? inet:dscp
+---- start-next-header? uint8
+---- end-next-header? uint8
Figure 22: FPC PMIP tree
7. Security Considerations
Detailed protocol implementations for DMM Forwarding Policy
Configuration must ensure integrity of the information exchanged
between an FPC Client and an FPC Agent. Required Security
Associations may be derived from co-located functions, which utilize
the FPC Client and FPC Agent respectively.
8. IANA Considerations
This document provides a data model and protocol operation for DMM
Forwarding Policy Configuration. Yang models are included to specify
the data model as well as to enable an implementation of this
protocol using RPC.
No actions from IANA are required. In case the semantics of this
specification will be mapped to a particular wire protocol, authors
of an associated separate document will approach IANA for the
associated action to create a registry or add registry entries.
9. Work Team Participants
Participants in the FPSM work team discussion include Satoru
Matsushima, Danny Moses, Sri Gundavelli, Marco Liebsch, Pierrick
Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred
Templin.
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont,
"Traffic Selectors for Flow Bindings", RFC 6088,
DOI 10.17487/RFC6088, January 2011,
<http://www.rfc-editor.org/info/rfc6088>.
[RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J.
Korhonen, "Requirements for Distributed Mobility
Management", RFC 7333, DOI 10.17487/RFC7333, August 2014,
<http://www.rfc-editor.org/info/rfc7333>.
[RFC7429] Liu, D., Ed., Zuniga, JC., Ed., Seite, P., Chan, H., and
CJ. Bernardos, "Distributed Mobility Management: Current
Practices and Gap Analysis", RFC 7429,
DOI 10.17487/RFC7429, January 2015,
<http://www.rfc-editor.org/info/rfc7429>.
10.2. Informative References
[RFC3344] Perkins, C., Ed., "IP Mobility Support for IPv4",
RFC 3344, DOI 10.17487/RFC3344, August 2002,
<http://www.rfc-editor.org/info/rfc3344>.
[RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V.,
Chowdhury, K., and B. Patil, "Proxy Mobile IPv6",
RFC 5213, DOI 10.17487/RFC5213, August 2008,
<http://www.rfc-editor.org/info/rfc5213>.
[RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S.
Gundavelli, "Quality-of-Service Option for Proxy Mobile
IPv6", RFC 7222, DOI 10.17487/RFC7222, May 2014,
<http://www.rfc-editor.org/info/rfc7222>.
Authors' Addresses Authors' Addresses
Marco Liebsch Marco Liebsch
NEC Laboratories Europe NEC Laboratories Europe
NEC Europe Ltd. NEC Europe Ltd.
Kurfuersten-Anlage 36 Kurfuersten-Anlage 36
D-69115 Heidelberg D-69115 Heidelberg
Germany Germany
skipping to change at line 1383 skipping to change at page 67, line 36
Cisco Cisco
170 West Tasman Drive 170 West Tasman Drive
San Jose, CA 95134 San Jose, CA 95134
USA USA
Email: sgundave@cisco.com Email: sgundave@cisco.com
Danny Moses Danny Moses
Email: danny.moses@intel.com Email: danny.moses@intel.com
Lyle Bertz
6220 Sprint Parkway
Overland Park KS, 66251
USA
Email: lyleb551144@gmail.com
 End of changes. 187 change blocks. 
903 lines changed or deleted 2575 lines changed or added

This html diff was produced by rfcdiff 1.44. The latest version is available from http://tools.ietf.org/tools/rfcdiff/