idnits 2.17.1 draft-ietf-dmm-fpc-cpdp-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 74 instances of too long lines in the document, the longest one being 106 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 2290 has weird spacing: '...ient-id fpc...' == Line 2293 has weird spacing: '... dpn-id fpc...' == Line 2296 has weird spacing: '...work-id fpc...' == Line 2306 has weird spacing: '... dpn-id fpc...' == Line 2335 has weird spacing: '...ro name fpc...' == (12 more instances...) -- The document date (March 21, 2016) is 2957 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: '16' on line 589 == Missing Reference: 'Carrier ID' is mentioned on line 588, but not defined == Missing Reference: 'Network ID' is mentioned on line 589, but not defined -- Looks like a reference, but probably isn't: '32' on line 770 == Missing Reference: 'Client ID' is mentioned on line 582, but not defined == Missing Reference: 'Agent ID' is mentioned on line 586, but not defined == Missing Reference: 'DPN ID' is mentioned on line 590, but not defined == Missing Reference: 'Monitor ID' is mentioned on line 592, but not defined == Missing Reference: 'DSCP' is mentioned on line 619, but not defined == Missing Reference: 'GBR' is mentioned on line 622, but not defined == Missing Reference: 'MBR' is mentioned on line 628, but not defined -- Looks like a reference, but probably isn't: '8' on line 742 == Missing Reference: 'PRIO' is mentioned on line 681, but not defined == Missing Reference: 'REPORT CONFIG' is mentioned on line 740, but not defined == Missing Reference: 'REPORT-TYPE' is mentioned on line 742, but not defined == Missing Reference: 'Notification-Id' is mentioned on line 768, but not defined == Missing Reference: 'MONITOR-ID' is mentioned on line 769, but not defined == Missing Reference: 'TRIGGER' is mentioned on line 770, but not defined == Missing Reference: 'DPN2' is mentioned on line 1238, but not defined ** Downref: Normative reference to an Informational RFC: RFC 7333 ** Downref: Normative reference to an Informational RFC: RFC 7429 -- Obsolete informational reference (is this intentional?): RFC 3344 (Obsoleted by RFC 5944) Summary: 3 errors (**), 0 flaws (~~), 23 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DMM Working Group M. Liebsch 3 Internet-Draft NEC 4 Intended status: Standards Track S. Matsushima 5 Expires: September 22, 2016 SoftBank 6 S. Gundavelli 7 Cisco 8 D. Moses 9 Intel Corporation 10 L. Bertz 11 Sprint 12 March 21, 2016 14 Protocol for Forwarding Policy Configuration (FPC) in DMM 15 draft-ietf-dmm-fpc-cpdp-02.txt 17 Abstract 19 This specification supports the separation of the Control-Plane for 20 mobility- and session management from the Data-Plane. The protocol 21 semantics abstract the configuration of Data-Plane nodes and applies 22 it between a Client function, which is used by an application of the 23 mobility Control-Plane, and an Agent function, which is associated 24 with the configuration of Data-Plane nodes, according to the Data- 25 Plane rules issued by the mobility Control-Plane. The scope of the 26 rules comprises traffic description and treatment of packets in terms 27 of encapsulation, IP address re-writing and QoS. Additional protocol 28 semantics are described to support the maintenance of the Data-Plane 29 path. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at http://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on September 22, 2016. 48 Copyright Notice 50 Copyright (c) 2016 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents 55 (http://trustee.ietf.org/license-info) in effect on the date of 56 publication of this document. Please review these documents 57 carefully, as they describe your rights and restrictions with respect 58 to this document. Code Components extracted from this document must 59 include Simplified BSD License text as described in Section 4.e of 60 the Trust Legal Provisions and are provided without warranty as 61 described in the Simplified BSD License. 63 Table of Contents 65 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 66 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 4 67 3. Reference Architecture and Deployment Options . . . . . . . . 4 68 3.1. Architecture for DMM Forwarding Policy Configuration . . 4 69 3.2. Model 1 . . . . . . . . . . . . . . . . . . . . . . . . . 6 70 3.2.1. Role of the FPC Client Function . . . . . . . . . . . 7 71 3.2.2. Role of the FPC Agent Function . . . . . . . . . . . 7 72 3.3. Model 2 . . . . . . . . . . . . . . . . . . . . . . . . . 8 73 3.3.1. Role of the DMM FPC Client Function . . . . . . . . . 8 74 3.3.2. Role of the DMM FPC Agent Function . . . . . . . . . 8 75 4. Protocol to support Model I . . . . . . . . . . . . . . . . . 9 76 4.1. Data Structure . . . . . . . . . . . . . . . . . . . . . 9 77 4.2. Protocol Attributes . . . . . . . . . . . . . . . . . . . 12 78 4.3. Protocol Messages and Semantics . . . . . . . . . . . . . 19 79 4.4. Protocol Operation . . . . . . . . . . . . . . . . . . . 20 80 5. Protocol to support Model II . . . . . . . . . . . . . . . . 29 81 5.1. Protocol Attributes . . . . . . . . . . . . . . . . . . . 29 82 5.2. Protocol Messages and Semantics . . . . . . . . . . . . . 31 83 5.3. Protocol Operation . . . . . . . . . . . . . . . . . . . 33 84 6. YANG Data Model for the FPC protocol . . . . . . . . . . . . 34 85 6.1. FPC Base . . . . . . . . . . . . . . . . . . . . . . . . 34 86 6.1.1. FPC Base YANG Model . . . . . . . . . . . . . . . . . 34 87 6.1.2. FPC Base tree . . . . . . . . . . . . . . . . . . . . 51 88 6.2. FPC PMIP . . . . . . . . . . . . . . . . . . . . . . . . 57 89 6.2.1. FPC PMIP YANG Model . . . . . . . . . . . . . . . . . 57 90 6.2.2. FPC PMIP tree . . . . . . . . . . . . . . . . . . . . 60 91 7. Security Considerations . . . . . . . . . . . . . . . . . . . 65 92 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 65 93 9. Work Team Participants . . . . . . . . . . . . . . . . . . . 66 94 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 66 95 10.1. Normative References . . . . . . . . . . . . . . . . . . 66 96 10.2. Informative References . . . . . . . . . . . . . . . . . 66 97 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 67 99 1. Introduction 101 One objective of the Distributed Mobility Management (DMM) WG is the 102 separation of the mobility management Control- and Data-Plane to 103 enable flexible deployment, such as decentralized provisioning of 104 Data-Plane nodes (DPN). Data-Plane nodes can be configured to 105 function as an anchor for a registered Mobile Node's (MN) traffic, 106 others can be configured to function as a Mobile Access Gateway (MAG) 107 per the Proxy Mobile IPv6 protocol [RFC5213] or a Foreign Agent (FA) 108 per the Mobile IPv4 protocol [RFC3344]. Requirements for DMM have 109 been described in [RFC7333], whereas best current practices for DMM 110 are documented in [RFC7429]. 112 The Data-Plane must provide a set of functions to the Mobility 113 Control-Plane, such as support for encapsulation, IP address re- 114 writing, QoS differentiation and traffic shaping. In addition, means 115 for traffic description must be provided to complement traffic 116 treatment actions and build unambiguous Data-plane rules. These 117 requirements are met by various transport network components, such as 118 IP switches and routers, though configuration semantics differ 119 between them. 121 Forwarding Policy Configuration (FPC) per this document enables the 122 configuration of any Data-Plane node and type by the abstraction of 123 configuration details and the use of common configuration semantics. 124 The protocol using the FPC semantics is deployed between a Client 125 function, which is associated with the Mobility Management Control- 126 Plane, and an Agent function. The Agent function enforces the Data- 127 Plane configuration and can be present on a transport network 128 controller or co-located with a Data-Plane node. The Agent applies 129 the generalized configuration semantics to configuration, which is 130 specific to the Data-Plane node and type. 132 This specification follows a common functional architecture, which 133 utilizes the FPC protocol between the Client and Agent functions, and 134 supports two operational models, Model I and Model II. 136 A Client supporting Model I interacts with the Agent to build 137 unambiguous rules which are to be enforced in the Data-Plane. An 138 Agent supporting Model I translates a rule, which follows the data 139 model herein, into one or multiple configuration actions to enforce 140 the rule in the Data-Plane. 142 A Client supporting Model II utilizes a sequence of control messages 143 to interact with the Agent, where each control message has an 144 unambiguous semantic, e.g. to set up a tunnel interface or to 145 configure a policy route in a Data-Plane node. An Agent supporting 146 Model II performs a configuration action per the semantics of the 147 received control message. 149 The availability of both operational models enables tailored 150 implementation and deployment of Control-/Data-Plane separation in 151 mobile communication gateways, e.g. by having the Mobility Control- 152 Plane directly communicating to a Data-Plane node as per Model II, or 153 per Model I by the deployment of a Network Controller in between the 154 Mobility Control-Plane and Data-Plane nodes, which are under control 155 of the Network Controller. Support for both the models enables an 156 operator to transition their network in incremental phases. 158 The architecture and reference interface specified in this document 159 is not tied to any specific Control-Plane protocol that is in use in 160 the mobility network, or to any type of access technology. The 161 mobility protocols in use can be Proxy Mobile IPv6, GTP, IPSec or 162 other protocols; and the access network can be 4G LTE, WiFi, or 5G. 163 These aspects have no direct implication on the FPC interface that is 164 between Control- and Data-Plane nodes. 166 2. Conventions and Terminology 168 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 169 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 170 document are to be interpreted as described in [RFC2119]. 172 3. Reference Architecture and Deployment Options 174 3.1. Architecture for DMM Forwarding Policy Configuration 176 The DMM Forwarding Policy Configuration (FPC) protocol enables the 177 separation of the mobility management Control-Plane from the Data- 178 Plane and provides the required control and semantics in between 179 these two planes. Figure 1 depicts an exemplary use case where IP 180 traffic between a Correspondent Node (CN) and a Mobile Node (MN) 181 traverses multiple DPNs, each applying policies as per the Control- 182 Plane's request. Policies in the one or multiple DPNs can result in 183 traffic steering according to a host-route, packet scheduling and 184 marking according to a subscriber's QoS profile, or forwarding rules 185 (e.g. encapsulation within GRE or GTP-U tunnel). 187 +--------------------------+ 188 | Mobility Control | 189 +--------------------------+ 190 | | | 191 | | | 192 | | | 193 \ / V V V 194 +--+ -o- +---+ +---+ +---+ +--+ 195 |MN| ---- |---|DPN|<========|DPN|<----|DPN|<--|CN| 196 +--+ | +---+ +---+ +---+ +--+ 197 Rules: Rules: Rules: 198 Encap,Decap, Encap,Decap Policy-Route, 199 Forward,QoS Forward,QoS Forward 201 Figure 1: Exemplary illustration of DMM traffic steering and policy 202 enforcement at Data Plane Nodes (DPN) 204 Mobility Control-Plane functions have the following roles in common: 206 o Tracking a mobile node's attachment, detachment from the access 207 network 209 o Accept requests to set up and maintain mobility-related Data-Plane 210 paths between DPNs, enforcing QoS and forwarding policies. Such 211 requests are a result of mobility signaling between different 212 Mobility Control-Plane functions. 214 o Ensure that required rules to establish and maintain connectivity 215 of an MN with its correspondent nodes are enforced in the Data- 216 Plane. 218 o Participate in monitoring the DPNs' operation and support the 219 handling of exceptions, e.g. the detection of a partial DPN 220 failure and the diversion of traffic through a different DPN. 222 o Maintain consistency between multiple DPNs which enforce policy 223 rules to ensure connectivity between a MN and its correspondent 224 services. 226 Mobility Data-Plane functions have the following roles in common: 228 o Forward and treat traffic according to the policies and directives 229 sent by the Mobility Control-Plane 231 o Provide status information (e.g. load, health, statistics and 232 traffic volume) and events related to service failure upon request 234 o Participate in the process of topology acquisition, e.g. by 235 exposing relevant topological and capability information, such as 236 support for QoS differentiation and supported encapsulation 237 protocols 239 The protocol for DMM FPC applies to the interface between a FPC 240 Client function and a FPC Agent function, as depicted in Figure 2. 241 The FPC Client function is associated with an application function of 242 the mobility management Control-Plane, e.g. a Local Mobility Anchor 243 Control-Plane function per the Proxy Mobile IPv6 protocol. The FPC 244 Agent function processes the FPC protocol semantics and translates 245 them into configuration commands per the DPN's technology. In one 246 example, an FPC Agent can be co-located with a Network Controller, 247 which enforces forwarding rules on a set of Data-plane nodes. In 248 another example, the Agent can be co-located with a Data-Plane node 249 to directly interact with interface management and the router's RIB 250 Manager. The mapping of the common FPC semantics and policy 251 description to the configuration commands of a particular DPN is 252 specific to the DPN's technology and the Agent's implementation. 254 +-------------------------+ 255 | Mobility Control-Plane | 256 | | 257 |+--------[API]----------+| 258 || FPC Client Function || 259 |+----------^------------+| 260 +-----------|-------------+ 261 | 262 | DMM FPC protocol 263 | 264 +-----------|-------------+ 265 |+----------v------------+| 266 || FPC Agent Function || 267 |+-----------------------+| 268 | | 269 | DPN Configuration API | 270 +-------------------------+ 272 Figure 2: Functional reference architecture for DMM Forwarding Policy 273 Configuration (FPC) 275 3.2. Model 1 276 3.2.1. Role of the FPC Client Function 278 The FPC Client function, which follows Model I operation, includes 279 the following tasks: 281 o Build one or multiple FPC Control messages/attributes to 282 establish, update or delete rules on one or multiple DPN(s) 283 according to the Mobility Control-Plane's directives 285 o Apply a DPN's policy rules (encapsulation, address re-write, QoS, 286 traffic monitoring) on the basis of properties bound to logical 287 ports (similar to the bearer concept in cellular networks) 289 o Build, modify or delete logical ports as needed 291 o Bind associated policy rules as one or multiple properties to a 292 logical port 294 o Apply traffic forwarding rules (e.g. per-IP flow, per-MN, per-IP, 295 per-prefix) on the basis traffic descriptions bound to logical 296 ports 298 o Send each generated FPC control message to the FPC Agent 300 o Keep record of the configured policy rules and interact with the 301 FPC Agent to ensure proper synchronization between Mobility 302 Control-Plane states and rules configured on the FPC Agent 304 o Process received Response, Notification and Query messages issued 305 by a FPC Agent and interact with the Control-Plane to act 306 accordingly 308 3.2.2. Role of the FPC Agent Function 310 The FPC Agent function, which follows Model I operation, includes the 311 following tasks: 313 o Process received Control messages issued by a FPC Client Function 315 o Apply received rules to local configuration (e.g. encapsulation, 316 NA(P)T, traffic prioritization and scheduling) in the Data-Plane 318 o Maintain administrative data as well as operational data, which 319 describes the status of the rules in the Data-Plane 321 o Monitor events (e.g. failure, incomplete rule) and issue an 322 associated message to the FPC Client Function (NOTIFICATION, 323 QUERY) 325 3.3. Model 2 327 3.3.1. Role of the DMM FPC Client Function 329 The FPC Client function, which follows Model II operation, includes 330 the following tasks: 332 o The FPC Client offers a set of services to the mobility control 333 plane entities. These services are for activating/deactivating 334 specific configuration on a Data-Plane node supported by a FPC 335 Agent. These services for example are creation/deletion of a 336 layer-3 tunnel; adding/deleting an IP route; 338 o The FPC Client translates the request from the mobile control 339 plane as a FPC message. The message identifies the service name 340 and includes a set of information elements. This message is sent 341 to the FPC Agent over the FPC interface. 343 3.3.2. Role of the DMM FPC Agent Function 345 The FPC Agent function, which follows Model II operation, includes 346 the following tasks: 348 o FPC Agent offers a set of services to the FPC client. Each of 349 these services have a well-defined meaning and can be invoked by 350 the FPC Client passing a set of parameters. These services for 351 example are creation/deletion of a layer-3 tunnel; adding/deleting 352 an IP route. 354 o Any FPC Client can invoke a specific service on the FPC Agent 355 through the use of FPC messaging interface. The interface 356 semantics allow the identification of the service request and for 357 inclusion of the parameters relevant for that service request. 359 o FPC Agent processes a FPC message and identifies the service 360 request. The FPC Agent maps the service request to a local 361 configuration and enables that configuration in the forwarding 362 plane. For example, if there is a service request for Tunnel 363 creation including the relevant parameters such as source IP 364 address, destination IP address and encapsulation type, this 365 request will result in the FPC Agent configuring such tunnel 366 configuration on the Data-Plane node. 368 o The FPC Agent provides a resulting status code on how the request 369 was executed by the agent. 371 4. Protocol to support Model I 373 4.1. Data Structure 375 To abstract from configuration details of an IP switch or IP router 376 on the FPC protocol interface, Model I adopts the construct of 377 logical ports to describe rules for D-Plane processing. A port binds 378 one or multiple properties, which describe traffic treatment actions, 379 such as a QoS policy, IP address re-write or packet encapsulation. 380 Which traffic is treated is determined by one or multiple traffic 381 descriptors, which also bind to that port. A group of one or 382 multiple traffic descriptors, one or multiple properties defining 383 traffic treatment actions and the port identifier make a rule. The 384 port identifier serves as key to access the rule. 386 All traffic arriving at a Data-Plane node and matching a traffic 387 descriptor will be treated per the properties bound to the port the 388 traffic descriptor is also bound to. For example, Traffic Selectors 389 [RFC6088], which can be bound to a port, can identify single or 390 multiple IP flows. Aggregated IP traffic destined toward a given IP 391 address prefix or originated from an address matching a particular IP 392 address range can be described using the Traffic Selector or an IP 393 prefix traffic descriptor per this specification. 395 In addition to traffic descriptors and traffic treatment actions, 396 which build a Data-Plane processing rule, a port has associated 397 operational data, which tracks the status of rule enforcement in a 398 selected Data-Plane node. A rule can also have administrative data 399 such as its directionality (uni- or bi-directional) and 400 administrative status such as enabled, disabled or virtual. 401 Furthermore, an identifier of the Data-Plane node to which the rule 402 applies is kept in the operational data associated with a port. 404 When the Client desires specific operational state for the port, it 405 may apply administrative state properties to the port. This, 406 however, may not take immediate effect on the Data-Plane Node. Thus, 407 Client implementations must support situations where differences 408 exist between configured and operational state of a port. A Client 409 can request operational data associated with a particular port from 410 an Agent. 412 A Client adds, modifies or deletes a rule on an Agent using the FPC 413 protocol messages. The protocol enables a Client to provide 414 additional administrative information about a particular port or a 415 group of ports to the Agent. This includes control of the operation 416 of a rule, e.g. whether a rule associated with a particular port 417 applies only uni-directionally or bi-directionally. In case of bi- 418 directionality, an Agent can apply a rule associated with a single 419 port in the Data-Plane to both directions. As example, a rule which 420 performs re-writing of an arriving packet's destination IP address 421 from IP_A to IP_B matching an associated Traffic Selector, can be 422 enforced in the Data-Plane via an Agent to implicitly consider 423 matching arriving packet's source IP address against IP_B and re- 424 write the source IP address to IP_A. 426 Figure 3 illustrates the generic policy configuration model as used 427 between a FPC Client and a FPC Agent. 429 TrafficDescriptor_1-+ +--Property_1 430 | | 431 TrafficDescriptor_2-+------+--Property_2 432 : | +--------+| 433 : : /Adm Data/ +--Property_3 434 : | +--------+ : : 435 TrafficDescriptor_M-+ +-------+ +--Property_N 436 /OP Data/ 437 +-------+ 438 +-------------------+ +---------------------+ 439 | Bind 1..M traffic | | Bind 1..N traffic | 440 | templates to | --------> | treatment actions | 441 | a port | | to a port | 442 +-------------------+ +---------------------+ 444 | | 445 +------------------ Data-Plane Rule --------------------+ 447 Figure 3: Structure of rules on Client/Agent defining Data-Plane 448 traffic treatment 450 As depicted in Figure 3, the port represents the anchor of a rule. A 451 Client and Agent use the identifier of a port to access the rule and 452 perform modifications of traffic descriptors or properties. From the 453 viewpoint of packet processing, arriving packets are matched against 454 traffic descriptors and processed according to the treatment actions 455 specified in the list of properties associated with the port. 457 A Client can assign an existing or new port to a group of ports using 458 a port group identifier. The logic behind grouping multiple ports is 459 up to the Control-Plane. As example, multiple rules associated with 460 a single mobile node can be grouped and identified by the port group 461 identifier. In case the Control-Plane needs to delete all rules 462 associated with the mobile node, the Client can issue a message to 463 delete a port one and identify the group group identifier instead of 464 deleting each port individually. A Client can also apply 465 administrative properties to a group of ports by adding the port 466 group ID to the FPC message. 468 A Client can complement a traffic descriptor with a match priority 469 value to allow unambiguous traffic matching on the Data-Plane. If 470 the Client does not provide a match priority value with a traffic 471 descriptor or a group of traffic descriptors have the same priority 472 value, an Agent enforces the rule in the Data-Plane node to enable 473 traffic detection by longest prefix match. 475 Operational information of a port includes the data listed in the 476 following table: 478 +---------------------------------------------------------------------+ 479 | Admin Data | Format Clarification | Description | 480 +=====================================================================+ 481 | DPN_ID | Sect. 4.2 | Identifies a Data-Plane node| 482 | | | to which the rule applies | 483 +---------------------------------------------------------------------+ 484 | PRT_BIDIR | BOOLEAN | Bidirectionality of a port | 485 | | | (cleared = unidirectional) | 486 +----------------+----------------------+-----------------------------+ 487 | ADMIN_STATUS | [8, admin status] | Requested status for a rule | 488 | | | in a Data-Plane node | 489 | | | (enabled, disabled, virtual)| 490 +---------------------------------------------------------------------+ 491 | SESSION_STATUS | [8, session status] | Status of a session in the | 492 | | | Control-Plane (complete, | 493 | | | incomplete, outdated) | 494 +---------------------------------------------------------------------+ 495 | PRT_GROUP_ID | [32, group id] | Identifies a group of ports | 496 | | | to which this port belongs | 497 +---------------------------------------------------------------------+ 498 | CLI_ID | Sect. 4.2 | Identifies the Client which | 499 | | | created this port | 500 +---------------------------------------------------------------------+ 501 | AGT_ID | Sect. 4.2 | Identifies the Agent which | 502 | | | enforces the rule as per | 503 | | | this port | 504 +---------------------------------------------------------------------+ 506 Figure 4: Administrative Data associated with a port 508 +---------------------------------------------------------------------+ 509 |Operational Data| Format Clarification | Description | 510 +=====================================================================+ 511 | OPER_STATUS | [8, oper status] | Status of a rule in a | 512 | | | Data-Plane node (enabled, | 513 | | | disabled, virtual) | 514 +---------------------------------------------------------------------+ 515 | SERVICE_STATUS | [8, service status] | Ability of an enabled rule | 516 | | | to serve traffic (complete, | 517 | | | incomplete, outdated) | 518 +---------------------------------------------------------------------+ 520 Figure 5: Operational Data associated with a port 522 A Client MAY apply an administrative state property to a port 523 indicating the desired operational status of a port, e.g. enabled, 524 disabled or virtual (not intended to serve traffic but used as a 525 template for other ports). Rules specified by an enabled port are 526 enforced in the Data-Plane node. A disabled port on an Agent can be 527 useful for pre-configuration, e.g. other operations can be performed 528 on the port prior to its enablement. Ultimately, a disabled port is 529 intended to be enabled. Virtual ports can serve as a reference to 530 clone new ports, which can then be enabled. When creating a cloned 531 port, the Client can update or add properties to suit the rule that 532 should be enforced in the Data-Plane. 534 A Client MAY set a Session state for a particular port or group of 535 ports on the Agent to guide the Agent on how to treat local events. 536 As example, an Agent SHOULD refrain from sending an FPC message to 537 the Client as result of a local event, which indicates a missing 538 rule, in case the session state is 'incomplete', as the Agent can 539 expect the Control-Plane to provide the missing rule unsolicited. In 540 case the session state is 'outdated', the Agent MAY notify the Client 541 to update the associated rule on the Agent. 543 4.2. Protocol Attributes 545 Protocol messages as per Section 4.3 identify an FPC Client or Agent 546 function, as well as a DPN, and carry traffic descriptor attributes, 547 logical port identification and properties specifying traffic 548 treatment actions. Traffic can be described per-host, in aggregate 549 or per-IP flow. A Client MAY append administrative properties to a 550 message to indicate the desired status of a port to the Agent. 552 This document specifies attributes from the following categories: 554 o Identifier attributes 555 o Traffic Descriptors 557 o Properties specifying traffic treatment actions 559 o Protocol-specific Properties 561 o Administrative properties 563 +---------------------------------------------------------------------+ 564 | Attribute | Format Clarification | Description | 565 +=====================================================================+ 566 | Identifiers | 567 +---------------------------------------------------------------------+ 568 | PRT_ID | [32,PRT_ID] | Identifies a logical Port | 569 +---------------------------------------------------------------------+ 570 | PRT_GROUP_ID | [32,PRT_GROUP_ID] | Identifies a group of | 571 | | | logical Ports | 572 +---------------------------------------------------------------------+ 573 | PRT_PROP_ID | [32,PRT_ID] | Identifies a logical Port | 574 | | [8,PROP_ID] | and one of its properties | 575 +---------------------------------------------------------------------+ 576 | PRT_TD_ID | [32,PRT_ID] | Identifies a logical Port | 577 | | [8,TD_ID] | and a traffic descriptor | 578 | | | that applies to the port | 579 +----------------+----------------------+-----------------------------+ 580 | CLI_ID | [16, Carrier ID] | Identifies an | 581 | | [16, Network ID] | FPC Client function | 582 | | [32, Client ID] | | 583 +---------------------------------------------------------------------+ 584 | AGT_ID | [16, Carrier ID] | Identifies an | 585 | | [16, Network ID] | FPC Agent function | 586 | | [32, Agent ID] | | 587 +---------------------------------------------------------------------+ 588 | DPN_ID | [16, Carrier ID] | Identifies a Data Plane | 589 | | [16, Network ID] | Node (DPN) | 590 | | [32, DPN ID] | | 591 +---------------------------------------------------------------------+ 592 | MONITOR_ID | [32, Monitor ID] | Identifies a registered | 593 | | | monitor | 594 +---------------------------------------------------------------------+ 595 | EVENT_TYPE_ID | [8, Event Type ID] | Identifies an event type | 596 +---------------------------------------------------------------------+ 597 | Optional Identifiers | 598 +---------------------------------------------------------------------+ 599 | SERVICE_PATH_ID| [24-bit identifier] | Service Path Identifier | 600 +---------------------------------------------------------------------+ 602 Figure 6: Model I Protocol Attributes: Identifiers 604 +----------------------------------------------------------------------+ 605 | Attribute | Format Clarification | Description | 606 +======================================================================+ 607 | Properties | 608 +----------------------------------------------------------------------+ 609 | PROP_TUN | [type][src][dst] | Property Encapsulation, | 610 | | | indicates type GRE, IP, | 611 | | | GTP | 612 +----------------------------------------------------------------------+ 613 | PROP_REWR | [in_src_ip][out_src_ip] | Property NAT defines | 614 | | [in_dst_ip][out_dst_ip] | IP address and port | 615 | | [in_src_port][out_src_port]| re-write rules | 616 | | [in_dst_port][out_dst_port]| | 617 +----------------------------------------------------------------------+ 618 | PROP_QOS | [QoS index type][index] | Property QoS refers to | 619 | | [DSCP] | single index and DS Code| 620 | | | Point to write | 621 +----------------------------------------------------------------------+ 622 | PROP_QOS_GBR | [GBR] *[PRT_ID] | Guaranteed Bit Rate and | 623 | | | single or multiple | 624 | | | PRT_IDs to which the | 625 | | | GBR applies when being | 626 | | | aggregated | 627 +---------------+----------------------------+-------------------------+ 628 | PROP_QOS_MBR | [MBR] *[PRT_ID] | Maximum Bit Rate and | 629 | | | single or multiple | 630 | | | PRT_IDs to which the | 631 | | | MBR applies when being | 632 | | | aggregated | 633 +---------------+----------------------------+-------------------------+ 634 | PROP_GW | [ip address next hop] | IP address of the Next | 635 | | | Hop to which IP packets | 636 | | | should be forwarded | 637 +----------------------------------------------------------------------+ 638 | PROP_CPY_FORW | [PRT_ID] | Copy IP packets, treat | 639 | | | the duplicates per the | 640 | | | properties of the | 641 | | | referred port | 642 +----------------------------------------------------------------------+ 643 | PROP_DROP | | Drop IP packet | 644 +----------------------------------------------------------------------+ 645 | PROP_CONCAT | [PRT_ID] | Include treatment per | 646 | | | the referred port into | 647 | | | the rule | 648 +----------------------------------------------------------------------+ 649 | Optional Properties | 650 +----------------------------------------------------------------------+ 651 | PROP_NSH | [SERVICE_PATH_ID] | Include NSH | 652 | | [Service Index] | | 653 +----------------------------------------------------------------------+ 655 Figure 7: Model I Protocol Attributes: Traffic Treatment Properties 657 +---------------------------------------------------------------------+ 658 | Attribute | Format Clarification | Description | 659 +=====================================================================+ 660 | Protocol-specific | 661 +---------------------------------------------------------------------+ 662 | IPIP_CONF | | IP-encapsulation | 663 | | | configuration attribute | 664 +---------------------------------------------------------------------+ 665 | GRE_CONF | [prototype][seq-#] | GRE_encapsulation | 666 | | [key] | configuration attribute | 667 +---------------------------------------------------------------------+ 668 | GTP_CONF | [TEID_local] | GTP-U encapsulation | 669 | | [TEID_remote] | configuration attribute | 670 | | [seq-#] | | 671 +---------------------------------------------------------------------+ 673 Figure 8: Model I Protocol Attributes: Protocol-specific 675 +---------------------------------------------------------------------+ 676 | Attribute | Format Clarification | Description | 677 +=====================================================================+ 678 | Traffic Descriptor Container | 679 +---------------------------------------------------------------------+ 680 | TD_CONTAINER | [PRT_TD_ID] | Traffic handling priority, | 681 | | [8, PRIO] | One or multiple traffic | 682 | |*[traffic descriptor] | descriptors | 683 +---------------------------------------------------------------------+ 685 Figure 9: Protocol Attributes: Traffic Description Container 687 +---------------------------------------------------------------------+ 688 | Attribute | Format Clarification | Description | 689 +=====================================================================+ 690 | Traffic Descriptors | 691 +---------------------------------------------------------------------+ 692 | TD_DST_IP | [IP address] | Aggregated or per-host dst | 693 | | [Prefix Len] | IP address/prefix rule | 694 +---------------------------------------------------------------------+ 695 | TD_SRC_IP | [IP address] | Aggregated or per-host src | 696 | | [Prefix Len] | IP address/prefix rule | 697 +---------------------------------------------------------------------+ 698 | TD_TS | [Traffic Selector] | Traffic Selector, | 699 | | | Format as per RFC6088 | 700 +----------------+----------------------+-----------------------------+ 702 Figure 10: Protocol Attributes: Traffic Descriptors 704 +----------------------------------------------------------------------+ 705 | Attribute | Format Clarification | Description | 706 +======================================================================+ 707 | Properties | 708 +----------------------------------------------------------------------+ 709 | ADMIN_STATE | [state] | Administrative state: | 710 | | | enabled, disabled, | 711 | | | virtual | 712 +----------------------------------------------------------------------+ 713 | SESSION_STATE | [state] | Session state: complete,| 714 | | | incomplete, outdated | 715 +----------------------------------------------------------------------+ 716 | CLONE_REF | [PRT_ID] | Cloning of a rule based | 717 | | | on referred port ID | 718 +----------------------------------------------------------------------+ 719 | ACT_DELAY | [delay] | Delay in ms before an | 720 | | | updated rule takes | 721 | | | effect at the Agent | 722 +----------------------------------------------------------------------+ 723 | PRT_BIDIR | [boolean] | When set, the rule per | 724 | | | this port is applied | 725 | | | bi-directionally | 726 +----------------------------------------------------------------------+ 727 | RESULT | [result] | Result of processing | 728 | | | a message: | 729 | | | success, failure | 730 +----------------------------------------------------------------------+ 732 Figure 11: Protocol Attributes: Administrative Properties 734 +----------------------------------------------------------------------+ 735 | Attribute | Format Clarification | Description | 736 +======================================================================+ 737 | Monitors and Notification | 738 +----------------------------------------------------------------------+ 739 | MONITOR | Monitor-ID Attribute | A Monitor | 740 | | [REPORT CONFIG] | | 741 +----------------------------------------------------------------------+ 742 | REPORT_CONFIG | [8, REPORT-TYPE] | The type of report and | 743 | | [TYPE_SPECIFIC_INFO] | type-specific | 744 | | | configurations | 745 +----------------------------------------------------------------------+ 746 | PERIODIC_CONFIG | [32, period] | REPORT-TYPE is PERIODIC, | 747 | | | period specifies the | 748 | | | report interval (ms) | 749 +----------------------------------------------------------------------+ 750 | THRESHOLD_CONFIG | [32, low] | REPORT-TYPE is THRESHOLD, | 751 | | [32, hi] | Low Threshold, | 752 | | | High Threshold (at least | 753 | | | one value required) | 754 +----------------------------------------------------------------------+ 755 | SCHEDULED_CONFIG | [32, time] | REPORT-TYPE is SCHEDULED, | 756 | | | Time when NOTIFY is sent | 757 | | | | 758 +----------------------------------------------------------------------+ 759 | EVENTS_CONFIG | *[EVENT_TYPE_ID] | List of Events that | 760 | | | trigger the Monitor | 761 +----------------------------------------------------------------------+ 762 | DEREG_INFO | *[MONITOR_ID] | Monitors to deregister, | 763 | | [boolean] | Boolean (optional) | 764 | | | indicates if a successful | 765 | | | DEREG triggers a NOTIFY | 766 | | | with final data | 767 +----------------------------------------------------------------------+ 768 | NOTIFY_INFO | [32, Notification-Id] |ID used for Client ordering| 769 | | [MONITOR-ID] |Monitor-ID of the NOTIFY, | 770 | | [32, TRIGGER] |TRIGGER for the NOTIFY, | 771 | | [32, timestamp] |Timestamp of when the | 772 | | |attributes were recorded | 773 +----------------------------------------------------------------------+ 775 Figure 12: Protocol Attributes: Monitor and Notify Attributes 777 TRIGGERS include but are not limited to the following values: 779 o Events specified in the Event List of an EVENTS CONFIG 781 o LOW_THRESHOLD_CROSSED 782 o HIGH_THRESHOLD_CROSSED 784 o PERIODIC_REPORT 786 o SCHEDULED_REPORT 788 o PROBED 790 o DEREG_FINAL_VALUE 792 4.3. Protocol Messages and Semantics 794 The following table specifies all protocol messages to create and 795 modify a rule by creating and deleting logical Ports, adding and 796 modifying properties and binding traffic descriptors to a port. 797 Furthermore, messages can schedule tasks, such as monitoring, at an 798 Agent or probe the status of the scheduled task from a Client. 799 Additional messages enable the Data-Plane to notify or query the 800 Control-Plane through the Agent and Client functions. 802 +---------------------------------------------------------------------+ 803 | Message | Description | 804 +=====================================================================+ 805 | Messages issued by the FPC Client | 806 +---------------------------------------------------------------------+ 807 | PRT_ADD | Add a logical port | 808 +---------------------------------------------------------------------+ 809 | PRT_DEL | Delete a logical port | 810 +---------------------------------------------------------------------+ 811 | PROP_ADD | Add a property to a logical port | 812 +---------------------------------------------------------------------+ 813 | PROP_MOD | Modify a property of a logical port | 814 +---------------------------------------------------------------------+ 815 | PROP_DEL | Delete a property from a logical port | 816 +---------------------------------------------------------------------+ 817 | TD_ADD | Add traffic descriptor to a logical port | 818 +---------------------------------------------------------------------+ 819 | TD_MOD | Modify an existing traffic descriptor | 820 +---------------------------------------------------------------------+ 821 | TD_DEL | Delete an existing traffic descriptor | 822 +---------------------------------------------------------------------+ 823 | MONITOR_REG | Install a monitor at an Agent. The message | 824 | | includes information about the attribute to | 825 | | monitor and the reporting method. | 826 +---------------------------------------------------------------------+ 827 | MONITOR_DEREG | Remove a monitor at an Agent. | 828 +---------------------------------------------------------------------+ 829 | PROBE | Probe the status of a registered event | 830 +---------------------------------------------------------------------+ 831 | Messages issued by the FPC Agent | 832 +---------------------------------------------------------------------+ 833 | | Notify the Client about the status of a | 834 | NOTIFY | monitored attribute per the reporting method | 835 | | (periodic / event trigger / probed) | 836 +---------------------------------------------------------------------+ 837 | QUERY | Query the Client about missing rules/states | 838 +---------------------------------------------------------------------+ 840 Figure 13: Protocol Messages 842 4.4. Protocol Operation 844 The following list comprises a more detailed description of each 845 message's semantic. 847 An FPC Client and Agent MUST identify themself using the CLI_ID and 848 AGT_ID respectively to ensure that for all transactions a recipient 849 of an FPC message can unambiguously identify the sender of the FPC 850 message. A Client MAY direct the Agent to enforce a rule in a 851 particular DPN by including a DPN_ID value. Otherwise the Agent 852 selects a suitable DPN to enforce a rule and notifies the Client 853 about the selected DPN using the DPN_ID. 855 o PRT_ADD - Issued by a Client to add a new logical port at an 856 Agent. An Agent receiving the PRT_ADD message identifies the new 857 port according to the included port identifier (PRT_ID). The 858 Agent adds a new port into its conceptual data structures using 859 the port identifier as key. Optionally, the PRT_ADD message MAY 860 include properties as well as traffic descriptors, which are bound 861 and refer to the new port. This enables a Client to issue a new 862 configuration in a single transaction with an Agent. A Client MAY 863 assign a port to a group of ports and indicate the associated port 864 group identifier (PRT_GROUP_ID) in the PRT_ADD message. 866 o PRT_DEL - Used by a Client to delete a port. An Agent receiving 867 such message MUST delete all properties associated with the 868 identified port. 870 o PROP_ADD - Used by the Client to add a new property to an existing 871 port. The property is unambiguously identified through a property 872 identifier (PRT_PROP_ID). All traffic, which is directed to this 873 port is treated according to the existing and newly added 874 property. Optionally, the PROP_ADD message can include traffic 875 descriptors, which refer to the port to which the properties are 876 bound. This enables a Client to add new rules to the existing 877 port to which the new properties have been bound in a single 878 transaction. 880 o PROP_MOD - Used by a Client to modify an existing property. For 881 example, a tunnel property can be changed to direct traffic to a 882 different tunnel endpoint in case of a mobile node's handover. 883 Optionally, the PROP_MOD message can include rules descriptions, 884 which refer to the port whose properties are modified. This 885 enables a Client to add new rules to the existing port whose 886 properties have been modified in a single transaction. 888 o PROP_DEL - Used by a Client to delete one or multiple properties, 889 each being identified by a property identifier. 891 o TD_ADD - Used by a Client to add a traffic descriptor to a port. 892 The traffic descriptor SHOULD unambiguously identify aggregated 893 traffic (longest prefix), per host IP traffic or per-flow traffic 894 in the TD_ADD command and bind the identified traffic to a port. 895 Traffic descriptors are carried in a TD_CONTAINER, which allows 896 the identification of a traffic description as well as the 897 indication if a traffic handling priority in case the sole traffic 898 description does not suffice unambiguous traffic matching. An 899 Agent receiving a TD_ADD command MUST add the traffic descriptor 900 to its local conceptual data structures and apply commands for 901 local configuration to add the new traffic descriptor to the rule 902 on the DPN. Multiple traffic descriptors can bind to the same 903 port. All traffic captured by the traffic descriptor will 904 experience the same treatment per the properties which bind to 905 that port. 907 o TD_MOD - Used by a Client to modify an existing traffic 908 descriptor. An Agent receiving such messages MUST apply commands 909 to the local configuration and update the rule on the DPN 910 accordingly. 912 o TD_DEL - Used to remove an existing traffic descriptor from a 913 port. The Agent receiving such messages MUST delete the 914 identified traffic descriptor from the local configuration and 915 update the rule on the DPN accordingly. 917 o MONITOR_REG - Used by a Client to install a monitor at an Agent. 918 A monitor contains the monitor id, attribute to monitor, and 919 optional reporting configuration. The attribute may be any ID 920 with the exception of MONITOR_ID and EVENT_TYPE_ID. When a 921 Monitor registration is applied, the reporting configuration MUST 922 be applicable to the attribute monitored, e.g. a Monitor using a 923 Threshold configuration cannot be applied to a Port but it can be 924 applied to a numeric Port Property. Four report types are 925 defined: (1) Periodic reporting specifies an interval by which a 926 NOTIFY is sent to the Client, (2) Event reporting specifies a list 927 of EVENT_TYPE_IDs that, if they occur and are related to the 928 monitored attribute, will result in sending a NOTIFY to the 929 Client, (3) Scheduled reporting specifies the time (in seconds 930 since Jan 1, 1970) when a NOTIFY for the monitor should be sent to 931 the Client. Once this Monitor's NOTIFY is completed the Monitor 932 is automatically de-registered, (4) Threshold reporting specifies 933 one or both of a low and high threshold. When these values are 934 crossed a corresponding NOTIFY is sent to the Client. All 935 monitored data can be requested by the Client at any time using 936 the PROBE message. Thus, reporting configuration is optional and 937 when not present only PROBE messages may be used for monitoring. 938 If a SCHEDULED or PERIODIC configuration is provided during 939 registration with the time related value (time or period 940 respectively) of 0 a NOTIFY is immediately sent and the monitor is 941 immediately de-registered. This method should when a MONITOR has 942 not been installed, an immediate NOTIFY is sufficient for the 943 Client's needs and the Client has no further need for the monitor 944 to be registered. An Agent may reject a registration if it or the 945 DPN has insufficient resources. 947 o MONITOR_DEREG - Used by a Client to remove a monitor from an 948 Agent. The message identifies one or multiple monitors by 949 including the MONITOR_ID. The message also includes an optional 950 Boolean value that, when true, will result in NOTIFY messages 951 being sent for the MONITOR_ID to the Client. When a monitor has a 952 reporting configuration of SCHEDULED it is automatically de- 953 registered after the NOTIFY occurs. An Agent or DPN may 954 temporarily suspend monitoring if insufficient resources exist. 955 In such a case the Agent MUST notify the Client. 957 o PROBE - Used by a Client to retrieve information about a 958 previously installed monitor. The PROBE message SHOULD identify 959 one or more monitors by means of including the associated monitor 960 identifier. An Agent receiving a PROBE message SHOULD send the 961 requested information in a single or multiple NOTIFY messages. 963 o NOTIFY - Used by an Agent to report the status of a monitor to a 964 Client. This message contains the MONITOR_ID, a NOTIFICATION_ID 965 to permit the Client to distinguish amongst many monitoring 966 related requests, a TRIGGER that caused the NOTIFY message, the 967 timestamp of when the monitored information was record for the 968 message along with the value of the monitored attribute. 970 o QUERY - Used by an Agent to request an update of port properties 971 via a Client. The Agent adds one or multiple port identifiers to 972 the QUERY message to request all properties associated with the 973 identified port(s). The Agent MAY request the update of 974 particular properties associated with a port by including the 975 property and its identifier. As result of processing a QUERY 976 message, the Client sends one or multiple PROP_MOD messages with 977 the requested properties to the Agent. 979 All messages sent from a Client to an Agent MUST be acknowledged by 980 the Agent. The response must include all attributes as well as 981 status information, which indicates the result of processing the 982 message, using the RESULT property. In case the processing of the 983 message results in a failure, the Agent sets the RESULT accordingly 984 and MAY clear the property or traffic descriptor, which caused the 985 failure, in the response. 987 A Client MAY add a property to a port without providing all required 988 details of the attribute's value. In such case the Agent SHOULD 989 determine the missing details and provide the completed property 990 description back to the Client. In case the Agent cannot determine 991 the missing value of an attribute's value per the Client's request, 992 it leaves the attribute's value cleared in the response and sets the 993 RESULT to failure. As example, the Control-Plane needs to setup a 994 tunnel configuration in the Data-Plane but has to rely on the Agent 995 to determine the tunnel endpoint which is associated with the DPN 996 that enforces the rule. The Client adds the tunnel property 997 attribute to the FPC message and clears the value of the attribute 998 (e.g. IP address of the local tunnel endpoint). The Agent 999 determines the tunnel endpoint and includes the completed tunnel 1000 property in its response to the Client. 1002 The following list provides information on the use and semantics of 1003 attributes for traffic treatment: 1005 o PROP_TUN - Defines the properties for encapsulation into different 1006 tunnel headers. The property includes IP address information of 1007 tunnel endpoints as well as a type identifier specifying the 1008 encapsulation type. Further attributes may be included to provide 1009 information which is relevant for the configuration and 1010 initialization of the tunnel. 1012 o PROP_REWR - Defines the properties for IP address and port re- 1013 write. 1015 o PROP_QOS - Defines the QoS properties in terms of a known index 1016 type, e.g. LTE's Quality Class Index (QCI), and its value (QCI 1017 1..9), as well as a Differentiated Services Code Point (DSCP) to 1018 classify and mark packets. Additional QoS attributes may follow, 1019 to define Guaranteed Bit Rate (GBR) and Maximum Bit Rate (MBR) 1020 bounds. PROP_QOS_GBR and PROP_QOS_MBR attributes can apply to a 1021 single port or multiple ports. The latter is required to 1022 configure aggregate bounds, such as Aggregate Maximum Bit Rate 1023 (AMBR), taking traffic, which is forwarded through different ports 1024 (hence experiencing different treatment), into account. In such 1025 case the GBR/MBR attributes append multiple PRT_ID attributes to 1026 identify the ports which are to be monitored to determine the 1027 aggregated view of the bit rate. As alternative to binding a 1028 PROP_QOS_MBR property to each port whose traffic is to be taken 1029 into account for Aggregate Maximum Bitrate (AMBR) metering, a 1030 Client can create a separate port with a single PROP_QOS_MBR 1031 property. Other ports, whose traffic is to be metered per the 1032 AMBR, can refer to the port with the PROP_QOS_MBR property using 1033 the PROP_CONCAT property. The scope of attributes for QoS is 1034 aligned to [RFC7222]. The Allocation and Retention Priority (ARP) 1035 as per [RFC7222] is not present in the list of QoS-specific 1036 attributes, since ARP is treated and kept in the Control-Plane for 1037 granting requests for new resources and QoS, as well as for 1038 preempting other QoS configuration, if needed. 1040 o PROP_QOS_GBR - Defines the GBR bound for traffic associated with a 1041 port. 1043 o PROP_QOS_MBR - Defines the MBR bound for traffic associated with a 1044 port. 1046 o PROP_GW - Defines a Next Hop IP address, to which packets are 1047 forwarded. Using this attribute, the Control-Plane can configure 1048 a host-route in the Data-Plane to deviate from default routes. 1050 o PROP_CPY_FORW - Refers to a different port and results in 1051 treatment of a copy of packets per the properties bound to the 1052 referred port. 1054 o PROP_DROP - Defines a treatment action to drop packets of traffic 1055 associated with a port. As example, this treatment action can be 1056 used to enforce gating rules and filter traffic which does not 1057 match any traffic descriptor. 1059 o PROP_CONCAT - Traffic can be treated per properties bound to 1060 concatenated ports. After treatment of traffic according to the 1061 properties of a port, additional treatment actions per the 1062 properties bound to a separate port, which is referred to in the 1063 PROP_CONCAT property, apply to the traffic. As example, port 1064 concatenation can be used to enable AMBR metering to traffic which 1065 is associated with multiple other ports. 1067 o PROP_NSH - Defines the properties for a Network Service Header 1068 (NSH). The header is included to the classified IP flows. 1070 Unlike descriptors, overlapping or contradictory properties cannot be 1071 resolved by the Agent. For example, adding address translation 1072 related properties and a Drop property to a single port may result in 1073 needless activity in the DPN or it may reflect a temporary 1074 administrative activity where the port must Drop traffic. Other 1075 properties may be intentionally set, e.g. a property that invokes and 1076 accounting activity and a Drop property present on the same port. 1077 The FPC Client MUST avoid situations where contradictory properties 1078 or those that result in unnecessary activity are added to ports. 1079 Rather, in such situations, multiple ports MUST be used. In some 1080 obvious cases the Agent MAY raise a warning but a contradictory 1081 action. 1083 The following list provides information on the use and semantics of 1084 administrative properties: 1086 o ADMIN_STATE - A Client can apply an administrative state to a port 1087 indicating the desired operational status of a port (enabled, 1088 disabled, virtual). An Agent, which receives a message without 1089 ADMIN_STATE property, SHOULD consider the port to be 'enabled'. 1091 o SESSION_STATE - A Client can indicate to the Agent the status of a 1092 rule to serve Data-Plane traffic. A session state 'complete' 1093 confirms that a rule is valid and ready to serve Data-Plane 1094 traffic. A session state 'incomplete' hints to the Agent that 1095 more FPC message will arrive from the Client to complete a rule, 1096 whereas session state 'outdated' requires the Agent to solicit an 1097 update of the rule from the Client in case a rule with session 1098 state 'complete' is desired. An Agent, which receives a message 1099 without SESSION_STATE property, SHOULD assume the session state is 1100 'complete'. 1102 o CLONE_REF - Instead of repeatedly sending all properties and 1103 traffic descriptors for similar rules, a Client can take a clone 1104 of a previously configured rule as base for a new one by using the 1105 CLONE_REF property with a PRT_ADD message and refer to an existing 1106 port. The cloned port will be a copy of the referred port and 1107 serve as base for the new port. The cloned port will have its own 1108 port identifier, which will also be present in the port identifier 1109 portion of the property identifiers. After a cloned port has been 1110 created, it represents its own rule without any further dependency 1111 on the reference port which served as source to create the clone. 1112 A Client MAY apply updates to existing properties of the new port, 1113 as well as delete or add properties. Updates to the port in terms 1114 of new or changed properties and traffic descriptors MAY already 1115 come with the PRT_ADD message or subsequently using messages to 1116 handle properties and traffic descriptors. A Client can use the 1117 CLONE_REF property with messages to handle properties and traffic 1118 descriptors to achieve a different result. In such case these 1119 messages identify an existing port already and processing the 1120 CLONE_REF property on the receiving Agent will result in a reset 1121 of the identified port to match the properties of the port 1122 referred to in the CLONE_REF property. 1124 o ACT_DELAY - A Client can use this property to define a delay in ms 1125 before an updated rule takes effect at an Agent, e.g. an 1126 administrative state 'enabled' will be enforced by the Agent after 1127 the delay per the Client's request. 1129 o PRT_BIDIR - A Client uses this property to indicate to an Agent to 1130 apply a rule associated with a port bi-directionally. In case the 1131 PRT_BIDIR property is absent in a message, the Agent assumes a 1132 rule applies uni-directionally. 1134 o RESULT - An Agent uses this property to signal to the Client in a 1135 response the result of processing a message. 1137 Figure 14 illustrates an exemplary session life-cycle based on Proxy 1138 Mobile IPv6 registration via MAG Control-Plane function 1 (MAG-C1) 1139 and handover to MAG Control-Plane function 2 (MAG-C2). Edge DPN1 1140 represents the Proxy CoA after attachment, whereas Edge DPN2 serves 1141 as Proxy CoA after handover. As exemplary architecture, the FPC 1142 Agent and the network control function are assumed to be co-located 1143 with the Anchor-DPN, e.g. a Router. 1145 +-------Router--------+ 1146 +-----------+ |+-------+ +---------+| 1147 +------+ +------+ +-----+ FPC | | FPC | | Anchor | 1148 |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | 1149 +------+ +------+ +-----+-------+ +-------+ +---------+ 1150 [MN attach] | | | | 1151 |-------------PBU----->| | | 1152 | | |----(1)-PRT_ADD---------->| | 1153 | | | [PRT_ID] | | 1154 | | | | | 1155 | | |--(2)---PROP_ADD--------->| | 1156 | | | [PRT_ID,PROP_TUN] |--tun1 up->| 1157 | | | | | 1158 | | |--(3)---PROP_ADD--------->| | 1159 | | | [PRT_ID,PROP_QOS] |--tc qos-->| 1160 |<------------PBA------|--(4)----TS_ADD---------->| | 1161 | +----+ | | [PRT_ID, |-route add>| 1162 | |Edge| | | TD_CONTAINER(HNP)] | | 1163 | |DPN1| | | | | 1164 | +----+ | | | | 1165 | | | 1166 | |-=======================================================-| 1167 | | | | 1168 | [MN handover] | | | 1169 | |---PBU ---->| | | 1170 | | |--(5)---PROP_MOD--------->| | 1171 | |<--PBA------| [PRT_ID,PROP_TUN] |-tun1 mod->| 1172 | | | | | 1173 | | +----+ | | | 1174 | | |Edge| | | | 1175 | | |DPN2| | | | 1176 | | +----+ | | | 1177 | | | | | | 1178 | | |-============================================-| 1179 | | | | | 1181 Figure 14: Exemplary Message Sequence (focus on FPC reference point) 1183 After reception of the Proxy Binding Update (PBU) at the LMA Control- 1184 Plane function (LMA_C), the LMA-C selects a suitable DPN, which 1185 serves as Data-Plane anchor to the mobile node's (MN) traffic. The 1186 LMA-C adds a new logical port to the DPN to treat the MN's traffic 1187 (1) and includes a Port Identifier (PRT_ID) to the PRT_ADD command. 1188 The LMA-C identifies the selected Anchor DPN by including the 1189 associated DPN identifier. 1191 Subsequently, the LMA-C adds properties to the new port. One 1192 property is added (2) to specify the forwarding tunnel type and 1193 endpoints (Anchor DPN, Edge DPN1). Another property is added (3) to 1194 specify the QoS differentiation, which the MN's traffic should 1195 experience. At reception of the properties, the FPC Agent utilizes 1196 local configuration commands to create the tunnel (tun1) as well as 1197 the traffic control (tc) to enable QoS differentiation. After 1198 configuration of port properties have been completed, the LMA binds 1199 the traffic description for the MN's traffic to the port by sending a 1200 TS_CONTAINER to the Agent and identifying the MN's Nome Network 1201 Prefix (HNP) in the traffic descriptor. At the reception of the 1202 traffic descriptor, the Agent applies a new route to forward all 1203 traffic destined to the MN's HNP to the configured tunnel interface 1204 (tun1). 1206 During handover, the LMA-C receives an updating PBU from the handover 1207 target MAG-C2. The PBU refers to a new Data-Plane node (Edge DPN2) 1208 to represent the new tunnel endpoint. The LMA-C sends a PROP_MOD 1209 message (5) to the Agent to modify the existing tunnel property of 1210 the existing port and to update the tunnel endpoint from Edge DPN1 to 1211 Edge DPN2. Upon reception of the PROP_MOD message, the Agent applies 1212 updated tunnel property to the local configuration. 1214 To reduce the number of protocol handshakes between the LMA-C and the 1215 DPN, the LMA-C can append properties (PROP_TUN, PROP_QOS) and traffic 1216 descriptor attributes to the PRT_ADD message, as illustrated in 1217 Figure 15. 1219 +-----------+ +-------+ +---------+ 1220 +------+ +------+ +-----+ FPC | | FPC | | Anchor | 1221 |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | 1222 +------+ +------+ +-----+-------+ +-------+ +---------+ 1223 [MN attach] | | | | 1224 |-------------PBU----->| | | 1225 | | |----(1)-PRT_ADD----------->| | 1226 | | | [PRT_ID,PROP_TUN, |--tun1 up->| 1227 |<------------PBA------| PROP_QOS, |--tc qos-->| 1228 | | | TS_CONTAINER(HNP)] |-route add>| 1229 | [Edge]-=====================================================-| 1230 | [DPN1| | | | | 1231 | | | | | 1232 | [MN handover] | | | 1233 | |---PBU ---->| | | 1234 | | |---------PROP_MOD--------->| | 1235 | |<--PBA------| [PRT_ID,PROP_TUN] |-tun1 mod->| 1236 | | | | | 1237 | | [Edge]-===========================================-| 1238 | | [DPN2] | | | 1240 Figure 15: Example: Sequence for Message Aggregation (focus on FPC 1241 reference point) 1243 5. Protocol to support Model II 1245 5.1. Protocol Attributes 1247 +---------------------------------------------------------------------+ 1248 | Attribute | Format | Description | 1249 +=====================================================================+ 1250 | IP Tunnel Attributes | 1251 +---------------------------------------------------------------------+ 1252 |TUN_SRC_IP_ADDR |[IP address] | Tunnel Source IP | 1253 | | | | 1254 +---------------------------------------------------------------------+ 1255 |TUN_DST_IP_ADDR |[IP address] | Tunnel Destination IP | 1256 | | | | 1257 +---------------------------------------------------------------------+ 1258 |TUN_ENCAP_TYPE |[ENCAP_GRE, ENACP_UDP,| Encapsulation Type | 1259 | | ENCAP_IP] | | 1260 +---------------------------------------------------------------------+ 1261 |TUN_TYPE_UDP |[SRC_PRT, DST_PRT] | UDP Direction - Source | 1262 | | | or Destination | 1263 +---------------------------------------------------------------------+ 1264 |TUN_TYPE_GRE |[UPLINK_GRE_KEY, | GRE Tunnel Type | 1265 | | DOWNLINK_GRE_KEY] | | 1266 +---------------------------------------------------------------------+ 1267 |TUN_IF_MTU |[MTU] | Tunnel Interface MTU | 1268 | | | | 1269 +---------------------------------------------------------------------+ 1270 |TUN_PAYLOAD_TYPE |[PAYLOAD_IPV4, | Tunnel Payload Type | 1271 | | PAYLOAD_IPV6, | | 1272 | | PAYLOAD_DUAL] | | 1273 +---------------------------------------------------------------------+ 1274 |TUN_VENDOR_SPEC_PARAM|[OPAQUE] | Tunnel Vendor Specific | 1275 | | | Parameters | 1276 +---------------------------------------------------------------------+ 1277 | Route Management Attributes | 1278 +---------------------------------------------------------------------+ 1279 |INPUT_IF |[IF_INDEX] |Input Interface | 1280 | | | | 1281 +---------------------------------------------------------------------+ 1282 |OUTPUT_IF |[IF_INDEX] |Output Interface | 1283 | | | | 1284 +---------------------------------------------------------------------+ 1285 |NEXT_HOP_IP_GW_ADDR |[IP address] |Next Hop IP Gateway | 1286 | | |Address | 1287 +---------------------------------------------------------------------+ 1288 |TRAFFIC_SELECTOR_ACL |TBD | | 1289 | | | | 1290 +---------------------------------------------------------------------+ 1291 |DST_IP_SUBNET |[IP prefix] |Destination IP Subnet | 1292 | | | | 1293 +---------------------------------------------------------------------+ 1294 |DST_IP_SUBNET_MASK |[IP prefix] |Destination IP Subnet | 1295 | | |Mask | 1296 +---------------------------------------------------------------------+ 1297 | QoS Attributes | 1298 +---------------------------------------------------------------------+ 1299 |AMBR |[Unsigned Integer |Aggregate Maximum | 1300 | | (32 bit)] |Bitrate | 1301 +---------------------------------------------------------------------+ 1302 |GBR |[Unsigned Integer |Guaranteed Bitrate | 1303 | | (32 bit)] | | 1304 +---------------------------------------------------------------------+ 1305 |TCLASS |[Unsigned Integer |Traffic Class | 1306 | | (32 bit)] | | 1307 +---------------------------------------------------------------------+ 1308 |TFT |TBD |Traffic Flow Template | 1309 | | | | 1310 +---------------------------------------------------------------------+ 1311 | Optional Attributes | 1312 +---------------------------------------------------------------------+ 1313 |NSH_HEADER |[Service Path Id] |NSH Header | 1314 | | Service Index, TFT] | | 1315 +---------------------------------------------------------------------+ 1317 Figure 16: Model II Protocol Attributes: Traffic Treatment 1319 +---------------------------------------------------------------------+ 1320 | Attribute | Format | Description | 1321 +=====================================================================+ 1322 | Identifier | 1323 +---------------------------------------------------------------------+ 1324 |TUNNEL_IF_ID |[IF_INDEX] |Tunnel Interface | 1325 | | |Identifier | 1326 +---------------------------------------------------------------------+ 1327 |VRF_ID |[Unsigned INT] |VRF Identifier | 1328 +---------------------------------------------------------------------+ 1329 |PBR_ID |[Unsigned INT] |Policy Based Routing | 1330 | | |Identifier | 1331 +---------------------------------------------------------------------+ 1332 |CTRL_PLANE_ID |IP address |Control-Plane Identifier | 1333 +---------------------------------------------------------------------+ 1334 |CONTEXT_ID |TBD |Context Identifier | 1335 +---------------------------------------------------------------------+ 1336 |QOS_SERVICE_ID |[Unsigned INT] |QoS Service Identifier | 1337 +---------------------------------------------------------------------+ 1338 |SESSION_ID |[Unsigned INT] |Session Identifier | 1339 +---------------------------------------------------------------------+ 1340 |ROUTE_ID |[Unsigned INT] |Route Identifier | 1341 +---------------------------------------------------------------------+ 1342 | Optional Identifiers | 1343 +---------------------------------------------------------------------+ 1344 |SERVICE_PATH_ID |[24-bit identifier] |Service Path Identifier | 1345 +---------------------------------------------------------------------+ 1347 Figure 17: Model II Protocol Attributes: Identifiers 1349 5.2. Protocol Messages and Semantics 1351 +---------------------------------------------------------------------+ 1352 | Message | Description | 1353 +=====================================================================+ 1354 | Tunnel Interface Management | 1355 +---------------------------------------------------------------------+ 1356 | CREATE_TUNNEL_IF | Create a Tunnel Interface | 1357 +---------------------------------------------------------------------+ 1358 | DELETE_TUNNEL_IF | Delete a Tunnel Interface | 1359 +---------------------------------------------------------------------+ 1360 | UPDATE_TUNNEL_PARAMETER | Update a parameter of the specified | 1361 | | tunnel | 1362 +---------------------------------------------------------------------+ 1363 | QUERY_TUNNEL_IF | Request Tunnel Interface information | 1364 +---------------------------------------------------------------------+ 1365 | Policy Route Management | 1366 +---------------------------------------------------------------------+ 1367 | CREATE_POLICY_ROUTE | Create a Policy-based Route | 1368 +---------------------------------------------------------------------+ 1369 | DELETE_POLICY_ROUTE | Deletes a Policy-based Route | 1370 +---------------------------------------------------------------------+ 1371 | ADD_TRAFFIC_SELECTOR | Adds a Traffic Selector to a Policy- | 1372 | | based Route | 1373 +---------------------------------------------------------------------+ 1374 | DELETE_TRAFFIC_SELECTOR | Removes a Traffic Selector from | 1375 | | a Policy-based Route | 1376 +---------------------------------------------------------------------+ 1377 | QUERY_POLICY_ROUTE | Request Policy Route information | 1378 +---------------------------------------------------------------------+ 1379 | IP Route Management | 1380 +---------------------------------------------------------------------+ 1381 | CREATE_IP_ROUTE | Create an IP Route | 1382 +---------------------------------------------------------------------+ 1383 | DELETE_IP_ROUTE | Delete an IP Route | 1384 +---------------------------------------------------------------------+ 1385 | QUERY_IP_ROUTE | Request IP Route information | 1386 +---------------------------------------------------------------------+ 1387 | IP QoS Management | 1388 +---------------------------------------------------------------------+ 1389 | ALLOCATE_QOS_RESOURCES | Allocates QoS Resources, e.g. AMBR, to | 1390 | | the specified Session / Context | 1391 +---------------------------------------------------------------------+ 1392 | DEALLOCATE_QOS_RESOURCES | Removes applies QoS Resources from | 1393 | | the specified Session / Context | 1394 +---------------------------------------------------------------------+ 1395 | Optional Management | 1396 +---------------------------------------------------------------------+ 1397 | ADD_NSH_HEADER | Add NSH Header for the classified | 1398 | | IP flows | 1399 +---------------------------------------------------------------------+ 1400 | DELETE_NSH_HEADER | Remove NSH Header for the classified | 1401 | | IP flows | 1402 +---------------------------------------------------------------------+ 1404 Figure 18: Model II Protocol Messages 1406 5.3. Protocol Operation 1408 The following list comprises a description of each message's 1409 semantic. 1411 o CREATE_TUNNEL_IF - Message can include TUN_SRC_IP_ADDR, 1412 TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, TUN_TYPE_UDP, 1413 TUN_TYPE_GRE, TUN_IF_MTU, TUN_PAYLOAD_TYPE, TUN_VENDOR_SPEC_PARAM, 1414 VRF_ID, CTRL_PLANE_ID, CONTEXT_ID. 1416 o DELETE_TUNNEL_IF - Message can include TUN_SRC_IP_ADDR, 1417 TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, CTRL_PLANE_ID, 1418 CONTEXT_ID. 1420 o UPDATE_TUNNEL_PARAMETER - Message can include TUN_SRC_IP_ADDR, 1421 TUN_DST_IP_ADDR, TUN_ENCAP_TYPE, TUN_IF_ID, TUN_IF_MTU, 1422 TUN_PAYLOAD_TYPE, TUN_VENDOR_SPEC_PARAM, CTRL_PLANE_ID, 1423 CONTEXT_ID. 1425 o QUERY_TUNNEL_IF - 1427 o CREATE_POLICY_ROUTE - Message can include INPUT_IF, OUTPUT_IF, 1428 NEXT_HOP_IP_GW_ADDR, VRF_ID, PBR_ID, CTRL_PLANE_ID, CONTEXT_ID. 1430 o DELETE_POLICY_ROUTE - Message can include PBR_ID, CTRL_PLANE_ID, 1431 CONTEXT_ID. 1433 o ADD_TRAFFIC_SELECTOR - Message can include TRAFFIC_SELECTOR_ACL, 1434 PBR_ID, CTRL_PLANE_ID, CONTEXT_ID. 1436 o DELETE_TRAFFIC_SELECTOR - Message can include 1437 TRAFFIC_SELECTOR_ACL, PBR_ID, CTRL_PLANE_ID, CONTEXT_ID. 1439 o QUERY_POLICY_ROUTE - 1441 o CREATE_IP_ROUTE - Message can include DST_IP_SUBNET, 1442 DST_IP_SUBNET_MASK, OUTPUT_IF, VRF_ID, ROUTE_ID, CTRL_PLANE_ID, 1443 CONTEXT_ID. 1445 o DELETE_IP_ROUTE - Message can include ROUTE_ID, CTRL_PLANE_ID, 1446 CONTEXT_ID. 1448 o QUERY_IP_ROUTE - 1450 o ALLOCATE_QOS_RESOURCES - Message can include AMBR, GBR, TCLASS, 1451 TFT, QOS_SERVICE_ID, CONTEXT_ID. 1453 o DEALLOCATE_QOS_RESOURCES - Message can include Session_ID, 1454 QOS_SERVICE_ID, CONTEXT_ID. 1456 o ADD_NSH_HEADER - Message can include SERVICE_PATH_ID, 1457 SERVICE_INDEX, TFT 1459 o DELETE_NSH_HEADER - Message can include SERVICE_PATH_ID, 1460 SERVICE_INDEX, TFT 1462 6. YANG Data Model for the FPC protocol 1464 These modules define Model I YANG definitions. Four modules are 1465 defined: 1467 o ietf-dmm-fpcp-base (fpcp-base) - Defines the base model for Model 1468 I FPC as defined in this document 1470 o ietf-pmip-qos (pmip-qos) - Defines proxy mobile IPv6 QoS 1471 parameters per RFC 7222 1473 o ietf-traffic-selectors-types (traffic-selectors) - Defines Traffic 1474 Selectors per RFC 6088 1476 o ietf-dmm-fpcp-pmip - Augments fpcp-base to include PMIP Traffic 1477 Selectors as a Traffic Descriptor subtype and pmip-qos QoS 1478 parameters, where applicable, as properties. 1480 Note (2016-03-21): The YANG Data Model does not yet adopt all 1481 extensions per this version of the draft and will be updated shortly 1482 after the IETF95 meeting. 1484 6.1. FPC Base 1486 6.1.1. FPC Base YANG Model 1488 module ietf-dmm-fpcp-base { 1489 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-base"; 1490 prefix fpcp-base; 1492 import ietf-inet-types { prefix inet; } 1494 organization "IETF DMM Working Group"; 1495 contact "Satoru Matsushima "; 1497 description 1498 "This module contains YANG definition for 1499 Forwarding Policy Configuration Protocol.(FPCP)"; 1501 revision 2016-01-18 { 1502 description "Changes based on -01 version of FPCP draft."; 1503 reference "draft-ietf-dmm-fpc-cpdp-01"; 1504 } 1506 typedef fpcp-name-type { 1507 type string; 1508 description "FPCP common name type"; 1509 } 1511 typedef fpcp-carrier-id { 1512 type uint16; 1513 description "Carrier-ID"; 1514 } 1516 typedef fpcp-network-id { 1517 type uint16; 1518 description "Carrier-ID"; 1519 } 1521 typedef fpcp-client-id { 1522 type uint32; 1523 description "Client-ID"; 1524 } 1526 typedef fpcp-agent-id { 1527 type uint32; 1528 description "Agent-ID"; 1529 } 1531 typedef fpcp-dpn-id { 1532 type uint32; 1533 description "Carrier-ID"; 1534 } 1536 typedef fpcp-port-id { 1537 type uint32; 1538 description "PRT_ID"; 1539 } 1541 typedef fpcp-property-id { 1542 type uint8; 1543 description "PRT_PROP_ID"; 1544 } 1546 typedef fpcp-rule-id { 1547 type uint8; 1548 description "PRT_RULE_ID"; 1550 } 1552 typedef fpcp-qos-class-identifier { 1553 type uint8 { 1554 range "1..9"; 1555 } 1556 description "QCI"; 1557 } 1559 typedef fpcp-qos-bandwidth { 1560 type uint32; 1561 description "Bandwith value in bit per second."; 1562 } 1564 identity tunnel-type { 1565 description 1566 "Base identity from which specific use of 1567 tunnels are derived."; 1568 } 1570 identity fpcp-tunnel-type { 1571 base "tunnel-type"; 1572 description 1573 "Base identity from which specific tunnel 1574 types in FPCP uses are derived."; 1575 } 1577 identity ip-in-ip { 1578 base "fpcp-tunnel-type"; 1579 description "IP-in-IP tunnel"; 1580 } 1582 identity gtp { 1583 base "fpcp-tunnel-type"; 1584 description "GTP-U tunnel"; 1585 } 1587 identity gre { 1588 base "fpcp-tunnel-type"; 1589 description "GRE tunnel"; 1590 } 1592 identity service-function { 1593 description 1594 "Base identity from which specific 1595 service function types are derived."; 1596 } 1597 identity ip-protocol { 1598 description 1599 "Base identity from which specific 1600 IP protocol types are derived."; 1601 } 1603 identity property-type { 1604 description 1605 "Base identity of property"; 1606 } 1608 identity property-qos { 1609 base "property-type"; 1610 description 1611 "QoS property"; 1612 } 1614 identity property-endpoint { 1615 base "property-type"; 1616 description 1617 "Endpoint property"; 1618 } 1620 identity property-type-endpoint { 1621 base "property-type"; 1622 description 1623 "Endpoint property"; 1624 } 1626 identity qos-type { 1627 description 1628 "Base identity from which specific 1629 uses of QoS types are derived."; 1630 } 1632 identity fpcp-qos-type { 1633 base "qos-type"; 1634 description 1635 "Base identity from which specific 1636 QoS types in FPCP uses are derived."; 1637 } 1639 identity fpcp-qos-type-gbr { 1640 base "fpcp-qos-type"; 1641 description 1642 "A QoS Type for Guaranteed Bit Rate (GBR)."; 1643 } 1644 identity fpcp-qos-type-mbr { 1645 base "fpcp-qos-type"; 1646 description 1647 "A QoS Type for Maximum Bit Rate (MBR)."; 1648 } 1650 identity fpcp-qos-index-type { 1651 base "qos-type"; 1652 } 1654 identity fpcp-qos-index { 1655 base "fpcp-qos-index-type"; 1656 } 1658 identity traffic-descriptor-type { 1659 } 1661 identity fpcp-traffic-descriptor { 1662 base "traffic-descriptor-type"; 1663 } 1665 grouping carrier { 1666 description "Identify FPCP Carrier"; 1667 leaf carrier-id { 1668 type fpcp-carrier-id; 1669 mandatory true; 1670 description "Carrier ID"; 1671 } 1672 } 1674 grouping agent { 1675 description "AGT_ID to identify FPCP Agent"; 1676 leaf agent-id { 1677 type fpcp-agent-id; 1678 description "Agent ID"; 1679 } 1680 } 1682 grouping client { 1683 description "CLI_ID to identify FPCP Client"; 1684 leaf client-id { 1685 type fpcp-client-id; 1686 description "Client ID"; 1687 } 1688 } 1689 grouping network { 1690 description "Identify FPCP Network"; 1691 leaf network-id { 1692 type fpcp-network-id; 1693 description "Network ID"; 1694 } 1695 } 1697 grouping dpn { 1698 description "Identify FPCP Data-Plane Node"; 1699 leaf dpn-id { 1700 type fpcp-dpn-id; 1701 description "DPN ID"; 1702 } 1703 } 1705 grouping port { 1706 description "Identify FPCP Port"; 1707 leaf port-id { 1708 type fpcp-port-id; 1709 description "Port-ID"; 1710 } 1711 } 1713 grouping property { 1714 description "Identify FPCP Property"; 1715 leaf property-id { 1716 type fpcp-property-id; 1717 description "Property-ID"; 1718 } 1719 } 1721 grouping rule { 1722 description "Identify FPCP Rule"; 1723 leaf rule-id { 1724 type fpcp-rule-id; 1725 description "Rule-ID"; 1726 } 1727 } 1729 grouping fpcp-carrier { 1730 description "Define FPCP network"; 1731 uses carrier; 1732 uses agent; 1733 list client { 1734 key client-id; 1735 description "List of FPCP Clients"; 1736 leaf name { 1737 type fpcp-name-type; 1738 description "Client Name"; 1739 } 1740 uses client; 1741 } 1742 list dpn { 1743 key dpn-id; 1744 description "List of FPCP DPNs"; 1745 leaf name { 1746 type fpcp-name-type; 1747 description "DPN Name"; 1748 } 1749 uses dpn; 1750 } 1751 } 1753 grouping dpn-set { 1754 description "DPNs which consist a DPN set."; 1755 leaf name { 1756 type fpcp-name-type; 1757 description "DPN set name"; 1758 } 1759 leaf network { 1760 type leafref { 1761 path "/fpcp-carriers/carrier/network/network-id"; 1762 } 1763 description "Network-ID which a DPN-set is belonging to."; 1764 } 1765 leaf role { 1766 type enumeration { 1767 enum anchor-l3 { 1768 description ""; 1769 } 1770 enum anchor-l2 { 1771 description ""; 1772 } 1773 enum access { 1774 description ""; 1775 } 1776 } 1777 description "Define DPNs role in data-plane."; 1778 } 1779 list endpoint-dp { 1780 key local-address; 1781 description "List of data-plane endpoint properties of a 1782 set of DPNs."; 1783 leaf local-address { 1784 type inet:ip-address; 1785 description ""; 1786 } 1787 leaf remote-dpn { 1788 type leafref { 1789 path "/fpcp-carriers/carrier/dpn-group/name"; 1790 } 1791 description ""; 1792 } 1793 leaf default-tunnel-type { 1794 type identityref { 1795 base "fpcp-tunnel-type"; 1796 } 1797 description "Tunnel Type"; 1798 } 1799 } 1800 grouping dpn-set { 1801 description "DPNs which consist a DPN set."; 1802 leaf name { 1803 type fpcp-name-type; 1804 description "DPN set name"; 1805 } 1806 leaf network { 1807 type leafref { 1808 path "/fpcp-carriers/carrier/network/network-id"; 1809 } 1810 description "Network-ID which a DPN-set is belonging to."; 1811 } 1812 leaf role { 1813 type enumeration { 1814 enum anchor-l3 { 1815 description ""; 1816 } 1817 enum anchor-l2 { 1818 description ""; 1819 } 1820 enum access { 1821 description ""; 1822 } 1823 } 1824 description "Define DPNs role in data-plane."; 1825 } 1826 list endpoint-dp { 1827 key local-address; 1828 description "List of data-plane endpoint properties of a 1829 set of DPNs."; 1830 leaf local-address { 1831 type inet:ip-address; 1832 description ""; 1834 } 1835 leaf remote-dpn { 1836 type leafref { 1837 path "/fpcp-carriers/carrier/dpn-group/name"; 1838 } 1839 description ""; 1840 } 1841 leaf default-tunnel-type { 1842 type identityref { 1843 base "fpcp-tunnel-type"; 1844 } 1845 description "Tunnel Type"; 1846 } 1847 } 1848 list dpn { 1849 key dpn-id; 1850 uses dpn; 1851 description "DPN list in a DPN set"; 1852 } 1853 } 1855 grouping tunnel-endpoints { 1856 description 1857 "PROP_TUN property as a set of tunnel endpoints"; 1858 leaf tunnel-type { 1859 type identityref { 1860 base "fpcp-tunnel-type"; 1861 } 1862 description "Tunnel Type"; 1863 } 1864 leaf remote-address { 1865 type inet:ip-address; 1866 description "Remote endpoint"; 1867 } 1868 leaf local-address { 1869 type inet:ip-address; 1870 description "Local endpoint"; 1871 } 1872 } 1874 grouping gtp-attributes { 1875 description 1876 "GTP_CONF as GTP tunnel specific attributes"; 1877 leaf remote-teid { 1878 type uint32; 1879 description "TEID of remote-endpoint"; 1880 } 1881 leaf local-teid { 1882 type uint32; 1883 description "TEID of local-endpoint"; 1884 } 1885 } 1886 grouping gre-attributes { 1887 description 1888 "GRE_CONF as GRE tunnel specific attribute"; 1889 leaf key { 1890 type uint32; 1891 description "GRE_KEY"; 1892 } 1893 } 1895 grouping rewriting-properties { 1896 description 1897 "PROP_REWR. TBD for which type of rewriting functions 1898 need to be defined"; 1899 leaf type { 1900 type identityref { 1901 base service-function; 1902 } 1903 description "The type of service-function"; 1904 } 1905 } 1907 grouping fpcp-qosattribute { 1908 leaf qci { 1909 type fpcp-qos-class-identifier; 1910 } 1911 leaf attributetype { 1912 type identityref { 1913 base fpcp-qos-type; 1914 } 1915 description "the attribute type"; 1916 } 1917 leaf bandwidth { 1918 type fpcp-qos-bandwidth; 1919 } 1920 } 1922 grouping fpcp-qos-property { 1923 description "PROP_QOS"; 1924 leaf name { 1925 type fpcp-name-type; 1926 } 1927 leaf qos-index-type { 1928 type identityref { 1929 base "fpcp-qos-index-type"; 1931 } 1932 } 1933 choice index-type { 1934 case qci { 1935 when "../qos-index-type = 'fpcp-qos-index'"; 1936 container uplink { 1937 uses fpcp-qosattribute; 1938 } 1939 container downlink { 1940 uses fpcp-qosattribute; 1941 } 1942 } 1943 } 1944 } 1946 grouping traffic-descriptor { 1947 description 1948 "Traffic descriptor group collects parameters to 1949 identify target traffic flow."; 1951 leaf destination-ip { 1952 type inet:ip-prefix; 1953 description "Rule of destination IP"; 1954 } 1955 leaf source-ip { 1956 type inet:ip-prefix; 1957 description "Rule of source IP"; 1958 } 1959 } 1961 grouping fpcp-traffic-descriptor { 1962 leaf name { 1963 type fpcp-name-type; 1964 } 1965 leaf traffic-discriptor-type { 1966 type identityref { 1967 base "traffic-descriptor-type"; 1968 } 1969 } 1971 choice descriptor-type { 1972 case fpcp-traffic-descriptor { 1973 when "../descriptor-type = 'fpcp-traffic-descriptor'"; 1974 uses traffic-descriptor; 1975 } 1976 } 1978 } 1980 grouping fpcp-forwarding-rule { 1981 uses rule; 1982 uses fpcp-traffic-descriptor; 1983 } 1985 grouping fpcp-port-properties { 1986 description 1987 "A set of port property attributes"; 1989 uses property; 1990 list attached-dpns { 1991 key name; 1992 leaf name { 1993 type fpcp-name-type; 1994 description "DPN group name of which port attached."; 1995 } 1996 description "Port attached DPN group list."; 1997 } 1998 container endpoints { 1999 description "Tunnel Endpoint"; 2000 uses tunnel-endpoints; 2001 choice tunnel { 2002 description "Tunnel-Type"; 2003 case gtp-u { 2004 when "tunnel-type = 'gtp'" { 2005 description "In case of GTP-U is tunnel-type"; 2006 } 2007 uses gtp-attributes; 2008 } 2009 case gre { 2010 when "tunnel-type = 'gre'" { 2011 description "In case of GRE is tunnel-type"; 2012 } 2013 uses gre-attributes; 2014 } 2015 } 2016 } 2017 container qos { 2018 description "QoS Type"; 2019 uses fpcp-qos-property; 2020 list port-in-aggregated-bandwidth { 2021 key port-id; 2022 uses port; 2023 } 2024 } 2025 container rewriting { 2026 description "Rewriting function"; 2027 uses rewriting-properties; 2028 } 2029 } 2031 grouping port-field { 2032 description "Definition of attributes of port field"; 2033 uses port; 2034 uses carrier; 2035 uses network; 2036 } 2038 // Container for configurations sets. 2040 container fpcp-carriers { 2041 description "Attributes set of FPCP network"; 2043 list carrier { 2044 key carrier-id; 2045 description "List of carriers"; 2046 leaf name { 2047 type fpcp-name-type; 2048 description "FPCP Carrier name"; 2049 } 2050 uses fpcp-carrier; 2051 list network { 2052 key network-id; 2053 description "List of networks in a carrier."; 2054 leaf name { 2055 type fpcp-name-type; 2056 description "Define visible name of a network."; 2057 } 2058 uses network; 2059 } 2060 list dpn-group { 2061 key name; 2062 description "List of DPN groups in a carrier."; 2063 uses dpn-set; 2064 } 2065 list qos-profile { 2066 key name; 2067 uses fpcp-qos-property; 2068 } 2069 list traffic-descriptor { 2070 key name; 2071 uses fpcp-traffic-descriptor; 2072 } 2073 } 2075 } 2077 // Port Entries 2079 container port-entries { 2080 config false; 2081 description 2082 "This container binds set of traffic-descriptor and 2083 port properties to a port and lists them as a port entry."; 2085 list port-entry { 2086 key port-id; 2087 description "List of port entries"; 2088 uses port-field; 2090 list property { 2091 key property-id; 2092 description "Attributes set of properties"; 2093 uses fpcp-port-properties; 2094 } 2096 list forwarding-rule { 2097 key rule-id; 2098 description "Rule and traffic-descriptor"; 2099 uses fpcp-forwarding-rule; 2100 } 2101 } 2102 } 2104 // PRT_ADD 2106 rpc port_add { 2107 description "PRT_ADD"; 2108 input { 2109 list adding-port { 2110 description "Ports that are added to an agent"; 2111 uses port-field; 2112 list forwarding-rule { 2113 key rule-id; 2114 description "Rule and traffic-descriptor"; 2115 uses fpcp-forwarding-rule; 2116 } 2117 list property { 2118 key property-id; 2119 description "Attributes set of properties"; 2120 uses fpcp-port-properties; 2121 } 2123 } 2124 } 2125 } 2127 // PRT_DEL 2129 rpc port_delete { 2130 description "PRT_DEL"; 2131 input { 2132 list deleting-port { 2133 description "Ports that are deleted from an agent"; 2134 uses port-field; 2135 } 2136 } 2137 } 2139 // PROP_ADD 2141 rpc port_property_add { 2142 description "PROP_ADD"; 2143 input { 2144 list adding-property { 2145 description "Properties that are added to an agent"; 2146 uses port-field; 2148 list property { 2149 key property-id; 2150 description "Attributes set of properties"; 2151 uses fpcp-port-properties; 2152 } 2153 } 2154 } 2155 } 2157 // PROP_MOD 2159 rpc port_property_modify { 2160 description "PROP_MOD"; 2161 input { 2162 list modifying-property { 2163 description 2164 "Properties that are modified in an agent"; 2165 uses port-field; 2167 list property { 2168 key property-id; 2169 description "Attributes set of properties"; 2170 uses fpcp-port-properties; 2171 } 2172 } 2173 } 2174 } 2176 // PROP_DEL 2178 rpc port_property_delete { 2179 description "PROP_DEL"; 2180 input { 2181 list deleting-property { 2182 description 2183 "Target port/property-id of deleting properties"; 2184 uses port-field; 2186 leaf property-id { 2187 type fpcp-property-id; 2188 mandatory true; 2189 description "Property ID"; 2190 } 2191 } 2192 } 2193 } 2195 // RULE_ADD 2197 rpc rule_add { 2198 description 2199 "TBD for input parameters of which RULE_ADD includes 2200 but now just traffic-descriptor."; 2201 input { 2202 list adding-rule { 2203 description "Rules that are added to an agent"; 2204 uses port-field; 2206 list forwarding-rule { 2207 description "Added rule"; 2208 uses fpcp-forwarding-rule; 2209 } 2210 } 2211 } 2212 } 2214 // RULE_MOD 2216 rpc rule_modify { 2217 description 2218 "TBD for input parameters of which RULE_MOD includes 2219 but now just traffic-descriptor."; 2220 input { 2221 list modifying-rule { 2222 description "Rules that are modified in an agent"; 2223 uses port-field; 2225 list forwarding-rule { 2226 description "Modified rule"; 2227 uses fpcp-forwarding-rule; 2228 } 2229 } 2230 } 2231 } 2233 // RULE_DEL 2235 rpc rule_delete { 2236 description 2237 "TBD for input parameters of which RULE_DEL includes 2238 but now just traffic-descriptor."; 2239 input { 2240 list deleting-rule { 2241 description "Rules that are deleted from an agent"; 2242 uses port-field; 2244 list target-rule { 2245 description "Deleting rules"; 2246 leaf target-rule-id { 2247 type fpcp-rule-id; 2248 mandatory true; 2249 description "Rule ID"; 2250 } 2251 } 2252 } 2253 } 2254 } 2256 // EVENT_REG 2258 rpc event_register { 2259 description 2260 "TBD for registered parameters included in EVENT_REG."; 2261 } 2263 // PROBE 2264 rpc probe { 2265 description 2266 "TBD for retrieved parameters included in PROBE."; 2267 } 2269 // NOTIFY 2271 notification notify { 2272 description 2273 "TBD for which status and event are reported to client."; 2274 } 2276 } 2278 Figure 19: FPC YANG base 2280 6.1.2. FPC Base tree 2282 module: ietf-dmm-fpcp-base 2283 +--rw fpcp-carriers 2284 | +--rw carrier* [carrier-id] 2285 | +--rw name? fpcp-name-type 2286 | +--rw carrier-id fpcp-carrier-id 2287 | +--rw agent-id? fpcp-agent-id 2288 | +--rw client* [client-id] 2289 | | +--rw name? fpcp-name-type 2290 | | +--rw client-id fpcp-client-id 2291 | +--rw dpn* [dpn-id] 2292 | | +--rw name? fpcp-name-type 2293 | | +--rw dpn-id fpcp-dpn-id 2294 | +--rw network* [network-id] 2295 | | +--rw name? fpcp-name-type 2296 | | +--rw network-id fpcp-network-id 2297 | +--rw dpn-group* [name] 2298 | | +--rw name fpcp-name-type 2299 | | +--rw network? -> /fpcp-carriers/carrier/network/network-id 2300 | | +--rw role? enumeration 2301 | | +--rw endpoint-dp* [local-address] 2302 | | | +--rw local-address inet:ip-address 2303 | | | +--rw remote-dpn? -> /fpcp-carriers/carrier/dpn-group/name 2304 | | | +--rw default-tunnel-type? identityref 2305 | | +--rw dpn* [dpn-id] 2306 | | +--rw dpn-id fpcp-dpn-id 2307 | +--rw qos-profile* [name] 2308 | | +--rw name fpcp-name-type 2309 | | +--rw qos-index-type? identityref 2310 | | +--rw (index-type)? 2311 | | +--:(qci) 2312 | | +--rw uplink 2313 | | | +--rw qci? fpcp-qos-class-identifier 2314 | | | +--rw attributetype? identityref 2315 | | | +--rw bandwidth? fpcp-qos-bandwidth 2316 | | +--rw downlink 2317 | | +--rw qci? fpcp-qos-class-identifier 2318 | | +--rw attributetype? identityref 2319 | | +--rw bandwidth? fpcp-qos-bandwidth 2320 | +--rw traffic-descriptor* [name] 2321 | +--rw name fpcp-name-type 2322 | +--rw traffic-discriptor-type? identityref 2323 | +--rw (descriptor-type)? 2324 | +--:(fpcp-traffic-descriptor) 2325 | +--rw destination-ip? inet:ip-prefix 2326 | +--rw source-ip? inet:ip-prefix 2327 +--ro port-entries 2328 +--ro port-entry* [port-id] 2329 +--ro port-id fpcp-port-id 2330 +--ro carrier-id fpcp-carrier-id 2331 +--ro network-id? fpcp-network-id 2332 +--ro property* [property-id] 2333 | +--ro property-id fpcp-property-id 2334 | +--ro attached-dpns* [name] 2335 | | +--ro name fpcp-name-type 2336 | +--ro endpoints 2337 | | +--ro tunnel-type? identityref 2338 | | +--ro remote-address? inet:ip-address 2339 | | +--ro local-address? inet:ip-address 2340 | | +--ro (tunnel)? 2341 | | +--:(gtp-u) 2342 | | | +--ro remote-teid? uint32 2343 | | | +--ro local-teid? uint32 2344 | | +--:(gre) 2345 | | +--ro key? uint32 2346 | +--ro qos 2347 | | +--ro name? fpcp-name-type 2348 | | +--ro qos-index-type? identityref 2349 | | +--ro (index-type)? 2350 | | | +--:(qci) 2351 | | | +--ro uplink 2352 | | | | +--ro qci? fpcp-qos-class-identifier 2353 | | | | +--ro attributetype? identityref 2354 | | | | +--ro bandwidth? fpcp-qos-bandwidth 2355 | | | +--ro downlink 2356 | | | +--ro qci? fpcp-qos-class-identifier 2357 | | | +--ro attributetype? identityref 2358 | | | +--ro bandwidth? fpcp-qos-bandwidth 2359 | | +--ro port-in-aggregated-bandwidth* [port-id] 2360 | | +--ro port-id fpcp-port-id 2361 | +--ro rewriting 2362 | +--ro type? identityref 2363 +--ro forwarding-rule* [rule-id] 2364 +--ro rule-id fpcp-rule-id 2365 +--ro name? fpcp-name-type 2366 +--ro traffic-discriptor-type? identityref 2367 +--ro (descriptor-type)? 2368 +--:(fpcp-traffic-descriptor) 2369 +--ro destination-ip? inet:ip-prefix 2370 +--ro source-ip? inet:ip-prefix 2372 rpcs: 2373 +---x port_add 2374 | +---w input 2375 | +---w adding-port* 2376 | +---w port-id? fpcp-port-id 2377 | +---w carrier-id fpcp-carrier-id 2378 | +---w network-id? fpcp-network-id 2379 | +---w forwarding-rule* [rule-id] 2380 | | +---w rule-id fpcp-rule-id 2381 | | +---w name? fpcp-name-type 2382 | | +---w traffic-discriptor-type? identityref 2383 | | +---w (descriptor-type)? 2384 | | +--:(fpcp-traffic-descriptor) 2385 | | +---w destination-ip? inet:ip-prefix 2386 | | +---w source-ip? inet:ip-prefix 2387 | +---w property* [property-id] 2388 | +---w property-id fpcp-property-id 2389 | +---w attached-dpns* [name] 2390 | | +---w name fpcp-name-type 2391 | +---w endpoints 2392 | | +---w tunnel-type? identityref 2393 | | +---w remote-address? inet:ip-address 2394 | | +---w local-address? inet:ip-address 2395 | | +---w (tunnel)? 2396 | | +--:(gtp-u) 2397 | | | +---w remote-teid? uint32 2398 | | | +---w local-teid? uint32 2399 | | +--:(gre) 2400 | | +---w key? uint32 2401 | +---w qos 2402 | | +---w name? fpcp-name-type 2403 | | +---w qos-index-type? identityref 2404 | | +---w (index-type)? 2405 | | | +--:(qci) 2406 | | | +---w uplink 2407 | | | | +---w qci? fpcp-qos-class-identifier 2408 | | | | +---w attributetype? identityref 2409 | | | | +---w bandwidth? fpcp-qos-bandwidth 2410 | | | +---w downlink 2411 | | | +---w qci? fpcp-qos-class-identifier 2412 | | | +---w attributetype? identityref 2413 | | | +---w bandwidth? fpcp-qos-bandwidth 2414 | | +---w port-in-aggregated-bandwidth* [port-id] 2415 | | +---w port-id fpcp-port-id 2416 | +---w rewriting 2417 | +---w type? identityref 2418 +---x port_delete 2419 | +---w input 2420 | +---w deleting-port* 2421 | +---w port-id? fpcp-port-id 2422 | +---w carrier-id fpcp-carrier-id 2423 | +---w network-id? fpcp-network-id 2424 +---x port_property_add 2425 | +---w input 2426 | +---w adding-property* 2427 | +---w port-id? fpcp-port-id 2428 | +---w carrier-id fpcp-carrier-id 2429 | +---w network-id? fpcp-network-id 2430 | +---w property* [property-id] 2431 | +---w property-id fpcp-property-id 2432 | +---w attached-dpns* [name] 2433 | | +---w name fpcp-name-type 2434 | +---w endpoints 2435 | | +---w tunnel-type? identityref 2436 | | +---w remote-address? inet:ip-address 2437 | | +---w local-address? inet:ip-address 2438 | | +---w (tunnel)? 2439 | | +--:(gtp-u) 2440 | | | +---w remote-teid? uint32 2441 | | | +---w local-teid? uint32 2442 | | +--:(gre) 2443 | | +---w key? uint32 2444 | +---w qos 2445 | | +---w name? fpcp-name-type 2446 | | +---w qos-index-type? identityref 2447 | | +---w (index-type)? 2448 | | | +--:(qci) 2449 | | | +---w uplink 2450 | | | | +---w qci? fpcp-qos-class-identifier 2451 | | | | +---w attributetype? identityref 2452 | | | | +---w bandwidth? fpcp-qos-bandwidth 2453 | | | +---w downlink 2454 | | | +---w qci? fpcp-qos-class-identifier 2455 | | | +---w attributetype? identityref 2456 | | | +---w bandwidth? fpcp-qos-bandwidth 2457 | | +---w port-in-aggregated-bandwidth* [port-id] 2458 | | +---w port-id fpcp-port-id 2459 | +---w rewriting 2460 | +---w type? identityref 2461 +---x port_property_modify 2462 | +---w input 2463 | +---w modifying-property* 2464 | +---w port-id? fpcp-port-id 2465 | +---w carrier-id fpcp-carrier-id 2466 | +---w network-id? fpcp-network-id 2467 | +---w property* [property-id] 2468 | +---w property-id fpcp-property-id 2469 | +---w attached-dpns* [name] 2470 | | +---w name fpcp-name-type 2471 | +---w endpoints 2472 | | +---w tunnel-type? identityref 2473 | | +---w remote-address? inet:ip-address 2474 | | +---w local-address? inet:ip-address 2475 | | +---w (tunnel)? 2476 | | +--:(gtp-u) 2477 | | | +---w remote-teid? uint32 2478 | | | +---w local-teid? uint32 2479 | | +--:(gre) 2480 | | +---w key? uint32 2481 | +---w qos 2482 | | +---w name? fpcp-name-type 2483 | | +---w qos-index-type? identityref 2484 | | +---w (index-type)? 2485 | | | +--:(qci) 2486 | | | +---w uplink 2487 | | | | +---w qci? fpcp-qos-class-identifier 2488 | | | | +---w attributetype? identityref 2489 | | | | +---w bandwidth? fpcp-qos-bandwidth 2490 | | | +---w downlink 2491 | | | +---w qci? fpcp-qos-class-identifier 2492 | | | +---w attributetype? identityref 2493 | | | +---w bandwidth? fpcp-qos-bandwidth 2494 | | +---w port-in-aggregated-bandwidth* [port-id] 2495 | | +---w port-id fpcp-port-id 2496 | +---w rewriting 2497 | +---w type? identityref 2498 +---x port_property_delete 2499 | +---w input 2500 | +---w deleting-property* 2501 | +---w port-id? fpcp-port-id 2502 | +---w carrier-id fpcp-carrier-id 2503 | +---w network-id? fpcp-network-id 2504 | +---w property-id fpcp-property-id 2505 +---x rule_add 2506 | +---w input 2507 | +---w adding-rule* 2508 | +---w port-id? fpcp-port-id 2509 | +---w carrier-id fpcp-carrier-id 2510 | +---w network-id? fpcp-network-id 2511 | +---w forwarding-rule* 2512 | +---w rule-id? fpcp-rule-id 2513 | +---w name? fpcp-name-type 2514 | +---w traffic-discriptor-type? identityref 2515 | +---w (descriptor-type)? 2516 | +--:(fpcp-traffic-descriptor) 2517 | +---w destination-ip? inet:ip-prefix 2518 | +---w source-ip? inet:ip-prefix 2519 +---x rule_modify 2520 | +---w input 2521 | +---w modifying-rule* 2522 | +---w port-id? fpcp-port-id 2523 | +---w carrier-id fpcp-carrier-id 2524 | +---w network-id? fpcp-network-id 2525 | +---w forwarding-rule* 2526 | +---w rule-id? fpcp-rule-id 2527 | +---w name? fpcp-name-type 2528 | +---w traffic-discriptor-type? identityref 2529 | +---w (descriptor-type)? 2530 | +--:(fpcp-traffic-descriptor) 2531 | +---w destination-ip? inet:ip-prefix 2532 | +---w source-ip? inet:ip-prefix 2533 +---x rule_delete 2534 | +---w input 2535 | +---w deleting-rule* 2536 | +---w port-id? fpcp-port-id 2537 | +---w carrier-id fpcp-carrier-id 2538 | +---w network-id? fpcp-network-id 2539 | +---w target-rule* 2540 | +---w target-rule-id fpcp-rule-id 2541 +---x event_register 2542 +---x probe 2543 notifications: 2544 +---n notify 2546 Figure 20: FPC base tree 2548 6.2. FPC PMIP 2550 6.2.1. FPC PMIP YANG Model 2552 module ietf-dmm-fpcp-pmip { 2553 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-pmip"; 2554 prefix fpcp-pmip; 2556 import ietf-inet-types { prefix inet; } 2557 import ietf-dmm-fpcp-base { prefix fpcp-base; } 2558 import ietf-pmip-qos { prefix qos-pmip; } 2559 import ietf-traffic-selectors { prefix traffic-selectors; } 2561 organization "IETF DMM Working Group"; 2562 contact "Satoru Matsushima "; 2564 description 2565 "This module contains YANG definition for 2566 Forwarding Policy Configuration Protocol.(FPCP)"; 2568 revision 2016-01-19 { 2569 description "Changes based on -01 version of FPCP draft."; 2570 reference "draft-ietf-dmm-fpc-cpdp-01"; 2571 } 2573 identity fpcp-qos-index-pmip { 2574 base "fpcp-base:fpcp-qos-index-type"; 2575 } 2577 identity traffic-selector-mip6 { 2578 base "fpcp-base:traffic-descriptor-type"; 2579 } 2581 grouping qosattribute-pmip { 2583 leaf dscp { 2584 type inet:dscp; 2585 } 2587 choice attribute { 2588 case per-mn-agg-max-dl { 2589 when "../attributetype = 'Per-MN-Agg-Max-DL-Bit-Rate-type'"; 2590 leaf per-mn-agg-max-dl { 2591 type qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value; 2592 } 2593 } 2594 case per-mn-agg-max-ul { 2595 when "../attributetype = 'Per-MN-Agg-Max-UL-Bit-Rate-type'"; 2596 leaf per-mn-agg-max-ul { 2597 type qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value; 2598 } 2599 } 2600 case per-session-agg-max { 2601 when "../attributetype = 'Per-Session-Agg-Max-DL-Bit-Rate-type' | 2602 ../attributetype = 'Per-Session-Agg-Max-UL-Bit-Rate-type'"; 2603 uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value; 2604 } 2605 case agg-max-dl { 2606 when "../attributetype = 'Aggregate-Max-DL-Bit-Rate-type'"; 2607 leaf agg-max-dl { 2608 type qos-pmip:Aggregate-Max-DL-Bit-Rate-Value; 2609 } 2610 } 2611 case agg-max-ul { 2612 when "../attributetype = 'Aggregate-Max-UL-Bit-Rate-type'"; 2613 leaf agg-max-ul { 2614 type qos-pmip:Aggregate-Max-UL-Bit-Rate-Value; 2615 } 2616 } 2617 case gbr-dl { 2618 when "../attributetype = 'Guaranteed-DL-Bit-Rate-type'"; 2619 leaf gbr-dl { 2620 type qos-pmip:Guaranteed-DL-Bit-Rate-Value; 2621 } 2622 } 2623 case gbr-ul { 2624 when "../attributetype = 'Guaranteed-UL-Bit-Rate-type'"; 2625 leaf gbr-ul { 2626 type qos-pmip:Guaranteed-UL-Bit-Rate-Value; 2627 } 2628 } 2629 } 2630 } 2632 // Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/qosprofile. 2633 augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type" { 2634 case pmip { 2635 when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'"; 2636 uses qosattribute-pmip; 2637 } 2638 } 2640 // Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/traffic-descriptor. 2641 augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type" { 2642 case traffic-selector-mip6 { 2643 when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2644 uses traffic-selectors:traffic-selector; 2645 } 2646 } 2648 // Operational choice augmentation in the fpcp-base under the port-entries/port-entry/property. 2649 augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2650 case pmip { 2651 when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'"; 2652 uses qosattribute-pmip; 2653 } 2654 } 2656 // Operational choice augmentation in the fpcp-base under the port-entries/port-entry/forwarding-rule. 2657 augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2658 case traffic-selector-mip6 { 2659 when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2660 uses traffic-selectors:traffic-selector; 2661 } 2662 } 2664 // RPC choice augmentation in the fpcp-base under "port_add" rpc. 2665 augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2666 case pmip { 2667 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'"; 2668 uses qosattribute-pmip; 2669 } 2670 } 2672 augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2673 case traffic-selector-mip6 { 2674 when "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2675 uses traffic-selectors:traffic-selector; 2676 } 2677 } 2679 // RPC choice augmentation in the fpcp-base under "port_property_add" rpc. 2680 augment "/fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2681 case pmip { 2682 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'"; 2683 uses qosattribute-pmip; 2684 } 2685 } 2687 // RPC choice augmentation in the fpcp-base under "port_property_modify" rpc. 2688 augment "/fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2689 case pmip { 2690 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'"; 2691 uses qosattribute-pmip; 2693 } 2694 } 2696 // RPC choice augmentation in the fpcp-base under "rule_add" rpc. 2697 augment "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2698 case traffic-selector-mip6 { 2699 when "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2700 uses traffic-selectors:traffic-selector; 2701 } 2702 } 2704 // RPC choice augmentation in the fpcp-base under "rule_modify" rpc. 2705 augment "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2706 case traffic-selector-mip6 { 2707 when "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2708 uses traffic-selectors:traffic-selector; 2709 } 2710 } 2712 } 2714 Figure 21: caption1 2716 6.2.2. FPC PMIP tree 2718 module: ietf-dmm-fpcp-pmip 2719 augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type: 2720 +--:(pmip) 2721 +--rw dscp? inet:dscp 2722 +--rw (attribute)? 2723 +--:(per-mn-agg-max-dl) 2724 | +--rw per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2725 +--:(per-mn-agg-max-ul) 2726 | +--rw per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2727 +--:(per-session-agg-max) 2728 | +--rw max-dl uint32 2729 | +--rw service-flag boolean 2730 | +--rw exclude-flag boolean 2731 +--:(agg-max-dl) 2732 | +--rw agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2733 +--:(agg-max-ul) 2734 | +--rw agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2735 +--:(gbr-dl) 2736 | +--rw gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2737 +--:(gbr-ul) 2738 +--rw gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2739 augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type: 2740 +--:(traffic-selector-mip6) 2741 +--rw ts-format? identityref 2742 +--rw start-ipsec-spi? ipsec-spi 2743 +--rw end-ipsec-spi? ipsec-spi 2744 +--rw start-source-port? inet:port-number 2745 +--rw end-source-port? inet:port-number 2746 +--rw start-destination-port? inet:port-number 2747 +--rw end-destination-port? inet:port-number 2748 +--rw start-source-address-v4? inet:ipv4-address 2749 +--rw end-source-address-v4? inet:ipv4-address 2750 +--rw start-destination-address-v4? inet:ipv4-address 2751 +--rw end-destination-address-v4? inet:ipv4-address 2752 +--rw start-ds? inet:dscp 2753 +--rw end-ds? inet:dscp 2754 +--rw start-protocol? uint8 2755 +--rw end-protocol? uint8 2756 +--rw start-source-address-v6? inet:ipv6-address 2757 +--rw end-source-address-v6? inet:ipv6-address 2758 +--rw start-destination-address-v6? inet:ipv6-address 2759 +--rw end-destination-address-v6? inet:ipv6-address 2760 +--rw start-flow-label? inet:ipv6-flow-label 2761 +--rw end-flow-label? inet:ipv6-flow-label 2762 +--rw start-traffic-class? inet:dscp 2763 +--rw end-traffic-class? inet:dscp 2764 +--rw start-next-header? uint8 2765 +--rw end-next-header? uint8 2766 augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2767 +--:(pmip) 2768 +--ro dscp? inet:dscp 2769 +--ro (attribute)? 2770 +--:(per-mn-agg-max-dl) 2771 | +--ro per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2772 +--:(per-mn-agg-max-ul) 2773 | +--ro per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2774 +--:(per-session-agg-max) 2775 | +--ro max-dl uint32 2776 | +--ro service-flag boolean 2777 | +--ro exclude-flag boolean 2778 +--:(agg-max-dl) 2779 | +--ro agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2780 +--:(agg-max-ul) 2781 | +--ro agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2782 +--:(gbr-dl) 2783 | +--ro gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2784 +--:(gbr-ul) 2785 +--ro gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2786 augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2787 +--:(traffic-selector-mip6) 2788 +--ro ts-format? identityref 2789 +--ro start-ipsec-spi? ipsec-spi 2790 +--ro end-ipsec-spi? ipsec-spi 2791 +--ro start-source-port? inet:port-number 2792 +--ro end-source-port? inet:port-number 2793 +--ro start-destination-port? inet:port-number 2794 +--ro end-destination-port? inet:port-number 2795 +--ro start-source-address-v4? inet:ipv4-address 2796 +--ro end-source-address-v4? inet:ipv4-address 2797 +--ro start-destination-address-v4? inet:ipv4-address 2798 +--ro end-destination-address-v4? inet:ipv4-address 2799 +--ro start-ds? inet:dscp 2800 +--ro end-ds? inet:dscp 2801 +--ro start-protocol? uint8 2802 +--ro end-protocol? uint8 2803 +--ro start-source-address-v6? inet:ipv6-address 2804 +--ro end-source-address-v6? inet:ipv6-address 2805 +--ro start-destination-address-v6? inet:ipv6-address 2806 +--ro end-destination-address-v6? inet:ipv6-address 2807 +--ro start-flow-label? inet:ipv6-flow-label 2808 +--ro end-flow-label? inet:ipv6-flow-label 2809 +--ro start-traffic-class? inet:dscp 2810 +--ro end-traffic-class? inet:dscp 2811 +--ro start-next-header? uint8 2812 +--ro end-next-header? uint8 2813 augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2814 +--:(pmip) 2815 +---- dscp? inet:dscp 2816 +---- (attribute)? 2817 +--:(per-mn-agg-max-dl) 2818 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2819 +--:(per-mn-agg-max-ul) 2820 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2821 +--:(per-session-agg-max) 2822 | +---- max-dl uint32 2823 | +---- service-flag boolean 2824 | +---- exclude-flag boolean 2825 +--:(agg-max-dl) 2826 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2827 +--:(agg-max-ul) 2828 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2829 +--:(gbr-dl) 2830 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2831 +--:(gbr-ul) 2832 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2833 augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2834 +--:(traffic-selector-mip6) 2835 +---- ts-format? identityref 2836 +---- start-ipsec-spi? ipsec-spi 2837 +---- end-ipsec-spi? ipsec-spi 2838 +---- start-source-port? inet:port-number 2839 +---- end-source-port? inet:port-number 2840 +---- start-destination-port? inet:port-number 2841 +---- end-destination-port? inet:port-number 2842 +---- start-source-address-v4? inet:ipv4-address 2843 +---- end-source-address-v4? inet:ipv4-address 2844 +---- start-destination-address-v4? inet:ipv4-address 2845 +---- end-destination-address-v4? inet:ipv4-address 2846 +---- start-ds? inet:dscp 2847 +---- end-ds? inet:dscp 2848 +---- start-protocol? uint8 2849 +---- end-protocol? uint8 2850 +---- start-source-address-v6? inet:ipv6-address 2851 +---- end-source-address-v6? inet:ipv6-address 2852 +---- start-destination-address-v6? inet:ipv6-address 2853 +---- end-destination-address-v6? inet:ipv6-address 2854 +---- start-flow-label? inet:ipv6-flow-label 2855 +---- end-flow-label? inet:ipv6-flow-label 2856 +---- start-traffic-class? inet:dscp 2857 +---- end-traffic-class? inet:dscp 2858 +---- start-next-header? uint8 2859 +---- end-next-header? uint8 2860 augment /fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2861 +--:(pmip) 2862 +---- dscp? inet:dscp 2863 +---- (attribute)? 2864 +--:(per-mn-agg-max-dl) 2865 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2866 +--:(per-mn-agg-max-ul) 2867 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2868 +--:(per-session-agg-max) 2869 | +---- max-dl uint32 2870 | +---- service-flag boolean 2871 | +---- exclude-flag boolean 2872 +--:(agg-max-dl) 2873 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2874 +--:(agg-max-ul) 2875 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2876 +--:(gbr-dl) 2877 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2878 +--:(gbr-ul) 2879 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2880 augment /fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2881 +--:(pmip) 2882 +---- dscp? inet:dscp 2883 +---- (attribute)? 2884 +--:(per-mn-agg-max-dl) 2885 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2886 +--:(per-mn-agg-max-ul) 2887 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2888 +--:(per-session-agg-max) 2889 | +---- max-dl uint32 2890 | +---- service-flag boolean 2891 | +---- exclude-flag boolean 2892 +--:(agg-max-dl) 2893 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2894 +--:(agg-max-ul) 2895 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2896 +--:(gbr-dl) 2897 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2898 +--:(gbr-ul) 2899 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2900 augment /fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2901 +--:(traffic-selector-mip6) 2902 +---- ts-format? identityref 2903 +---- start-ipsec-spi? ipsec-spi 2904 +---- end-ipsec-spi? ipsec-spi 2905 +---- start-source-port? inet:port-number 2906 +---- end-source-port? inet:port-number 2907 +---- start-destination-port? inet:port-number 2908 +---- end-destination-port? inet:port-number 2909 +---- start-source-address-v4? inet:ipv4-address 2910 +---- end-source-address-v4? inet:ipv4-address 2911 +---- start-destination-address-v4? inet:ipv4-address 2912 +---- end-destination-address-v4? inet:ipv4-address 2913 +---- start-ds? inet:dscp 2914 +---- end-ds? inet:dscp 2915 +---- start-protocol? uint8 2916 +---- end-protocol? uint8 2917 +---- start-source-address-v6? inet:ipv6-address 2918 +---- end-source-address-v6? inet:ipv6-address 2919 +---- start-destination-address-v6? inet:ipv6-address 2920 +---- end-destination-address-v6? inet:ipv6-address 2921 +---- start-flow-label? inet:ipv6-flow-label 2922 +---- end-flow-label? inet:ipv6-flow-label 2923 +---- start-traffic-class? inet:dscp 2924 +---- end-traffic-class? inet:dscp 2925 +---- start-next-header? uint8 2926 +---- end-next-header? uint8 2927 augment /fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2928 +--:(traffic-selector-mip6) 2929 +---- ts-format? identityref 2930 +---- start-ipsec-spi? ipsec-spi 2931 +---- end-ipsec-spi? ipsec-spi 2932 +---- start-source-port? inet:port-number 2933 +---- end-source-port? inet:port-number 2934 +---- start-destination-port? inet:port-number 2935 +---- end-destination-port? inet:port-number 2936 +---- start-source-address-v4? inet:ipv4-address 2937 +---- end-source-address-v4? inet:ipv4-address 2938 +---- start-destination-address-v4? inet:ipv4-address 2939 +---- end-destination-address-v4? inet:ipv4-address 2940 +---- start-ds? inet:dscp 2941 +---- end-ds? inet:dscp 2942 +---- start-protocol? uint8 2943 +---- end-protocol? uint8 2944 +---- start-source-address-v6? inet:ipv6-address 2945 +---- end-source-address-v6? inet:ipv6-address 2946 +---- start-destination-address-v6? inet:ipv6-address 2947 +---- end-destination-address-v6? inet:ipv6-address 2948 +---- start-flow-label? inet:ipv6-flow-label 2949 +---- end-flow-label? inet:ipv6-flow-label 2950 +---- start-traffic-class? inet:dscp 2951 +---- end-traffic-class? inet:dscp 2952 +---- start-next-header? uint8 2953 +---- end-next-header? uint8 2955 Figure 22: FPC PMIP tree 2957 7. Security Considerations 2959 Detailed protocol implementations for DMM Forwarding Policy 2960 Configuration must ensure integrity of the information exchanged 2961 between an FPC Client and an FPC Agent. Required Security 2962 Associations may be derived from co-located functions, which utilize 2963 the FPC Client and FPC Agent respectively. 2965 8. IANA Considerations 2967 This document provides a data model and protocol operation for DMM 2968 Forwarding Policy Configuration. Yang models are included to specify 2969 the data model as well as to enable an implementation of this 2970 protocol using RPC. 2972 No actions from IANA are required. In case the semantics of this 2973 specification will be mapped to a particular wire protocol, authors 2974 of an associated separate document will approach IANA for the 2975 associated action to create a registry or add registry entries. 2977 9. Work Team Participants 2979 Participants in the FPSM work team discussion include Satoru 2980 Matsushima, Danny Moses, Sri Gundavelli, Marco Liebsch, Pierrick 2981 Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred 2982 Templin. 2984 10. References 2986 10.1. Normative References 2988 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2989 Requirement Levels", BCP 14, RFC 2119, 2990 DOI 10.17487/RFC2119, March 1997, 2991 . 2993 [RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont, 2994 "Traffic Selectors for Flow Bindings", RFC 6088, 2995 DOI 10.17487/RFC6088, January 2011, 2996 . 2998 [RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J. 2999 Korhonen, "Requirements for Distributed Mobility 3000 Management", RFC 7333, DOI 10.17487/RFC7333, August 2014, 3001 . 3003 [RFC7429] Liu, D., Ed., Zuniga, JC., Ed., Seite, P., Chan, H., and 3004 CJ. Bernardos, "Distributed Mobility Management: Current 3005 Practices and Gap Analysis", RFC 7429, 3006 DOI 10.17487/RFC7429, January 2015, 3007 . 3009 10.2. Informative References 3011 [RFC3344] Perkins, C., Ed., "IP Mobility Support for IPv4", 3012 RFC 3344, DOI 10.17487/RFC3344, August 2002, 3013 . 3015 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 3016 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 3017 RFC 5213, DOI 10.17487/RFC5213, August 2008, 3018 . 3020 [RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S. 3021 Gundavelli, "Quality-of-Service Option for Proxy Mobile 3022 IPv6", RFC 7222, DOI 10.17487/RFC7222, May 2014, 3023 . 3025 Authors' Addresses 3027 Marco Liebsch 3028 NEC Laboratories Europe 3029 NEC Europe Ltd. 3030 Kurfuersten-Anlage 36 3031 D-69115 Heidelberg 3032 Germany 3034 Phone: +49 6221 4342146 3035 Email: liebsch@neclab.eu 3037 Satoru Matsushima 3038 SoftBank 3039 1-9-1,Higashi-Shimbashi,Minato-Ku 3040 Tokyo 105-7322 3041 Japan 3043 Email: satoru.matsushima@g.softbank.co.jp 3045 Sri Gundavelli 3046 Cisco 3047 170 West Tasman Drive 3048 San Jose, CA 95134 3049 USA 3051 Email: sgundave@cisco.com 3053 Danny Moses 3055 Email: danny.moses@intel.com 3057 Lyle Bertz 3058 6220 Sprint Parkway 3059 Overland Park KS, 66251 3060 USA 3062 Email: lyleb551144@gmail.com