--- 1/draft-ietf-dmm-fpc-cpdp-00.txt 2015-07-06 14:15:38.990095906 -0700 +++ 2/draft-ietf-dmm-fpc-cpdp-01.txt 2015-07-06 14:15:39.058097604 -0700 @@ -1,23 +1,23 @@ DMM Working Group M. Liebsch Internet-Draft NEC Intended status: Standards Track S. Matsushima -Expires: November 7, 2015 Softbank Telecom +Expires: January 7, 2016 SoftBank S. Gundavelli Cisco D. Moses Intel Corporation - May 6, 2015 + July 6, 2015 Protocol for Forwarding Policy Configuration (FPC) in DMM - draft-ietf-dmm-fpc-cpdp-00.txt + draft-ietf-dmm-fpc-cpdp-01.txt Abstract The specification as per this document supports the separation of the Control-Plane for mobility- and session management from the actual Data-Plane. The protocol semantics abstract from the actual details for the configuration of Data-Plane nodes and apply between a Client function, which is used by an application of the mobility Control- Plane, and an Agent function, which is associated with the configuration of Data-Plane nodes according to the policies issued by @@ -34,21 +34,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on November 7, 2015. + This Internet-Draft will expire on January 7, 2016. Copyright Notice Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -63,31 +63,31 @@ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 3. Model for Policy-based DMM Network Control . . . . . . . . . 3 3.1. Reference Architecture for DMM Forwarding Policy Configuration . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Generalized Rules on the Client-Agent-Interface . . . . . 6 3.3. Role of the DMM FPC Client Function . . . . . . . . . . . 6 3.4. Role of the DMM FPC Agent Function . . . . . . . . . . . 7 4. Protocol Messages and Semantics . . . . . . . . . . . . . . . 7 4.1. Protocol Messages . . . . . . . . . . . . . . . . . . . . 7 - 4.2. Protocol Attributes . . . . . . . . . . . . . . . . . . . 8 - 4.3. Protocol Operation . . . . . . . . . . . . . . . . . . . 10 - 5. Conceptual Data Structures . . . . . . . . . . . . . . . . . 15 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 - 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 - 8. Work Team Participants . . . . . . . . . . . . . . . . . . . 16 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 - 9.1. Normative References . . . . . . . . . . . . . . . . . . 16 - 9.2. Informative References . . . . . . . . . . . . . . . . . 16 - Appendix A. YANG Data Model for the FPC Protocol . . . . . . . . 17 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 + 4.2. Protocol Attributes . . . . . . . . . . . . . . . . . . . 9 + 4.3. Protocol Operation . . . . . . . . . . . . . . . . . . . 13 + 5. Conceptual Data Structures . . . . . . . . . . . . . . . . . 18 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 + 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 + 8. Work Team Participants . . . . . . . . . . . . . . . . . . . 19 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 19 + 9.2. Informative References . . . . . . . . . . . . . . . . . 19 + Appendix A. YANG Data Model for the FPC Protocol . . . . . . . . 20 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 1. Introduction One objective of the Distributed Mobility Management (DMM) WG is the separation of the mobility management Control- and Data-Plane to enable flexible deployment, such as decentralized provisioning of Data-Plane nodes (DPN). Data-Plane nodes can be configured to function as anchor for a registered Mobile Node's (MN) traffic, others can be configured to function as Mobile Access Gateway (MAG) as per the Proxy Mobile IPv6 protocol [RFC5213] or a Foreign Agent @@ -228,33 +228,33 @@ | DPN Configuration API | +-------------------------+ Figure 2: Illustration of the functional reference architecture for DMM Forwarding Policy Configuration (FPC) 3.2. Generalized Rules on the Client-Agent-Interface To abstract configuration details of an IP switch or IP router on the FPC protocol interface, this specification adopts the model of - logical gates (Ports) to bind certain properties, such as a QoS - policy. Additional properties can be bound to the same logical Port, - e.g. encapsulation of packets, being directed to that logical Port, - in a GRE tunnel. The remote tunnel endpoint is configured as part of - the property bound to that logical Port. All traffic, which has a + logical Ports to bind certain properties, such as a QoS policy. + Additional properties can be bound to the same logical Port, e.g. + encapsulation of packets, being directed to that logical Port, in a + GRE tunnel. The remote tunnel endpoint is configured as part of the + property bound to that logical Port. All traffic, which has a forwarding rule in common and should be forwarded according to the properties bound to a particular Port, can be referred to that Port by configuration of a forwarding rule. Multiple IP flows or even aggregated traffic being destined to a given IP prefix can be directed to that logical Port and experiences the same treatment according to the configured properties and forwarding characteristics. Aggregated or per-Host/per-Flow traffic can be - identified by a longest prefix match or a Traffic Selector + identified by a longest prefix match or a Traffic Selector [RFC6088] respectively. Figure 3 illustrates the generic policy configuration model as used between an FPC Client function and an FPC Agent function. +-------------------+ | Bind 1..M | | | | traffic templates | | | | | to each logical | | | | | port | @@ -314,20 +314,30 @@ encapsulation, NA(P)T, traffic prioritization and scheduling) on the identified DPN according to the DPN's technology o Monitor scheduled events (e.g. failure or missing rule) and issue an associated message to the FPC Client Function (NOTIFICATION, QUERY) 4. Protocol Messages and Semantics 4.1. Protocol Messages + + The following table lists all specified protocol messages to create + and delete logical Ports, to add properties and to add forwarding + rules in terms of binding traffic descriptors to a logical Port. + Furthermore, messages are specified to schedule tasks, such as + monitoring, at an Agent and to probe the status of the scheduled task + from a Client. Additional messages are specified to enable the Data- + Plane to notify or query the Control-Plane through the Agent and + Client functions. + +---------------------------------------------------------------------+ | Message | Description | +=====================================================================+ | Messages issued by the FPC Client | +---------------------------------------------------------------------+ | PRT_ADD | Add a logical port | +---------------------------------------------------------------------+ | PRT_DEL | Delete an existing logical port | +---------------------------------------------------------------------+ | PROP_ADD | Add a property to a logical port | @@ -337,22 +347,23 @@ | PROP_DEL | Remove and delete a property from a logical port | +---------------------------------------------------------------------+ | RULE_ADD | Add forwarding rule by binding traffic descriptor | | | to a logical port | +---------------------------------------------------------------------+ | RULE_MOD | Modify existing forwarding rule by changing the | | | traffic descriptor bound to a logical port | +---------------------------------------------------------------------+ | RULE_DEL | Delete a forwarding rule | +---------------------------------------------------------------------+ - | EVENT_REG | Register an event at an Agent, which is to be | - | | monitored by the Agent and to be reported | + | EVENT_REG | Register an event and descriptions at an Agent | + | | about what is to be monitored by the Agent and | + | | what is to be reported in case the event occurs | +---------------------------------------------------------------------+ | PROBE | Probe the status of a registered event | +---------------------------------------------------------------------+ | Messages issued by the FPC Agent | +---------------------------------------------------------------------+ | | Notify the Client about the status of a | | NOTIFY | monitored attribute at any event kind | | | (periodic / event trigger / probed) | +---------------------------------------------------------------------+ | QUERY | Query the Client about missing rules/states | @@ -370,118 +381,168 @@ refer to a logical port as forwarding information. This document specifies attributes from the following categories: o Identifier attributes o Properties o Property-specific attributes - o Traffic descriptors + o Rules and Traffic descriptors Note on the list of attributes: The list of attributes is not yet complete. - Note on Format Clarification: Meant to provide a first idea on the - format and number space and indicates length (bit) and semantics of - key information fields. + Note on Format Clarification: Meant to provide an idea on the content + of attributes. Semantics of key information fields or sub-option and + the value's length (bit) are indicated. The possibility of a field/ + option to appear multiple times in a message or within an attribute, + e.g. as sub-option, is referred to by '*'. +---------------------------------------------------------------------+ | Attribute | Format Clarification | Description | +=====================================================================+ | Identifiers | +---------------------------------------------------------------------+ - | PRT_ID | [16,PTR_ID] | Identifies a logical Port | + | PRT_ID | [32,PRT_ID] | Identifies a logical Port | +---------------------------------------------------------------------+ - | PRT_PROP_ID | [16,PRT_ID] | Identifies a logical Port | + | PRT_PROP_ID | [32,PRT_ID] | Identifies a logical Port | | | [8,PROP_ID] | and one of its properties | +---------------------------------------------------------------------+ - | CLI_ID | [8, Carrier ID] | Identifies an | - | | [8, Network ID] | FPC Client function | - | | [16, Client ID] | | + | PRT_RULE_ID | [32,PRT_ID] | Identifies a logical Port | + | | [8,RULE_ID] | and a rule that refers to | + | | | the Port | + +----------------+----------------------+-----------------------------+ + | CLI_ID | [16, Carrier ID] | Identifies an | + | | [16, Network ID] | FPC Client function | + | | [32, Client ID] | | +---------------------------------------------------------------------+ - | AGT_ID | [8, Carrier ID] | Identifies an | - | | [8, Network ID] | FPC Agent function | - | | [16, Agent ID] | | + | AGT_ID | [16, Carrier ID] | Identifies an | + | | [16, Network ID] | FPC Agent function | + | | [32, Agent ID] | | +---------------------------------------------------------------------+ - | DPN_ID | [8, Carrier ID] | Identifies a Data Plane | - | | [8, Network ID] | Node (DPN) | - | | [16, DPN ID] | | + | DPN_ID | [16, Carrier ID] | Identifies a Data Plane | + | | [16, Network ID] | Node (DPN) | + | | [32, DPN ID] | | +---------------------------------------------------------------------+ - | EVENT_ID | [16, Event ID] |Identifies a registered event| + | EVENT_ID | [32, Event ID] |Identifies a registered event| +---------------------------------------------------------------------+ Figure 5: Protocol Attributes: Identifiers - +---------------------------------------------------------------------+ ++----------------------------------------------------------------------+ | Attribute | Format Clarification | Description | - +=====================================================================+ ++======================================================================+ | Properties | - +---------------------------------------------------------------------+ ++----------------------------------------------------------------------+ | PROP_TUN | [type][src][dst] | Property Encapsulation, | - | | | indicates type GRE, IP, GTP | - +---------------------------------------------------------------------+ - | PROP_REWR | TBD | Property NAT | - +---------------------------------------------------------------------+ - | PROP_QOS | TBD | Property QoS | - +---------------------------------------------------------------------+ - | PROP_GW | [ip address next hop]| Property Next Hop | - +---------------------------------------------------------------------+ +| | | indicates type GRE, IP, | +| | | GTP | ++----------------------------------------------------------------------+ +| PROP_REWR | [in_src_ip][out_src_ip] | Property NAT defines | +| | [in_dst_ip][out_dst_ip] | IP address and port | +| | [in_src_port][out_src_port]| re-write rules | +| | [in_dst_port][out_dst_port]| | ++----------------------------------------------------------------------+ +| PROP_QOS | [QoS index type][index] | Property QoS refers to | +| | [DSCP] | single index and DS Code| +| | | Point to write | ++----------------------------------------------------------------------+ +| PROP_GW | [ip address next hop] | IP address of the Next | +| | | Hop to which IP packets | +| | | should be forwarded | ++----------------------------------------------------------------------+ Figure 6: Protocol Attributes: Properties +---------------------------------------------------------------------+ | Attribute | Format Clarification | Description | +=====================================================================+ | Property-specific | +---------------------------------------------------------------------+ | IPIP_CONF | | IP-encapsulation | | | | configuration attribute | +---------------------------------------------------------------------+ | GRE_CONF | [prototype][seq-#] | GRE_encapsulation | - | | [key].. | configuration attribute | + | | [key] | configuration attribute | +---------------------------------------------------------------------+ | GTP_CONF | [TEID_local] | GTP-U encapsulation | | | [TEID_remote] | configuration attribute | - | | [seq-#].. | | + | | [seq-#] | | +---------------------------------------------------------------------+ + | QOS_GBR | [GBR] *[PRT_ID] | Guaranteed Bit Rate and | + | | | single or multiple PRT_IDs | + | | | to which the GBR applies | + | | | when being aggregated | + +----------------+----------------------+-----------------------------+ + | QOS_MBR | [MBR] *[PRT_ID] | Maximum Bit Rate and single | + | | | or multiple PRT_IDs to which| + | | | the MBR applies when being | + | | | aggregated | + +----------------+----------------------+-----------------------------+ Figure 7: Protocol Attributes: Property-specific + +---------------------------------------------------------------------+ + | Attribute | Format Clarification | Description | + +=====================================================================+ + | Rules | + +---------------------------------------------------------------------+ + | RULE_DST_IP | [IP address] | Aggregated or per-host dst | + | | [Prefix Len] | IP address/prefix rule | + +---------------------------------------------------------------------+ + | RULE_SRC_IP | [IP address] | Aggregated or per-host src | + | | [Prefix Len] | IP address/prefix rule | + +---------------------------------------------------------------------+ + | RULE_TS | [Traffic Selector] | Traffic Selector based rule,| + | | | Format as per RFC6088 | + +----------------+----------------------+-----------------------------+ + + Figure 8: Protocol Attributes: Rules + 4.3. Protocol Operation The following list comprises a more detailed description of each message's semantic. o PRT_ADD - Issued by a Client to add a new logical port at an Agent, to which traffic can be directed. An Agent receiving the PRT_ADD message should identify the new logical port according to - the included port identifier (PRT_ID). In case the DPN holds - already a registration for a logical port with the same - identifier, the Agent should throw an error message to the Client. - Otherwise the Agent should add a new logical port into its - conceptual data structures using the port identifier as key. + the included port identifier (PRT_ID). The Agent should add a new + logical port into its conceptual data structures using the port + identifier as key. Optionally, the PRT_ADD message can include + property descriptions as well as rules descriptions, which are + bound and refer to the new logical port. This enables a Client to + issue a new configuration in a single transaction with an Agent. o PRT_DEL - Used by a Client to delete an existing logical port. An Agent receiving such message should delete all properties associated with the identified port. o PROP_ADD - Used by the Client to add a new property to an existing logical port. The property is unambiguously identified through a property identifier (PRT_PROP_ID). All traffic, which is directed to this logical port, experiences the existing and newly added - property. + property. Optionally, the PROP_ADD message can include rules + descriptions, which refer to the port to which the properties are + bound. This enables a Client to add new rules to the existing + port to which the new properties have been bound in a single + transaction. o PROP_MOD - Used by a Client to modify an existing property. For example, a tunnel property can be changed to direct traffic to a - different tunnel endpoint in case of an MN's handover + different tunnel endpoint in case of an MN's handover. + Optionally, the PROP_MOD message can include rules descriptions, + which refer to the port whose properties are modified. This + enables a Client to add new rules to the existing port whose + properties have been modifier in a single transaction. o PROP_DEL - Used by a Client to delete one or multiple properties, each being identified by a property identifier. o RULE_ADD - Used by a Client to add a forwarding rule and direct traffic towards a logical port. The rule add command must unambiguously identify aggregated traffic (longest prefix), per host IP traffic or per-flow traffic in the RULE_ADD command and bind the identified traffic to a logical port. An Agent receiving a RULE_ADD command must add the rule to its local conceptual data @@ -524,21 +585,57 @@ identifier. An Agent receiving a PROBE message should send the requested information for each event in a single or multiple NOTIFY messages. o NOTIFY - Used by an Agent to report the status of an event to a Client. o QUERY - Used by an Agent to request an update of logical port properties via a Client. - Figure 8 illustrates an exemplary session life-cycle based on Proxy + The following list provides some information on the use and semantics + of attributes: + + o PROP_TUN - Defines the properties for encapsulation into different + tunnel headers. The property includes IP address information of + tunnel endpoints as well as a type identifier to select the + encapsulation type. Further attributes may be included to provide + information which is relevant for the configuration and + initialization of the tunnel. + + o PROP_REWR - Defines the properties for IP address and port re- + write. + + o PROP_QOS - Defines the QoS properties in terms of a known index + type, e.g. LTE's Quality Class Index (QCI), and its value (QCI + 1..9), as well as a Differentiated Services Code Point (DSCP) to + classify and mark packets. Additional attributes may follow, e.g. + as sub-options, to define Guaranteed Bit Rate (GBR) and Maximum + Bit Rate (MBR) bounds. GBR and MBR attributes can apply to a + single port or multiple ports. The latter is required to + configure aggregate bounds, such as Aggregate Maximum Bit Rate + (AMBR), taking traffic, which is forwarded through different ports + (hence experiencing different treatment), into account. In such + case the GBR/MBR attributes append multiple PRT_ID attributes to + identify the ports which are to be monitored to determine the + aggregated view of the bit rate. The scope of attributes for QoS + is aligned to [RFC7222]. The Allocation and Retention Priority + (ARP) as per [RFC7222] is not present in the list of QoS-specific + attributes, since ARP is treated and kept in the Control-Plane for + granting requests for new resources and QoS, as well as for + preempting other QoS configuration, if needed. + + o PROP_GW - Defines a Next Hop IP address, to which packets are + forwarded. Using this attribute, the Control-Plane can configure + a host-route in the Data-Plane to deviate from default routes. + + Figure 9 illustrates an exemplary session life-cycle based on Proxy Mobile IPv6 registration via MAG Control-Plane function 1 (MAG-C1) and handover to MAG Control-Plane function 2 (MAG-C2). Edge DPN1 represents the Proxy CoA after attachment, whereas Edge DPN2 serves as Proxy CoA after handover. +-------Router--------+ +-----------+ |+-------+ +---------+| +------+ +------+ +-----+ FPC | | FPC | | Anchor | |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | +------+ +------+ +-----+-------+ +-------+ +---------+ @@ -566,21 +663,21 @@ | |<--PBA------| [PROP_ID,PROP_TUN] |-tun1 mod->| | | | | | | | +----+ | | | | | |Edge| | | | | | |DPN2| | | | | | +----+ | | | | | | | | | | | |-============================================-| | | | | | - Figure 8: Exemplary Message Sequence (focus on FPC reference point) + Figure 9: Exemplary Message Sequence (focus on FPC reference point) After reception of the Proxy Binding Update (PBU) at the LMA Control- Plane function (LMA_C), the LMA-C selects a suitable DPN, which serves as Data-Plane anchor to the MN's traffic. The LMA-C adds a new logical port to the DPN to treat the MN's traffic (1) and includes a Port Identifier (PRT_ID) to the PRT_ADD command. The LMA-C identifies the selected Anchor DPN by including the associated DPN identifier. Subsequently, the LMA-C adds properties to the new logical port. One @@ -601,21 +698,21 @@ target MAG-C2. The PBU refers to a new Data-Plane node (Edge DPN2) to represent the new tunnel endpoint. The LMA-C sends a PROP_MOD message (5) to the Agent to modify the existing tunnel property of the existing logical port and to update the tunnel endpoint from Edge DPN1 to Edge DPN2. At reception of the PROP_MOD message, the Agent applies local configuration commands to modify the tunnel. To reduce the number of protocol handshakes between the LMA-C and the DPN, the LMA-C can append property (PROP_TUN, PROP_QOS) and rules (prefix info HNP) attributes to the PRT_ADD message, as illustrated - in Figure 9 + in Figure 10 +-----------+ +-------+ +---------+ +------+ +------+ +-----+ FPC | | FPC | | Anchor | |MAG-C1| |MAG-C2| |LMA-C| Client| | Agent | | DPN | +------+ +------+ +-----+-------+ +-------+ +---------+ [MN attach] | | | | |-------------PBU----->| | | | | |----(1)-PRT_ADD----------->| | | | | [PRT_ID,PROP_ID,PROP_TUN, |--tun1 up->| |<------------PBA------| PROP_ID,PROP_QOS, |--tc qos-->| | | | HNP] |-route add>| @@ -623,21 +720,21 @@ | [DPN1| | | | | | | | | | | [MN handover] | | | | |---PBU ---->| | | | | |---------PROP_MOD--------->| | | |<--PBA------| [PROP_ID,PROP_TUN] |-tun1 mod->| | | | | | | | [Edge]-===========================================-| | | [DPN2] | | | - Figure 9: Example: Sequence for Message Aggregation (focus on FPC + Figure 10: Example: Sequence for Message Aggregation (focus on FPC reference point) 5. Conceptual Data Structures An FPC Client must keep record about the logical ports, each port's properties as well as configured rules as per the Mobility Control- Plane function's request. Such information must be maintained for each Agent, with which the Client communicates. In case the Mobility Control-Plane function identifies a particular DPN at which the policies should be enforced, the Client must associate the DPN @@ -677,67 +774,89 @@ Seite, Alper Yegin, Carlos Bernardos, Charles Perkins and Fred Templin. 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. + [RFC6088] Tsirtsis, G., Giarreta, G., Soliman, H., and N. Montavont, + "Traffic Selectors for Flow Bindings", RFC 6088, January + 2011. + [RFC7333] Chan, H., Liu, D., Seite, P., Yokota, H., and J. Korhonen, "Requirements for Distributed Mobility Management", RFC 7333, August 2014. [RFC7429] Liu, D., Zuniga, JC., Seite, P., Chan, H., and CJ. Bernardos, "Distributed Mobility Management: Current Practices and Gap Analysis", RFC 7429, January 2015. 9.2. Informative References [RFC3344] Perkins, C., "IP Mobility Support for IPv4", RFC 3344, August 2002. [RFC5213] Gundavelli, S., Leung, K., Devarapalli, V., Chowdhury, K., and B. Patil, "Proxy Mobile IPv6", RFC 5213, August 2008. + [RFC7222] Liebsch, M., Seite, P., Yokota, H., Korhonen, J., and S. + Gundavelli, "Quality-of-Service Option for Proxy Mobile + IPv6", RFC 7222, May 2014. + Appendix A. YANG Data Model for the FPC Protocol This appendix provides (so far experimental) formating of some FPC protocol components adopting YANG data modeling. The current FPC information model as per this initial draft version will experience extensions, as it is not yet complete, and may experience changes that need to be reflected in the data model. Whether a detailed data model will be included in this document or solely an information model will be adopted by this document and a detailed data model will be part of a separate document is currently being discussed. + file "ietf-dmm-fpcp@2015-07-06.yang" + module ietf-dmm-fpcp { - namespace "urn:ietf:params:xml:ns:yang:dmm-fpcp"; + namespace "urn:ietf:params:xml:ns:yang:ietf-dmm-fpcp"; prefix fpcp; import ietf-inet-types { prefix inet; } + organization "IETF DMM Working Group"; + contact "Satoru Matsushima "; + description "This module contains YANG definition for Forwarding Policy Configuration Protocol.(FPCP)"; - revision 2015-03-09 {} + revision 2015-07-06 { + description "Changes based on -01 version of FPCP draft."; + reference "draft-ietf-dmm-fpc-cpdp-01"; + } typedef fpcp-port-id { + type uint32; description "PRT_ID"; - type uint16; } typedef fpcp-property-id { - description "PROP_ID"; type uint8; + description "PRT_PROP_ID"; + + } + + typedef fpcp-rule-id { + type uint8; + description "PRT_RULE_ID"; } identity tunnel-type { description "Base identity from which specific use of tunnels are derived."; } identity fpcp-tunnel-type { base "tunnel-type"; @@ -754,353 +873,464 @@ identity gtp { base "fpcp-tunnel-type"; description "GTP-U tunnel"; } identity gre { base "fpcp-tunnel-type"; description "GRE tunnel"; } + identity service-function { + description + "Base identity from which specific + service function types are derived."; + } + identity ip-protocol { description "Base identity from which specific IP protocol types are derived."; } identity qos-type { description "Base identity from which specific uses of QoS types are derived."; } identity fpcp-qos-type { base "qos-type"; description "Base identity from which specific QoS types in FPCP uses are derived."; } - identity fpcp-qos-type-high { - base "fpcp-qos-type"; - description - "An example FPCP QoS Type for high quality class. - FPCP supported QoS classes are TBD."; - } - - identity fpcp-qos-type-middle { + identity fpcp-qos-type-gbr { base "fpcp-qos-type"; description - "An example FPCP QoS Type for middle quality class. - FPCP supported QoS classes are TBD."; + "A QoS Type for Guaranteed Bit Rate (GBR)."; } - identity fpcp-qos-type-low { + identity fpcp-qos-type-mbr { base "fpcp-qos-type"; description - "An example FPCP QoS Type for low quality class. - FPCP supported QoS classes are TBD."; + "A QoS Type for Maximum Bit Rate (MBR)."; } grouping fpcp-client { description "CLI_ID to identify FPCP Client"; leaf carrier-id { - type uint8; + type uint16; + description "Carrier ID"; } leaf network-id { - type uint8; + type uint16; + description "Network ID"; } leaf client-id { - type uint16; + type uint32; mandatory true; + description "Client ID"; } } grouping fpcp-agent { description "AGT_ID to identify FPCP Agent"; leaf carrier-id { - type uint8; + type uint16; + description "Carrier ID"; } leaf network-id { - type uint8; + type uint16; + description "Network ID"; } leaf agent-id { - type uint16; + type uint32; mandatory true; + description "Agent ID"; } } grouping dpn { description "DPN_ID to identify Data-Plane Node"; leaf carrier-id { - type uint8; + type uint16; + description "Carrier ID"; } leaf network-id { - type uint8; - } - leaf dpn-id { type uint16; - mandatory true; - } - } - grouping port-property-id { - description "PRT_PROP_ID"; - leaf port-id { - mandatory true; - type fpcp-port-id; + description "Network ID"; } - leaf property-id { - type fpcp-property-id; + leaf dpn-id { + type uint32; mandatory true; + description "DPN ID"; } } grouping tunnel-endpoints { description "PROP_TUN property as a set of tunnel endpoints"; leaf tunnel-type { type identityref { base "fpcp-tunnel-type"; } + description "Tunnel Type"; } leaf remote-address { type inet:ip-address; + description "Remote endpoint"; } leaf local-address { type inet:ip-address; + description "Local endpoint"; } } grouping gtp-attributes { description "GTP_CONF as GTP tunnel specific attributes"; leaf remote-teid { type uint32; + description "TEID of remote-endpoint"; } leaf local-teid { type uint32; + description "TEID of local-endpoint"; } } grouping gre-attributes { description "GRE_CONF as GRE tunnel specific attribute"; leaf key { type uint32; + description "GRE_KEY"; + } + } + + grouping rewriting-properties { + description + "PROP_REWR. TBD for which type of rewriting functions + need to be defined"; + leaf type { + type identityref { + base service-function; + } + description "The type of service-function"; + } + } + + grouping qos-properties { + description "PROP_QOS"; + leaf qos-type { + type identityref { + base "fpcp-qos-type"; + } + description "QoS Type"; + } + leaf bandwidth { + type uint32; + description ""; } } grouping fpcp-identifier-attributes { description "Identifiers of protocol attributes"; - leaf port-id { - type fpcp-port-id; - } container client { + description "Client ID"; uses fpcp-client; } container agent { + description "Agent ID"; uses fpcp-agent; } list nodes { key dpn-id; uses dpn; + description "DPN ID"; } } grouping fpcp-traffic-descriptor { description "Traffic descriptor group collects parameters to - identify target traffic flow and apply QoS policy"; + identify target traffic flow."; + leaf rule-id { + type fpcp-rule-id; + description "PRT_RULE_ID"; + } leaf destination-ip { type inet:ip-prefix; + description "Rule of destination IP"; } leaf source-ip { type inet:ip-prefix; + description "Rule of source IP"; } leaf protocol { type identityref { base "ip-protocol"; } + description "Rule of protocol"; } leaf destination-port { type inet:port-number; + description "Rule of destination port"; } leaf source-port { type inet:port-number; - } - leaf qos { - type identityref { - base "fpcp-qos-type"; - } + description "Rule of source port"; } } - grouping fpcp-port-properties { description "A set of port property attributes"; leaf property-id { type fpcp-property-id; + description "Property ID"; } - list next-hops { container endpoints { + description "Tunnel Endpoint"; uses tunnel-endpoints; } + container qos { + description "QoS Type"; + uses qos-properties; + } + container rewriting { + description "Rewriting function"; + uses rewriting-properties; + } choice tunnel { + description "Tunnel-Type"; case gtp-u { - when "tunnel-type = 'gtp'"; + when "tunnel-type = 'gtp'" { + description "In case of GTP-U is tunnel-type"; + } uses gtp-attributes; } case gre { - when "tunnel-type = 'gre'"; - uses gre-attributes; + when "tunnel-type = 'gre'" { + description "In case of GRE is tunnel-type"; } + uses gre-attributes; } } } // Port Entries container port-entries { description "This container binds set of traffic-descriptor and port properties to a port and lists them as a port entry."; list port-entry { key port-id; + description "List of port entries"; + leaf port-id { + type fpcp-port-id; + description "Port-ID"; + + } container identifier { + description "Attributes set of Identifiers"; uses fpcp-identifier-attributes; } - container trafic-descriptor { + list trafic-descriptor { + key rule-id; + description "Rule and traffic-descriptor"; uses fpcp-traffic-descriptor; } list properties { + key property-id; + description "Attributes set of properties"; uses fpcp-port-properties; } } } // PRT_ADD rpc port_add { description "PRT_ADD"; - output { - list fpcp-port-entry { - uses fpcp-identifier-attributes; - + input { + list adding-ports { + description "Ports that are added to an agent"; + leaf port-id { + type fpcp-port-id; + description "Port-ID"; + } + container trafic-descriptor { + description "Rule and traffic-descriptor"; + uses fpcp-traffic-descriptor; + } + list properties { + key property-id; + description "Attributes set of properties"; + uses fpcp-port-properties; + } } } } // PRT_DEL rpc port_delete { description "PRT_DEL"; input { + list deleting-ports { + description "Ports that are deleted from an agent"; leaf deleting-port { type fpcp-port-id; + description "Deleting port-id"; + } } } } // PROP_ADD rpc port_property_add { description "PROP_ADD"; input { + list adding-properties { + description "Properties that are added to an agent"; leaf target-port { type fpcp-port-id; - mandatory true; + description "Port-ID"; } - container port-properties { + list properties { + key property-id; + description "Attributes set of properties"; uses fpcp-port-properties; } } } + } // PROP_MOD rpc port_property_modify { description "PROP_MOD"; input { + list modifying-properties { + description + "Properties that are modified in an agent"; leaf target-port { type fpcp-port-id; mandatory true; + description + "Target port-id of modifying properties"; } - container port-properties { + list properties { + key property-id; + description "Attributes set of properties"; uses fpcp-port-properties; + + } } } } // PROP_DEL rpc port_property_delete { description "PROP_DEL"; input { - container deleting-property { - uses port-property-id; + list deleting-property { + description + "Target port/property-id of deleting properties"; + leaf port-id { + type fpcp-port-id; + mandatory true; + description "Port ID"; + } + leaf property-id { + type fpcp-property-id; + mandatory true; + description "Property ID"; + } } } } // RULE_ADD rpc rule_add { description "TBD for input parameters of which RULE_ADD includes but now just traffic-descriptor."; input { + list adding-rules { + description "Rules that are added to an agent"; leaf target-port { type fpcp-port-id; mandatory true; + description "Target port-id of adding rule"; } - container port-properties { + list port-rules { + description "Added rule"; uses fpcp-traffic-descriptor; } } } - + } // RULE_MOD rpc rule_modify { description "TBD for input parameters of which RULE_MOD includes but now just traffic-descriptor."; input { + list modifying-rules { + description "Rules that are modified in an agent"; leaf target-port { type fpcp-port-id; mandatory true; + description "Target port-id of modifying rule"; } - container port-properties { + list port-rule { + description "Modified rule"; uses fpcp-traffic-descriptor; } } } + } // RULE_DEL rpc rule_delete { description "TBD for input parameters of which RULE_DEL includes but now just traffic-descriptor."; - input { + list deleting-rules { + description "Rules that are deleted from an agent"; leaf target-port { type fpcp-port-id; mandatory true; + description "Target port-id of deleting rule"; + } + list target-rules { + description "Deleting rules"; + leaf target-rule-id { + type fpcp-rule-id; + mandatory true; + description "Rule ID"; + } } - container port-properties { - uses fpcp-traffic-descriptor; } } } - // EVENT_REG rpc event_register { description "TBD for registered parameters included in EVENT_REG."; } // PROBE rpc probe { @@ -1109,21 +1339,23 @@ } // NOTIFY notification notify { description "TBD for which status and event are reported to client."; } } - Figure 10: FPC YANG Data Model + + + Figure 11: FPC YANG Data Model Authors' Addresses Marco Liebsch NEC Laboratories Europe NEC Europe Ltd. Kurfuersten-Anlage 36 D-69115 Heidelberg Germany @@ -1122,28 +1354,28 @@ Marco Liebsch NEC Laboratories Europe NEC Europe Ltd. Kurfuersten-Anlage 36 D-69115 Heidelberg Germany Phone: +49 6221 4342146 Email: liebsch@neclab.eu + Satoru Matsushima - Softbank Telecom + SoftBank 1-9-1,Higashi-Shimbashi,Minato-Ku Tokyo 105-7322 Japan Email: satoru.matsushima@g.softbank.co.jp - Sri Gundavelli Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email: sgundave@cisco.com Danny Moses