idnits 2.17.1 draft-ietf-dmm-fpc-cpdp-03.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 2354 has weird spacing: '...ient-id fpc...' == Line 2357 has weird spacing: '... dpn-id fpc...' == Line 2360 has weird spacing: '...work-id fpc...' == Line 2370 has weird spacing: '... dpn-id fpc...' == Line 2399 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-03.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. Security Considerations . . . . . . . . . . . . . . . . . . . 34 85 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 86 8. Work Team Participants . . . . . . . . . . . . . . . . . . . 34 87 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 88 9.1. Normative References . . . . . . . . . . . . . . . . . . 34 89 9.2. Informative References . . . . . . . . . . . . . . . . . 35 90 Appendix A. YANG Data Model for the FPC protocol . . . . . . . . 35 91 A.1. FPC Base . . . . . . . . . . . . . . . . . . . . . . . . 36 92 A.1.1. FPC Base YANG Model . . . . . . . . . . . . . . . . . 36 93 A.1.2. FPC Base tree . . . . . . . . . . . . . . . . . . . . 52 94 A.2. FPC PMIP . . . . . . . . . . . . . . . . . . . . . . . . 58 95 A.2.1. FPC PMIP YANG Model . . . . . . . . . . . . . . . . . 58 96 A.2.2. FPC PMIP tree . . . . . . . . . . . . . . . . . . . . 61 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. Security Considerations 1464 Detailed protocol implementations for DMM Forwarding Policy 1465 Configuration must ensure integrity of the information exchanged 1466 between an FPC Client and an FPC Agent. Required Security 1467 Associations may be derived from co-located functions, which utilize 1468 the FPC Client and FPC Agent respectively. 1470 7. IANA Considerations 1472 This document provides a data model and protocol operation for DMM 1473 Forwarding Policy Configuration. YANG models are currently included 1474 in the Appendix and will be updated per the next revision of this 1475 document to specify the data model as well as to enable an 1476 implementation of the FPC protocol using RPC. 1478 No actions from IANA are required. In case the semantics of this 1479 specification will be mapped to a particular wire protocol, authors 1480 of an associated separate document will approach IANA for the 1481 associated action to create a registry or add registry entries. 1483 8. Work Team Participants 1485 Participants in the FPSM work team discussion include Satoru 1486 Matsushima, Danny Moses, Sri Gundavelli, Marco Liebsch, Pierrick 1487 Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred 1488 Templin. 1490 9. References 1492 9.1. Normative References 1494 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1495 Requirement Levels", BCP 14, RFC 2119, 1496 DOI 10.17487/RFC2119, March 1997, 1497 . 1499 [RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont, 1500 "Traffic Selectors for Flow Bindings", RFC 6088, 1501 DOI 10.17487/RFC6088, January 2011, 1502 . 1504 [RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J. 1505 Korhonen, "Requirements for Distributed Mobility 1506 Management", RFC 7333, DOI 10.17487/RFC7333, August 2014, 1507 . 1509 [RFC7429] Liu, D., Ed., Zuniga, JC., Ed., Seite, P., Chan, H., and 1510 CJ. Bernardos, "Distributed Mobility Management: Current 1511 Practices and Gap Analysis", RFC 7429, 1512 DOI 10.17487/RFC7429, January 2015, 1513 . 1515 9.2. Informative References 1517 [RFC3344] Perkins, C., Ed., "IP Mobility Support for IPv4", 1518 RFC 3344, DOI 10.17487/RFC3344, August 2002, 1519 . 1521 [RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., 1522 Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", 1523 RFC 5213, DOI 10.17487/RFC5213, August 2008, 1524 . 1526 [RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S. 1527 Gundavelli, "Quality-of-Service Option for Proxy Mobile 1528 IPv6", RFC 7222, DOI 10.17487/RFC7222, May 2014, 1529 . 1531 Appendix A. YANG Data Model for the FPC protocol 1533 These modules define Model I YANG definitions. Four modules are 1534 defined: 1536 o ietf-dmm-fpcp-base (fpcp-base) - Defines the base model for Model 1537 I FPC as defined in this document 1539 o ietf-pmip-qos (pmip-qos) - Defines proxy mobile IPv6 QoS 1540 parameters per RFC 7222 1542 o ietf-traffic-selectors-types (traffic-selectors) - Defines Traffic 1543 Selectors per RFC 6088 1545 o ietf-dmm-fpcp-pmip - Augments fpcp-base to include PMIP Traffic 1546 Selectors as a Traffic Descriptor subtype and pmip-qos QoS 1547 parameters, where applicable, as properties. 1549 Note (2016-03-21): The YANG Data Model does not yet adopt all 1550 extensions per this version of the draft and will be updated shortly 1551 after the IETF95 meeting. 1553 A.1. FPC Base 1555 A.1.1. FPC Base YANG Model 1557 module ietf-dmm-fpcp-base { 1558 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-base"; 1559 prefix fpcp-base; 1561 import ietf-inet-types { prefix inet; } 1563 organization "IETF DMM Working Group"; 1564 contact "Satoru Matsushima "; 1566 description 1567 "This module contains YANG definition for 1568 Forwarding Policy Configuration Protocol.(FPCP)"; 1570 revision 2016-01-18 { 1571 description "Changes based on -01 version of FPCP draft."; 1572 reference "draft-ietf-dmm-fpc-cpdp-01"; 1573 } 1575 typedef fpcp-name-type { 1576 type string; 1577 description "FPCP common name type"; 1578 } 1580 typedef fpcp-carrier-id { 1581 type uint16; 1582 description "Carrier-ID"; 1583 } 1585 typedef fpcp-network-id { 1586 type uint16; 1587 description "Carrier-ID"; 1588 } 1590 typedef fpcp-client-id { 1591 type uint32; 1592 description "Client-ID"; 1594 } 1596 typedef fpcp-agent-id { 1597 type uint32; 1598 description "Agent-ID"; 1599 } 1601 typedef fpcp-dpn-id { 1602 type uint32; 1603 description "Carrier-ID"; 1604 } 1606 typedef fpcp-port-id { 1607 type uint32; 1608 description "PRT_ID"; 1609 } 1611 typedef fpcp-property-id { 1612 type uint8; 1613 description "PRT_PROP_ID"; 1614 } 1616 typedef fpcp-rule-id { 1617 type uint8; 1618 description "PRT_RULE_ID"; 1619 } 1621 typedef fpcp-qos-class-identifier { 1622 type uint8 { 1623 range "1..9"; 1624 } 1625 description "QCI"; 1626 } 1628 typedef fpcp-qos-bandwidth { 1629 type uint32; 1630 description "Bandwith value in bit per second."; 1631 } 1633 identity tunnel-type { 1634 description 1635 "Base identity from which specific use of 1636 tunnels are derived."; 1637 } 1639 identity fpcp-tunnel-type { 1640 base "tunnel-type"; 1641 description 1642 "Base identity from which specific tunnel 1643 types in FPCP uses are derived."; 1644 } 1646 identity ip-in-ip { 1647 base "fpcp-tunnel-type"; 1648 description "IP-in-IP tunnel"; 1649 } 1651 identity gtp { 1652 base "fpcp-tunnel-type"; 1653 description "GTP-U tunnel"; 1654 } 1656 identity gre { 1657 base "fpcp-tunnel-type"; 1658 description "GRE tunnel"; 1659 } 1661 identity service-function { 1662 description 1663 "Base identity from which specific 1664 service function types are derived."; 1665 } 1667 identity ip-protocol { 1668 description 1669 "Base identity from which specific 1670 IP protocol types are derived."; 1671 } 1673 identity property-type { 1674 description 1675 "Base identity of property"; 1676 } 1678 identity property-qos { 1679 base "property-type"; 1680 description 1681 "QoS property"; 1682 } 1684 identity property-endpoint { 1685 base "property-type"; 1686 description 1687 "Endpoint property"; 1688 } 1689 identity property-type-endpoint { 1690 base "property-type"; 1691 description 1692 "Endpoint property"; 1693 } 1695 identity qos-type { 1696 description 1697 "Base identity from which specific 1698 uses of QoS types are derived."; 1699 } 1701 identity fpcp-qos-type { 1702 base "qos-type"; 1703 description 1704 "Base identity from which specific 1705 QoS types in FPCP uses are derived."; 1706 } 1708 identity fpcp-qos-type-gbr { 1709 base "fpcp-qos-type"; 1710 description 1711 "A QoS Type for Guaranteed Bit Rate (GBR)."; 1712 } 1714 identity fpcp-qos-type-mbr { 1715 base "fpcp-qos-type"; 1716 description 1717 "A QoS Type for Maximum Bit Rate (MBR)."; 1718 } 1720 identity fpcp-qos-index-type { 1721 base "qos-type"; 1722 } 1724 identity fpcp-qos-index { 1725 base "fpcp-qos-index-type"; 1726 } 1728 identity traffic-descriptor-type { 1729 } 1731 identity fpcp-traffic-descriptor { 1732 base "traffic-descriptor-type"; 1733 } 1735 grouping carrier { 1736 description "Identify FPCP Carrier"; 1737 leaf carrier-id { 1738 type fpcp-carrier-id; 1739 mandatory true; 1740 description "Carrier ID"; 1741 } 1742 } 1744 grouping agent { 1745 description "AGT_ID to identify FPCP Agent"; 1746 leaf agent-id { 1747 type fpcp-agent-id; 1748 description "Agent ID"; 1749 } 1750 } 1752 grouping client { 1753 description "CLI_ID to identify FPCP Client"; 1754 leaf client-id { 1755 type fpcp-client-id; 1756 description "Client ID"; 1757 } 1758 } 1760 grouping network { 1761 description "Identify FPCP Network"; 1762 leaf network-id { 1763 type fpcp-network-id; 1764 description "Network ID"; 1765 } 1766 } 1768 grouping dpn { 1769 description "Identify FPCP Data-Plane Node"; 1770 leaf dpn-id { 1771 type fpcp-dpn-id; 1772 description "DPN ID"; 1773 } 1774 } 1776 grouping port { 1777 description "Identify FPCP Port"; 1778 leaf port-id { 1779 type fpcp-port-id; 1780 description "Port-ID"; 1781 } 1782 } 1783 grouping property { 1784 description "Identify FPCP Property"; 1785 leaf property-id { 1786 type fpcp-property-id; 1787 description "Property-ID"; 1788 } 1789 } 1791 grouping rule { 1792 description "Identify FPCP Rule"; 1793 leaf rule-id { 1794 type fpcp-rule-id; 1795 description "Rule-ID"; 1796 } 1797 } 1799 grouping fpcp-carrier { 1800 description "Define FPCP network"; 1801 uses carrier; 1802 uses agent; 1803 list client { 1804 key client-id; 1805 description "List of FPCP Clients"; 1806 leaf name { 1807 type fpcp-name-type; 1808 description "Client Name"; 1809 } 1810 uses client; 1811 } 1812 list dpn { 1813 key dpn-id; 1814 description "List of FPCP DPNs"; 1815 leaf name { 1816 type fpcp-name-type; 1817 description "DPN Name"; 1818 } 1819 uses dpn; 1820 } 1821 } 1823 grouping dpn-set { 1824 description "DPNs which consist a DPN set."; 1825 leaf name { 1826 type fpcp-name-type; 1827 description "DPN set name"; 1828 } 1829 leaf network { 1830 type leafref { 1831 path "/fpcp-carriers/carrier/network/network-id"; 1832 } 1833 description "Network-ID which a DPN-set is belonging to."; 1834 } 1835 leaf role { 1836 type enumeration { 1837 enum anchor-l3 { 1838 description ""; 1839 } 1840 enum anchor-l2 { 1841 description ""; 1842 } 1843 enum access { 1844 description ""; 1845 } 1846 } 1847 description "Define DPNs role in data-plane."; 1848 } 1849 list endpoint-dp { 1850 key local-address; 1851 description "List of data-plane endpoint properties of a 1852 set of DPNs."; 1853 leaf local-address { 1854 type inet:ip-address; 1855 description ""; 1856 } 1857 leaf remote-dpn { 1858 type leafref { 1859 path "/fpcp-carriers/carrier/dpn-group/name"; 1860 } 1861 description ""; 1862 } 1863 leaf default-tunnel-type { 1864 type identityref { 1865 base "fpcp-tunnel-type"; 1866 } 1867 description "Tunnel Type"; 1868 } 1869 } 1870 grouping dpn-set { 1871 description "DPNs which consist a DPN set."; 1872 leaf name { 1873 type fpcp-name-type; 1874 description "DPN set name"; 1875 } 1876 leaf network { 1877 type leafref { 1878 path "/fpcp-carriers/carrier/network/network-id"; 1880 } 1881 description "Network-ID which a DPN-set is belonging to."; 1882 } 1883 leaf role { 1884 type enumeration { 1885 enum anchor-l3 { 1886 description ""; 1887 } 1888 enum anchor-l2 { 1889 description ""; 1890 } 1891 enum access { 1892 description ""; 1893 } 1894 } 1895 description "Define DPNs role in data-plane."; 1896 } 1897 list endpoint-dp { 1898 key local-address; 1899 description "List of data-plane endpoint properties of a 1900 set of DPNs."; 1901 leaf local-address { 1902 type inet:ip-address; 1903 description ""; 1904 } 1905 leaf remote-dpn { 1906 type leafref { 1907 path "/fpcp-carriers/carrier/dpn-group/name"; 1908 } 1909 description ""; 1910 } 1911 leaf default-tunnel-type { 1912 type identityref { 1913 base "fpcp-tunnel-type"; 1914 } 1915 description "Tunnel Type"; 1916 } 1917 } 1918 list dpn { 1919 key dpn-id; 1920 uses dpn; 1921 description "DPN list in a DPN set"; 1922 } 1923 } 1925 grouping tunnel-endpoints { 1926 description 1927 "PROP_TUN property as a set of tunnel endpoints"; 1928 leaf tunnel-type { 1929 type identityref { 1930 base "fpcp-tunnel-type"; 1931 } 1932 description "Tunnel Type"; 1933 } 1934 leaf remote-address { 1935 type inet:ip-address; 1936 description "Remote endpoint"; 1937 } 1938 leaf local-address { 1939 type inet:ip-address; 1940 description "Local endpoint"; 1941 } 1942 } 1944 grouping gtp-attributes { 1945 description 1946 "GTP_CONF as GTP tunnel specific attributes"; 1947 leaf remote-teid { 1948 type uint32; 1949 description "TEID of remote-endpoint"; 1950 } 1951 leaf local-teid { 1952 type uint32; 1953 description "TEID of local-endpoint"; 1954 } 1955 } 1956 grouping gre-attributes { 1957 description 1958 "GRE_CONF as GRE tunnel specific attribute"; 1959 leaf key { 1960 type uint32; 1961 description "GRE_KEY"; 1962 } 1963 } 1965 grouping rewriting-properties { 1966 description 1967 "PROP_REWR. TBD for which type of rewriting functions 1968 need to be defined"; 1969 leaf type { 1970 type identityref { 1971 base service-function; 1972 } 1973 description "The type of service-function"; 1974 } 1975 } 1976 grouping fpcp-qosattribute { 1977 leaf qci { 1978 type fpcp-qos-class-identifier; 1979 } 1980 leaf attributetype { 1981 type identityref { 1982 base fpcp-qos-type; 1983 } 1984 description "the attribute type"; 1985 } 1986 leaf bandwidth { 1987 type fpcp-qos-bandwidth; 1988 } 1989 } 1991 grouping fpcp-qos-property { 1992 description "PROP_QOS"; 1993 leaf name { 1994 type fpcp-name-type; 1995 } 1996 leaf qos-index-type { 1997 type identityref { 1998 base "fpcp-qos-index-type"; 1999 } 2000 } 2001 choice index-type { 2002 case qci { 2003 when "../qos-index-type = 'fpcp-qos-index'"; 2004 container uplink { 2005 uses fpcp-qosattribute; 2006 } 2007 container downlink { 2008 uses fpcp-qosattribute; 2009 } 2010 } 2011 } 2012 } 2014 grouping traffic-descriptor { 2015 description 2016 "Traffic descriptor group collects parameters to 2017 identify target traffic flow."; 2019 leaf destination-ip { 2020 type inet:ip-prefix; 2021 description "Rule of destination IP"; 2022 } 2023 leaf source-ip { 2024 type inet:ip-prefix; 2025 description "Rule of source IP"; 2026 } 2027 } 2029 grouping fpcp-traffic-descriptor { 2030 leaf name { 2031 type fpcp-name-type; 2032 } 2033 leaf traffic-discriptor-type { 2034 type identityref { 2035 base "traffic-descriptor-type"; 2036 } 2037 } 2039 choice descriptor-type { 2040 case fpcp-traffic-descriptor { 2041 when "../descriptor-type = 'fpcp-traffic-descriptor'"; 2042 uses traffic-descriptor; 2043 } 2044 } 2045 } 2047 grouping fpcp-forwarding-rule { 2048 uses rule; 2049 uses fpcp-traffic-descriptor; 2050 } 2052 grouping fpcp-port-properties { 2053 description 2054 "A set of port property attributes"; 2056 uses property; 2057 list attached-dpns { 2058 key name; 2059 leaf name { 2060 type fpcp-name-type; 2061 description "DPN group name of which port attached."; 2062 } 2063 description "Port attached DPN group list."; 2064 } 2065 container endpoints { 2066 description "Tunnel Endpoint"; 2067 uses tunnel-endpoints; 2068 choice tunnel { 2069 description "Tunnel-Type"; 2070 case gtp-u { 2071 when "tunnel-type = 'gtp'" { 2072 description "In case of GTP-U is tunnel-type"; 2073 } 2074 uses gtp-attributes; 2075 } 2076 case gre { 2077 when "tunnel-type = 'gre'" { 2078 description "In case of GRE is tunnel-type"; 2079 } 2080 uses gre-attributes; 2081 } 2082 } 2083 } 2084 container qos { 2085 description "QoS Type"; 2086 uses fpcp-qos-property; 2087 list port-in-aggregated-bandwidth { 2088 key port-id; 2089 uses port; 2090 } 2091 } 2092 container rewriting { 2093 description "Rewriting function"; 2094 uses rewriting-properties; 2095 } 2096 } 2098 grouping port-field { 2099 description "Definition of attributes of port field"; 2100 uses port; 2101 uses carrier; 2102 uses network; 2103 } 2105 // Container for configurations sets. 2107 container fpcp-carriers { 2108 description "Attributes set of FPCP network"; 2110 list carrier { 2111 key carrier-id; 2112 description "List of carriers"; 2113 leaf name { 2114 type fpcp-name-type; 2115 description "FPCP Carrier name"; 2116 } 2117 uses fpcp-carrier; 2118 list network { 2119 key network-id; 2120 description "List of networks in a carrier."; 2121 leaf name { 2122 type fpcp-name-type; 2123 description "Define visible name of a network."; 2124 } 2125 uses network; 2126 } 2127 list dpn-group { 2128 key name; 2129 description "List of DPN groups in a carrier."; 2130 uses dpn-set; 2131 } 2132 list qos-profile { 2133 key name; 2134 uses fpcp-qos-property; 2135 } 2136 list traffic-descriptor { 2137 key name; 2138 uses fpcp-traffic-descriptor; 2139 } 2140 } 2141 } 2143 // Port Entries 2145 container port-entries { 2146 config false; 2147 description 2148 "This container binds set of traffic-descriptor and 2149 port properties to a port and lists them as a port entry."; 2151 list port-entry { 2152 key port-id; 2153 description "List of port entries"; 2154 uses port-field; 2156 list property { 2157 key property-id; 2158 description "Attributes set of properties"; 2159 uses fpcp-port-properties; 2160 } 2162 list forwarding-rule { 2163 key rule-id; 2164 description "Rule and traffic-descriptor"; 2165 uses fpcp-forwarding-rule; 2167 } 2168 } 2169 } 2171 // PRT_ADD 2173 rpc port_add { 2174 description "PRT_ADD"; 2175 input { 2176 list adding-port { 2177 description "Ports that are added to an agent"; 2178 uses port-field; 2179 list forwarding-rule { 2180 key rule-id; 2181 description "Rule and traffic-descriptor"; 2182 uses fpcp-forwarding-rule; 2183 } 2184 list property { 2185 key property-id; 2186 description "Attributes set of properties"; 2187 uses fpcp-port-properties; 2188 } 2189 } 2190 } 2191 } 2193 // PRT_DEL 2195 rpc port_delete { 2196 description "PRT_DEL"; 2197 input { 2198 list deleting-port { 2199 description "Ports that are deleted from an agent"; 2200 uses port-field; 2201 } 2202 } 2203 } 2205 // PROP_ADD 2207 rpc port_property_add { 2208 description "PROP_ADD"; 2209 input { 2210 list adding-property { 2211 description "Properties that are added to an agent"; 2212 uses port-field; 2213 list property { 2214 key property-id; 2215 description "Attributes set of properties"; 2216 uses fpcp-port-properties; 2217 } 2218 } 2219 } 2220 } 2222 // PROP_MOD 2224 rpc port_property_modify { 2225 description "PROP_MOD"; 2226 input { 2227 list modifying-property { 2228 description 2229 "Properties that are modified in an agent"; 2230 uses port-field; 2232 list property { 2233 key property-id; 2234 description "Attributes set of properties"; 2235 uses fpcp-port-properties; 2236 } 2237 } 2238 } 2239 } 2241 // PROP_DEL 2243 rpc port_property_delete { 2244 description "PROP_DEL"; 2245 input { 2246 list deleting-property { 2247 description 2248 "Target port/property-id of deleting properties"; 2249 uses port-field; 2251 leaf property-id { 2252 type fpcp-property-id; 2253 mandatory true; 2254 description "Property ID"; 2255 } 2256 } 2257 } 2258 } 2259 // RULE_ADD 2261 rpc rule_add { 2262 description 2263 "TBD for input parameters of which RULE_ADD includes 2264 but now just traffic-descriptor."; 2265 input { 2266 list adding-rule { 2267 description "Rules that are added to an agent"; 2268 uses port-field; 2270 list forwarding-rule { 2271 description "Added rule"; 2272 uses fpcp-forwarding-rule; 2273 } 2274 } 2275 } 2276 } 2278 // RULE_MOD 2280 rpc rule_modify { 2281 description 2282 "TBD for input parameters of which RULE_MOD includes 2283 but now just traffic-descriptor."; 2284 input { 2285 list modifying-rule { 2286 description "Rules that are modified in an agent"; 2287 uses port-field; 2289 list forwarding-rule { 2290 description "Modified rule"; 2291 uses fpcp-forwarding-rule; 2292 } 2293 } 2294 } 2295 } 2297 // RULE_DEL 2299 rpc rule_delete { 2300 description 2301 "TBD for input parameters of which RULE_DEL includes 2302 but now just traffic-descriptor."; 2303 input { 2304 list deleting-rule { 2305 description "Rules that are deleted from an agent"; 2306 uses port-field; 2307 list target-rule { 2308 description "Deleting rules"; 2309 leaf target-rule-id { 2310 type fpcp-rule-id; 2311 mandatory true; 2312 description "Rule ID"; 2313 } 2314 } 2315 } 2316 } 2317 } 2319 // EVENT_REG 2321 rpc event_register { 2322 description 2323 "TBD for registered parameters included in EVENT_REG."; 2324 } 2326 // PROBE 2328 rpc probe { 2329 description 2330 "TBD for retrieved parameters included in PROBE."; 2331 } 2333 // NOTIFY 2335 notification notify { 2336 description 2337 "TBD for which status and event are reported to client."; 2338 } 2340 } 2342 Figure 19: FPC YANG base 2344 A.1.2. FPC Base tree 2346 module: ietf-dmm-fpcp-base 2347 +--rw fpcp-carriers 2348 | +--rw carrier* [carrier-id] 2349 | +--rw name? fpcp-name-type 2350 | +--rw carrier-id fpcp-carrier-id 2351 | +--rw agent-id? fpcp-agent-id 2352 | +--rw client* [client-id] 2353 | | +--rw name? fpcp-name-type 2354 | | +--rw client-id fpcp-client-id 2355 | +--rw dpn* [dpn-id] 2356 | | +--rw name? fpcp-name-type 2357 | | +--rw dpn-id fpcp-dpn-id 2358 | +--rw network* [network-id] 2359 | | +--rw name? fpcp-name-type 2360 | | +--rw network-id fpcp-network-id 2361 | +--rw dpn-group* [name] 2362 | | +--rw name fpcp-name-type 2363 | | +--rw network? -> /fpcp-carriers/carrier/network/network-id 2364 | | +--rw role? enumeration 2365 | | +--rw endpoint-dp* [local-address] 2366 | | | +--rw local-address inet:ip-address 2367 | | | +--rw remote-dpn? -> /fpcp-carriers/carrier/dpn-group/name 2368 | | | +--rw default-tunnel-type? identityref 2369 | | +--rw dpn* [dpn-id] 2370 | | +--rw dpn-id fpcp-dpn-id 2371 | +--rw qos-profile* [name] 2372 | | +--rw name fpcp-name-type 2373 | | +--rw qos-index-type? identityref 2374 | | +--rw (index-type)? 2375 | | +--:(qci) 2376 | | +--rw uplink 2377 | | | +--rw qci? fpcp-qos-class-identifier 2378 | | | +--rw attributetype? identityref 2379 | | | +--rw bandwidth? fpcp-qos-bandwidth 2380 | | +--rw downlink 2381 | | +--rw qci? fpcp-qos-class-identifier 2382 | | +--rw attributetype? identityref 2383 | | +--rw bandwidth? fpcp-qos-bandwidth 2384 | +--rw traffic-descriptor* [name] 2385 | +--rw name fpcp-name-type 2386 | +--rw traffic-discriptor-type? identityref 2387 | +--rw (descriptor-type)? 2388 | +--:(fpcp-traffic-descriptor) 2389 | +--rw destination-ip? inet:ip-prefix 2390 | +--rw source-ip? inet:ip-prefix 2391 +--ro port-entries 2392 +--ro port-entry* [port-id] 2393 +--ro port-id fpcp-port-id 2394 +--ro carrier-id fpcp-carrier-id 2395 +--ro network-id? fpcp-network-id 2396 +--ro property* [property-id] 2397 | +--ro property-id fpcp-property-id 2398 | +--ro attached-dpns* [name] 2399 | | +--ro name fpcp-name-type 2400 | +--ro endpoints 2401 | | +--ro tunnel-type? identityref 2402 | | +--ro remote-address? inet:ip-address 2403 | | +--ro local-address? inet:ip-address 2404 | | +--ro (tunnel)? 2405 | | +--:(gtp-u) 2406 | | | +--ro remote-teid? uint32 2407 | | | +--ro local-teid? uint32 2408 | | +--:(gre) 2409 | | +--ro key? uint32 2410 | +--ro qos 2411 | | +--ro name? fpcp-name-type 2412 | | +--ro qos-index-type? identityref 2413 | | +--ro (index-type)? 2414 | | | +--:(qci) 2415 | | | +--ro uplink 2416 | | | | +--ro qci? fpcp-qos-class-identifier 2417 | | | | +--ro attributetype? identityref 2418 | | | | +--ro bandwidth? fpcp-qos-bandwidth 2419 | | | +--ro downlink 2420 | | | +--ro qci? fpcp-qos-class-identifier 2421 | | | +--ro attributetype? identityref 2422 | | | +--ro bandwidth? fpcp-qos-bandwidth 2423 | | +--ro port-in-aggregated-bandwidth* [port-id] 2424 | | +--ro port-id fpcp-port-id 2425 | +--ro rewriting 2426 | +--ro type? identityref 2427 +--ro forwarding-rule* [rule-id] 2428 +--ro rule-id fpcp-rule-id 2429 +--ro name? fpcp-name-type 2430 +--ro traffic-discriptor-type? identityref 2431 +--ro (descriptor-type)? 2432 +--:(fpcp-traffic-descriptor) 2433 +--ro destination-ip? inet:ip-prefix 2434 +--ro source-ip? inet:ip-prefix 2436 rpcs: 2437 +---x port_add 2438 | +---w input 2439 | +---w adding-port* 2440 | +---w port-id? fpcp-port-id 2441 | +---w carrier-id fpcp-carrier-id 2442 | +---w network-id? fpcp-network-id 2443 | +---w forwarding-rule* [rule-id] 2444 | | +---w rule-id fpcp-rule-id 2445 | | +---w name? fpcp-name-type 2446 | | +---w traffic-discriptor-type? identityref 2447 | | +---w (descriptor-type)? 2448 | | +--:(fpcp-traffic-descriptor) 2449 | | +---w destination-ip? inet:ip-prefix 2450 | | +---w source-ip? inet:ip-prefix 2451 | +---w property* [property-id] 2452 | +---w property-id fpcp-property-id 2453 | +---w attached-dpns* [name] 2454 | | +---w name fpcp-name-type 2455 | +---w endpoints 2456 | | +---w tunnel-type? identityref 2457 | | +---w remote-address? inet:ip-address 2458 | | +---w local-address? inet:ip-address 2459 | | +---w (tunnel)? 2460 | | +--:(gtp-u) 2461 | | | +---w remote-teid? uint32 2462 | | | +---w local-teid? uint32 2463 | | +--:(gre) 2464 | | +---w key? uint32 2465 | +---w qos 2466 | | +---w name? fpcp-name-type 2467 | | +---w qos-index-type? identityref 2468 | | +---w (index-type)? 2469 | | | +--:(qci) 2470 | | | +---w uplink 2471 | | | | +---w qci? fpcp-qos-class-identifier 2472 | | | | +---w attributetype? identityref 2473 | | | | +---w bandwidth? fpcp-qos-bandwidth 2474 | | | +---w downlink 2475 | | | +---w qci? fpcp-qos-class-identifier 2476 | | | +---w attributetype? identityref 2477 | | | +---w bandwidth? fpcp-qos-bandwidth 2478 | | +---w port-in-aggregated-bandwidth* [port-id] 2479 | | +---w port-id fpcp-port-id 2480 | +---w rewriting 2481 | +---w type? identityref 2482 +---x port_delete 2483 | +---w input 2484 | +---w deleting-port* 2485 | +---w port-id? fpcp-port-id 2486 | +---w carrier-id fpcp-carrier-id 2487 | +---w network-id? fpcp-network-id 2488 +---x port_property_add 2489 | +---w input 2490 | +---w adding-property* 2491 | +---w port-id? fpcp-port-id 2492 | +---w carrier-id fpcp-carrier-id 2493 | +---w network-id? fpcp-network-id 2494 | +---w property* [property-id] 2495 | +---w property-id fpcp-property-id 2496 | +---w attached-dpns* [name] 2497 | | +---w name fpcp-name-type 2498 | +---w endpoints 2499 | | +---w tunnel-type? identityref 2500 | | +---w remote-address? inet:ip-address 2501 | | +---w local-address? inet:ip-address 2502 | | +---w (tunnel)? 2503 | | +--:(gtp-u) 2504 | | | +---w remote-teid? uint32 2505 | | | +---w local-teid? uint32 2506 | | +--:(gre) 2507 | | +---w key? uint32 2508 | +---w qos 2509 | | +---w name? fpcp-name-type 2510 | | +---w qos-index-type? identityref 2511 | | +---w (index-type)? 2512 | | | +--:(qci) 2513 | | | +---w uplink 2514 | | | | +---w qci? fpcp-qos-class-identifier 2515 | | | | +---w attributetype? identityref 2516 | | | | +---w bandwidth? fpcp-qos-bandwidth 2517 | | | +---w downlink 2518 | | | +---w qci? fpcp-qos-class-identifier 2519 | | | +---w attributetype? identityref 2520 | | | +---w bandwidth? fpcp-qos-bandwidth 2521 | | +---w port-in-aggregated-bandwidth* [port-id] 2522 | | +---w port-id fpcp-port-id 2523 | +---w rewriting 2524 | +---w type? identityref 2525 +---x port_property_modify 2526 | +---w input 2527 | +---w modifying-property* 2528 | +---w port-id? fpcp-port-id 2529 | +---w carrier-id fpcp-carrier-id 2530 | +---w network-id? fpcp-network-id 2531 | +---w property* [property-id] 2532 | +---w property-id fpcp-property-id 2533 | +---w attached-dpns* [name] 2534 | | +---w name fpcp-name-type 2535 | +---w endpoints 2536 | | +---w tunnel-type? identityref 2537 | | +---w remote-address? inet:ip-address 2538 | | +---w local-address? inet:ip-address 2539 | | +---w (tunnel)? 2540 | | +--:(gtp-u) 2541 | | | +---w remote-teid? uint32 2542 | | | +---w local-teid? uint32 2543 | | +--:(gre) 2544 | | +---w key? uint32 2545 | +---w qos 2546 | | +---w name? fpcp-name-type 2547 | | +---w qos-index-type? identityref 2548 | | +---w (index-type)? 2549 | | | +--:(qci) 2550 | | | +---w uplink 2551 | | | | +---w qci? fpcp-qos-class-identifier 2552 | | | | +---w attributetype? identityref 2553 | | | | +---w bandwidth? fpcp-qos-bandwidth 2554 | | | +---w downlink 2555 | | | +---w qci? fpcp-qos-class-identifier 2556 | | | +---w attributetype? identityref 2557 | | | +---w bandwidth? fpcp-qos-bandwidth 2558 | | +---w port-in-aggregated-bandwidth* [port-id] 2559 | | +---w port-id fpcp-port-id 2560 | +---w rewriting 2561 | +---w type? identityref 2562 +---x port_property_delete 2563 | +---w input 2564 | +---w deleting-property* 2565 | +---w port-id? fpcp-port-id 2566 | +---w carrier-id fpcp-carrier-id 2567 | +---w network-id? fpcp-network-id 2568 | +---w property-id fpcp-property-id 2569 +---x rule_add 2570 | +---w input 2571 | +---w adding-rule* 2572 | +---w port-id? fpcp-port-id 2573 | +---w carrier-id fpcp-carrier-id 2574 | +---w network-id? fpcp-network-id 2575 | +---w forwarding-rule* 2576 | +---w rule-id? fpcp-rule-id 2577 | +---w name? fpcp-name-type 2578 | +---w traffic-discriptor-type? identityref 2579 | +---w (descriptor-type)? 2580 | +--:(fpcp-traffic-descriptor) 2581 | +---w destination-ip? inet:ip-prefix 2582 | +---w source-ip? inet:ip-prefix 2583 +---x rule_modify 2584 | +---w input 2585 | +---w modifying-rule* 2586 | +---w port-id? fpcp-port-id 2587 | +---w carrier-id fpcp-carrier-id 2588 | +---w network-id? fpcp-network-id 2589 | +---w forwarding-rule* 2590 | +---w rule-id? fpcp-rule-id 2591 | +---w name? fpcp-name-type 2592 | +---w traffic-discriptor-type? identityref 2593 | +---w (descriptor-type)? 2594 | +--:(fpcp-traffic-descriptor) 2595 | +---w destination-ip? inet:ip-prefix 2596 | +---w source-ip? inet:ip-prefix 2597 +---x rule_delete 2598 | +---w input 2599 | +---w deleting-rule* 2600 | +---w port-id? fpcp-port-id 2601 | +---w carrier-id fpcp-carrier-id 2602 | +---w network-id? fpcp-network-id 2603 | +---w target-rule* 2604 | +---w target-rule-id fpcp-rule-id 2605 +---x event_register 2606 +---x probe 2607 notifications: 2608 +---n notify 2610 Figure 20: FPC base tree 2612 A.2. FPC PMIP 2614 A.2.1. FPC PMIP YANG Model 2616 module ietf-dmm-fpcp-pmip { 2617 namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp-pmip"; 2618 prefix fpcp-pmip; 2620 import ietf-inet-types { prefix inet; } 2621 import ietf-dmm-fpcp-base { prefix fpcp-base; } 2622 import ietf-pmip-qos { prefix qos-pmip; } 2623 import ietf-traffic-selectors { prefix traffic-selectors; } 2625 organization "IETF DMM Working Group"; 2626 contact "Satoru Matsushima "; 2628 description 2629 "This module contains YANG definition for 2630 Forwarding Policy Configuration Protocol.(FPCP)"; 2632 revision 2016-01-19 { 2633 description "Changes based on -01 version of FPCP draft."; 2634 reference "draft-ietf-dmm-fpc-cpdp-01"; 2635 } 2637 identity fpcp-qos-index-pmip { 2638 base "fpcp-base:fpcp-qos-index-type"; 2639 } 2641 identity traffic-selector-mip6 { 2642 base "fpcp-base:traffic-descriptor-type"; 2643 } 2645 grouping qosattribute-pmip { 2647 leaf dscp { 2648 type inet:dscp; 2649 } 2651 choice attribute { 2652 case per-mn-agg-max-dl { 2653 when "../attributetype = 'Per-MN-Agg-Max-DL-Bit-Rate-type'"; 2654 leaf per-mn-agg-max-dl { 2655 type qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value; 2656 } 2657 } 2658 case per-mn-agg-max-ul { 2659 when "../attributetype = 'Per-MN-Agg-Max-UL-Bit-Rate-type'"; 2660 leaf per-mn-agg-max-ul { 2661 type qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value; 2662 } 2663 } 2664 case per-session-agg-max { 2665 when "../attributetype = 'Per-Session-Agg-Max-DL-Bit-Rate-type' | 2666 ../attributetype = 'Per-Session-Agg-Max-UL-Bit-Rate-type'"; 2667 uses qos-pmip:Per-Session-Agg-Max-Bit-Rate-Value; 2668 } 2669 case agg-max-dl { 2670 when "../attributetype = 'Aggregate-Max-DL-Bit-Rate-type'"; 2671 leaf agg-max-dl { 2672 type qos-pmip:Aggregate-Max-DL-Bit-Rate-Value; 2674 } 2675 } 2676 case agg-max-ul { 2677 when "../attributetype = 'Aggregate-Max-UL-Bit-Rate-type'"; 2678 leaf agg-max-ul { 2679 type qos-pmip:Aggregate-Max-UL-Bit-Rate-Value; 2680 } 2681 } 2682 case gbr-dl { 2683 when "../attributetype = 'Guaranteed-DL-Bit-Rate-type'"; 2684 leaf gbr-dl { 2685 type qos-pmip:Guaranteed-DL-Bit-Rate-Value; 2686 } 2687 } 2688 case gbr-ul { 2689 when "../attributetype = 'Guaranteed-UL-Bit-Rate-type'"; 2690 leaf gbr-ul { 2691 type qos-pmip:Guaranteed-UL-Bit-Rate-Value; 2692 } 2693 } 2694 } 2695 } 2697 // Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/qosprofile. 2698 augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type" { 2699 case pmip { 2700 when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'"; 2701 uses qosattribute-pmip; 2702 } 2703 } 2705 // Configuration choice augmentation in the fpcp-base under the fpcp-carriers/carrier/traffic-descriptor. 2706 augment "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type" { 2707 case traffic-selector-mip6 { 2708 when "/fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2709 uses traffic-selectors:traffic-selector; 2710 } 2711 } 2713 // Operational choice augmentation in the fpcp-base under the port-entries/port-entry/property. 2714 augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2715 case pmip { 2716 when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:qos-index-type = 'fpcp-qos-index-pmip'"; 2717 uses qosattribute-pmip; 2718 } 2719 } 2721 // Operational choice augmentation in the fpcp-base under the port-entries/port-entry/forwarding-rule. 2722 augment "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2723 case traffic-selector-mip6 { 2724 when "/fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2725 uses traffic-selectors:traffic-selector; 2726 } 2727 } 2729 // RPC choice augmentation in the fpcp-base under "port_add" rpc. 2730 augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2731 case pmip { 2732 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'"; 2733 uses qosattribute-pmip; 2734 } 2735 } 2737 augment "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2738 case traffic-selector-mip6 { 2739 when "/fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2740 uses traffic-selectors:traffic-selector; 2741 } 2742 } 2744 // RPC choice augmentation in the fpcp-base under "port_property_add" rpc. 2745 augment "/fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2746 case pmip { 2747 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'"; 2748 uses qosattribute-pmip; 2749 } 2750 } 2752 // RPC choice augmentation in the fpcp-base under "port_property_modify" rpc. 2753 augment "/fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type" { 2754 case pmip { 2755 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'"; 2756 uses qosattribute-pmip; 2757 } 2758 } 2760 // RPC choice augmentation in the fpcp-base under "rule_add" rpc. 2761 augment "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2762 case traffic-selector-mip6 { 2763 when "/fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2764 uses traffic-selectors:traffic-selector; 2765 } 2766 } 2768 // RPC choice augmentation in the fpcp-base under "rule_modify" rpc. 2769 augment "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type" { 2770 case traffic-selector-mip6 { 2771 when "/fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:traffic-descriptor-type = 'traffic-selector-mip6'"; 2772 uses traffic-selectors:traffic-selector; 2773 } 2774 } 2776 } 2778 Figure 21: caption1 2780 A.2.2. FPC PMIP tree 2782 module: ietf-dmm-fpcp-pmip 2783 augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:qos-profile/fpcp-base:index-type: 2784 +--:(pmip) 2785 +--rw dscp? inet:dscp 2786 +--rw (attribute)? 2787 +--:(per-mn-agg-max-dl) 2788 | +--rw per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2789 +--:(per-mn-agg-max-ul) 2790 | +--rw per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2791 +--:(per-session-agg-max) 2792 | +--rw max-dl uint32 2793 | +--rw service-flag boolean 2794 | +--rw exclude-flag boolean 2795 +--:(agg-max-dl) 2796 | +--rw agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2797 +--:(agg-max-ul) 2798 | +--rw agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2799 +--:(gbr-dl) 2800 | +--rw gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2801 +--:(gbr-ul) 2802 +--rw gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2803 augment /fpcp-base:fpcp-carriers/fpcp-base:carrier/fpcp-base:traffic-descriptor/fpcp-base:descriptor-type: 2804 +--:(traffic-selector-mip6) 2805 +--rw ts-format? identityref 2806 +--rw start-ipsec-spi? ipsec-spi 2807 +--rw end-ipsec-spi? ipsec-spi 2808 +--rw start-source-port? inet:port-number 2809 +--rw end-source-port? inet:port-number 2810 +--rw start-destination-port? inet:port-number 2811 +--rw end-destination-port? inet:port-number 2812 +--rw start-source-address-v4? inet:ipv4-address 2813 +--rw end-source-address-v4? inet:ipv4-address 2814 +--rw start-destination-address-v4? inet:ipv4-address 2815 +--rw end-destination-address-v4? inet:ipv4-address 2816 +--rw start-ds? inet:dscp 2817 +--rw end-ds? inet:dscp 2818 +--rw start-protocol? uint8 2819 +--rw end-protocol? uint8 2820 +--rw start-source-address-v6? inet:ipv6-address 2821 +--rw end-source-address-v6? inet:ipv6-address 2822 +--rw start-destination-address-v6? inet:ipv6-address 2823 +--rw end-destination-address-v6? inet:ipv6-address 2824 +--rw start-flow-label? inet:ipv6-flow-label 2825 +--rw end-flow-label? inet:ipv6-flow-label 2826 +--rw start-traffic-class? inet:dscp 2827 +--rw end-traffic-class? inet:dscp 2828 +--rw start-next-header? uint8 2829 +--rw end-next-header? uint8 2830 augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2831 +--:(pmip) 2832 +--ro dscp? inet:dscp 2833 +--ro (attribute)? 2834 +--:(per-mn-agg-max-dl) 2835 | +--ro per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2836 +--:(per-mn-agg-max-ul) 2837 | +--ro per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2838 +--:(per-session-agg-max) 2839 | +--ro max-dl uint32 2840 | +--ro service-flag boolean 2841 | +--ro exclude-flag boolean 2842 +--:(agg-max-dl) 2843 | +--ro agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2844 +--:(agg-max-ul) 2845 | +--ro agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2846 +--:(gbr-dl) 2847 | +--ro gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2848 +--:(gbr-ul) 2849 +--ro gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2850 augment /fpcp-base:port-entries/fpcp-base:port-entry/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2851 +--:(traffic-selector-mip6) 2852 +--ro ts-format? identityref 2853 +--ro start-ipsec-spi? ipsec-spi 2854 +--ro end-ipsec-spi? ipsec-spi 2855 +--ro start-source-port? inet:port-number 2856 +--ro end-source-port? inet:port-number 2857 +--ro start-destination-port? inet:port-number 2858 +--ro end-destination-port? inet:port-number 2859 +--ro start-source-address-v4? inet:ipv4-address 2860 +--ro end-source-address-v4? inet:ipv4-address 2861 +--ro start-destination-address-v4? inet:ipv4-address 2862 +--ro end-destination-address-v4? inet:ipv4-address 2863 +--ro start-ds? inet:dscp 2864 +--ro end-ds? inet:dscp 2865 +--ro start-protocol? uint8 2866 +--ro end-protocol? uint8 2867 +--ro start-source-address-v6? inet:ipv6-address 2868 +--ro end-source-address-v6? inet:ipv6-address 2869 +--ro start-destination-address-v6? inet:ipv6-address 2870 +--ro end-destination-address-v6? inet:ipv6-address 2871 +--ro start-flow-label? inet:ipv6-flow-label 2872 +--ro end-flow-label? inet:ipv6-flow-label 2873 +--ro start-traffic-class? inet:dscp 2874 +--ro end-traffic-class? inet:dscp 2875 +--ro start-next-header? uint8 2876 +--ro end-next-header? uint8 2877 augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2878 +--:(pmip) 2879 +---- dscp? inet:dscp 2880 +---- (attribute)? 2881 +--:(per-mn-agg-max-dl) 2882 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2883 +--:(per-mn-agg-max-ul) 2884 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2885 +--:(per-session-agg-max) 2886 | +---- max-dl uint32 2887 | +---- service-flag boolean 2888 | +---- exclude-flag boolean 2889 +--:(agg-max-dl) 2890 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2891 +--:(agg-max-ul) 2892 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2893 +--:(gbr-dl) 2894 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2895 +--:(gbr-ul) 2896 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2897 augment /fpcp-base:port_add/fpcp-base:input/fpcp-base:adding-port/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2898 +--:(traffic-selector-mip6) 2899 +---- ts-format? identityref 2900 +---- start-ipsec-spi? ipsec-spi 2901 +---- end-ipsec-spi? ipsec-spi 2902 +---- start-source-port? inet:port-number 2903 +---- end-source-port? inet:port-number 2904 +---- start-destination-port? inet:port-number 2905 +---- end-destination-port? inet:port-number 2906 +---- start-source-address-v4? inet:ipv4-address 2907 +---- end-source-address-v4? inet:ipv4-address 2908 +---- start-destination-address-v4? inet:ipv4-address 2909 +---- end-destination-address-v4? inet:ipv4-address 2910 +---- start-ds? inet:dscp 2911 +---- end-ds? inet:dscp 2912 +---- start-protocol? uint8 2913 +---- end-protocol? uint8 2914 +---- start-source-address-v6? inet:ipv6-address 2915 +---- end-source-address-v6? inet:ipv6-address 2916 +---- start-destination-address-v6? inet:ipv6-address 2917 +---- end-destination-address-v6? inet:ipv6-address 2918 +---- start-flow-label? inet:ipv6-flow-label 2919 +---- end-flow-label? inet:ipv6-flow-label 2920 +---- start-traffic-class? inet:dscp 2921 +---- end-traffic-class? inet:dscp 2922 +---- start-next-header? uint8 2923 +---- end-next-header? uint8 2924 augment /fpcp-base:port_property_add/fpcp-base:input/fpcp-base:adding-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2925 +--:(pmip) 2926 +---- dscp? inet:dscp 2927 +---- (attribute)? 2928 +--:(per-mn-agg-max-dl) 2929 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2930 +--:(per-mn-agg-max-ul) 2931 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2932 +--:(per-session-agg-max) 2933 | +---- max-dl uint32 2934 | +---- service-flag boolean 2935 | +---- exclude-flag boolean 2936 +--:(agg-max-dl) 2937 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2938 +--:(agg-max-ul) 2939 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2940 +--:(gbr-dl) 2941 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2942 +--:(gbr-ul) 2943 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2944 augment /fpcp-base:port_property_modify/fpcp-base:input/fpcp-base:modifying-property/fpcp-base:property/fpcp-base:qos/fpcp-base:index-type: 2945 +--:(pmip) 2946 +---- dscp? inet:dscp 2947 +---- (attribute)? 2948 +--:(per-mn-agg-max-dl) 2949 | +---- per-mn-agg-max-dl? qos-pmip:Per-MN-Agg-Max-DL-Bit-Rate-Value 2950 +--:(per-mn-agg-max-ul) 2951 | +---- per-mn-agg-max-ul? qos-pmip:Per-MN-Agg-Max-UL-Bit-Rate-Value 2952 +--:(per-session-agg-max) 2953 | +---- max-dl uint32 2954 | +---- service-flag boolean 2955 | +---- exclude-flag boolean 2956 +--:(agg-max-dl) 2957 | +---- agg-max-dl? qos-pmip:Aggregate-Max-DL-Bit-Rate-Value 2958 +--:(agg-max-ul) 2959 | +---- agg-max-ul? qos-pmip:Aggregate-Max-UL-Bit-Rate-Value 2960 +--:(gbr-dl) 2961 | +---- gbr-dl? qos-pmip:Guaranteed-DL-Bit-Rate-Value 2962 +--:(gbr-ul) 2963 +---- gbr-ul? qos-pmip:Guaranteed-UL-Bit-Rate-Value 2964 augment /fpcp-base:rule_add/fpcp-base:input/fpcp-base:adding-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2965 +--:(traffic-selector-mip6) 2966 +---- ts-format? identityref 2967 +---- start-ipsec-spi? ipsec-spi 2968 +---- end-ipsec-spi? ipsec-spi 2969 +---- start-source-port? inet:port-number 2970 +---- end-source-port? inet:port-number 2971 +---- start-destination-port? inet:port-number 2972 +---- end-destination-port? inet:port-number 2973 +---- start-source-address-v4? inet:ipv4-address 2974 +---- end-source-address-v4? inet:ipv4-address 2975 +---- start-destination-address-v4? inet:ipv4-address 2976 +---- end-destination-address-v4? inet:ipv4-address 2977 +---- start-ds? inet:dscp 2978 +---- end-ds? inet:dscp 2979 +---- start-protocol? uint8 2980 +---- end-protocol? uint8 2981 +---- start-source-address-v6? inet:ipv6-address 2982 +---- end-source-address-v6? inet:ipv6-address 2983 +---- start-destination-address-v6? inet:ipv6-address 2984 +---- end-destination-address-v6? inet:ipv6-address 2985 +---- start-flow-label? inet:ipv6-flow-label 2986 +---- end-flow-label? inet:ipv6-flow-label 2987 +---- start-traffic-class? inet:dscp 2988 +---- end-traffic-class? inet:dscp 2989 +---- start-next-header? uint8 2990 +---- end-next-header? uint8 2991 augment /fpcp-base:rule_modify/fpcp-base:input/fpcp-base:modifying-rule/fpcp-base:forwarding-rule/fpcp-base:descriptor-type: 2992 +--:(traffic-selector-mip6) 2993 +---- ts-format? identityref 2994 +---- start-ipsec-spi? ipsec-spi 2995 +---- end-ipsec-spi? ipsec-spi 2996 +---- start-source-port? inet:port-number 2997 +---- end-source-port? inet:port-number 2998 +---- start-destination-port? inet:port-number 2999 +---- end-destination-port? inet:port-number 3000 +---- start-source-address-v4? inet:ipv4-address 3001 +---- end-source-address-v4? inet:ipv4-address 3002 +---- start-destination-address-v4? inet:ipv4-address 3003 +---- end-destination-address-v4? inet:ipv4-address 3004 +---- start-ds? inet:dscp 3005 +---- end-ds? inet:dscp 3006 +---- start-protocol? uint8 3007 +---- end-protocol? uint8 3008 +---- start-source-address-v6? inet:ipv6-address 3009 +---- end-source-address-v6? inet:ipv6-address 3010 +---- start-destination-address-v6? inet:ipv6-address 3011 +---- end-destination-address-v6? inet:ipv6-address 3012 +---- start-flow-label? inet:ipv6-flow-label 3013 +---- end-flow-label? inet:ipv6-flow-label 3014 +---- start-traffic-class? inet:dscp 3015 +---- end-traffic-class? inet:dscp 3016 +---- start-next-header? uint8 3017 +---- end-next-header? uint8 3019 Figure 22: FPC PMIP tree 3021 Authors' Addresses 3023 Marco Liebsch 3024 NEC Laboratories Europe 3025 NEC Europe Ltd. 3026 Kurfuersten-Anlage 36 3027 D-69115 Heidelberg 3028 Germany 3030 Phone: +49 6221 4342146 3031 Email: liebsch@neclab.eu 3033 Satoru Matsushima 3034 SoftBank 3035 1-9-1,Higashi-Shimbashi,Minato-Ku 3036 Tokyo 105-7322 3037 Japan 3039 Email: satoru.matsushima@g.softbank.co.jp 3041 Sri Gundavelli 3042 Cisco 3043 170 West Tasman Drive 3044 San Jose, CA 95134 3045 USA 3047 Email: sgundave@cisco.com 3049 Danny Moses 3051 Email: danny.moses@intel.com 3053 Lyle Bertz 3054 6220 Sprint Parkway 3055 Overland Park KS, 66251 3056 USA 3058 Email: lyleb551144@gmail.com