Internet Engineering Task Force (IETF) M-K. Shin Internet-Draft ETRI Intended status: Informational M-J. Choi Expires: April 21, 2016 KNU S. Lee ETRI October 19, 2015 Yang Data Model for Service Function Chaining Control Plane draft-shin-sfc-control-plane-yang-00 Abstract This document defines Yang data model for control plane management of service function chaining based on [I-D.ietf-sfc-control-plane], which describes components and requirements of SFC control plane. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. 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 April 21, 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 carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Shin, et al. Expires April 21, 2016 [Page 1] Internet-Draft Yang Model for SFC Control Plane October 2015 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Overall Module Structure . . . . . . . . . . . . . . . . . . 4 3.1. SFC-Control-Planes Configuration Model . . . . . . . . . 4 4. Path Maintenance . . . . . . . . . . . . . . . . . . . . . . 5 4.1. Path Maintenance Configuration Model . . . . . . . . . . 6 5. Path Optimization . . . . . . . . . . . . . . . . . . . . . . 6 5.1. Path Optimization Configuration Model . . . . . . . . . . 7 6. Load Balancing . . . . . . . . . . . . . . . . . . . . . . . 8 6.1. Load Balancing Configuration Model . . . . . . . . . . . 8 7. SFC Topology . . . . . . . . . . . . . . . . . . . . . . . . 10 7.1. SFC Topology Configuration Model . . . . . . . . . . . . 10 8. Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.1. Policy Configuration Model . . . . . . . . . . . . . . . 12 9. History . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9.1. History Configuration Model . . . . . . . . . . . . . . . 14 10. Fault Handling . . . . . . . . . . . . . . . . . . . . . . . 17 10.1. Fault Handling Configuration Model . . . . . . . . . . . 17 11. Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 11.1. Event Configuration Model . . . . . . . . . . . . . . . 19 12. Security Considerations . . . . . . . . . . . . . . . . . . . 19 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 14.1. Normative References . . . . . . . . . . . . . . . . . . 20 14.2. Informative References . . . . . . . . . . . . . . . . . 20 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 1. Introduction Service Function Chaining (SFC) consists of SFC data plane and control plane from the aspect of architecture [I-D.ietf-sfc-architecture]. The document [I-D.ietf-sfc-control-plane] describes requirements for delivering information between SFC control elements and SFC functional elements. By capturing the information conveyed via a set of control interfaces in [I-D.ietf-sfc-control-plane], this document defines Yang data model of management operations performed in a SFC control plane. Note that the base Yang data model for the SFC data plane is already covered in [I-D.penno-sfc-yang]. Shin, et al. Expires April 21, 2016 [Page 2] Internet-Draft Yang Model for SFC Control Plane October 2015 2. Terminology This document uses the following terms and most of them were reproduced from [I-D.ietf-sfc-architecture] and [I-D.ietf-sfc-control-plane]. o Classification: Locally instantiated policy and customer/network/ service profile matching of traffic flows for identification of appropriate outbound forwarding actions. o Service Function Chain (SFC): A service function chain defines a set of abstract service functions and ordering constraints that must be applied to packets and/or frames selected as a result of classification. The implied order may not be a linear progression as the architecture allows for SFCs that copy to more than one branch, and also allows for ere there is flexibility in the order in which service functions need to be applied. The term service chain is often used as shorthand for service function chain. o Service Function (SF): A function that is responsible for specific treatment of received packets. A Service Function can act at various layers of a protocol stack (e.g., at the network layer or other OSI layers). As a logical component, a Service Function can be realized as a virtual element or be embedded in a physical network element. One or multiple Service Functions can be embedded in the same network element. Multiple occurrences of the Service Function can exist in the same administrative domain. o Service Function Instance (SFI): The instantiation of Service Function that can be a virtual instance or be embedded in a physical network element. One of multiple Service Functions can be embedded in the same network element. Multiple instances of the Service Function can be enabled in the same administrative domain. o Service Function Forwarder (SFF): A service function forwarder is responsible for delivering traffic received from the network to one or more connected service functions according to information carried in the SFC encapsulation, as well as handling traffic coming back from the SF. Additionally, a service function forwarder is responsible for delivering traffic to a classifier when needed and supported, mapping out traffic to another SFF (in the same or different type of overlay), and terminating the SFP. o Service Function Path (SFP): The SFP provides a level of indirection between the fully abstract notion of service chain as a sequence of abstract service functions to be delivered, and the fully specified notion of exactly which SFF/SFs the packet will Shin, et al. Expires April 21, 2016 [Page 3] Internet-Draft Yang Model for SFC Control Plane October 2015 visit when it actually traverses the network. By allowing the control components to specify this level of indirection, the operator may control the degree of SFF/SF selection authority that is delegated to the network. 3. Overall Module Structure Ahead to defining separate sub-modules, overall module structure for the management of SFC control plane is examined. The overall modules consist of 8 sub-modules (groups). The overall module is devised on the basis of the requirements for conveying information between SFC control elements and SFC functional elements described in the document [I-D.ietf-sfc-control-plane]. Module: SFC-control-planes o Path Maintenance o Path Optimization o Load Balancing o SFC Topology o Policy o History o Fault Handling o Event 3.1. SFC-Control-Planes Configuration Model Shin, et al. Expires April 21, 2016 [Page 4] Internet-Draft Yang Model for SFC Control Plane October 2015 module sfc-control-planes { namespace "urn:etri:params:xml:ns:yang:sfc-cp"; prefix sfc-cp; include path-maintenance { revision-date 2015-10-15; } include path-optimization { revision-date 2015-10-15; } include load-balancing { revision-date 2015-10-15; } include sfc-topology { revision-date 2015-10-15; } include policy { revision-date 2015-10-15; } include history { revision-date 2015-10-15; } include fault-handling { revision-date 2015-10-15; } include event { revision-date 2015-10-15; } organization "ETRI."; contact "M-K. Shin mkshin@etri.re.kr M-J Choi mjchoi@kangwon.ac.kr"; revision-date 2015-10-15; } 4. Path Maintenance This module checks the aliveness of a SFP. This receives SFP name and returns aliveness result which is true or false value. o SFP name o Aliveness of SFP: True or False o RPC: check-path-aliveness (input: SFP name, output: aliveness) Shin, et al. Expires April 21, 2016 [Page 5] Internet-Draft Yang Model for SFC Control Plane October 2015 4.1. Path Maintenance Configuration Model submodule path-maintenance { belongs-to sfc-control-planes { prefix sfc-pm; } description "This module checks the aliveness of a SFP. This receives SFP name and returns aliveness result which is true or false value." revision 2015-10-15; container path-maintenance { leaf sfp-name { type string; description "The name of service function path."; } leaf aliveness-of-sfp { type boolean; description "Aliveness flag of the service function."; } } rpc check-path-aliveness { description "Check a path aliveness."; input { leaf sfc-name { type string; description "The name of service function path."; } } output { leaf aliveness { type boolean; description "Aliveness flag of the service function."; } } } } 5. Path Optimization This module constructs and maintains a SFP with a low stretch considering the topological locations and properties (e.g., latency, bandwidth) of SFI Shin, et al. Expires April 21, 2016 [Page 6] Internet-Draft Yang Model for SFC Control Plane October 2015 o SFP name o Optimized SFP o SFP availability o Load status o RPC: Find-optimized-SFP (input: SFP name, output: optimized SFP, SFP availability, Load status) 5.1. Path Optimization Configuration Model submodule path-optimization { belongs-to sfc-control-planes { prefix sfc-po; } description "This module constructs and maintains a SFP with a low stretch considering the topological locations and properties (e.g., latency, bandwidth) of SF."; revision 2015-10-15; container path-optimization { leaf sfp-name { type string; description "The name of service function path to be changed for optimization."; } leaf optimized-sfp { type string; description "The name of optimized service function path."; } leaf sfp-availability { type boolean; description "The availability of the optimized service function path: true or false."; } leaf load-status { type uint8; description "A percentage value of load status."; } } rpc find-optimized-sfp { description Shin, et al. Expires April 21, 2016 [Page 7] Internet-Draft Yang Model for SFC Control Plane October 2015 "Find an optimized service function path."; input { leaf sfp-name { type string; description "The name of service function path to be changed for optimization."; } } output { leaf optimized-sfp { type string; description "The name of optimized service function path."; } leaf sfp-availability { type string; description "The availability of the optimized service function path: true or false."; } } } } 6. Load Balancing This module constructs and maintains SFPs to localize the traffic in the network considering load and administrative domain of SFIs. o Load type: traffic/CPU/memory o Source SFP name o Target SFP name o RPC: perform-load-balance (input: Load type, source SFP name, output: target SFP name) 6.1. Load Balancing Configuration Model submodule load-balancing { belongs-to sfc-control-planes{ prefix sfc-lb; } description "This module constructs and maintains SFPs to localize the Shin, et al. Expires April 21, 2016 [Page 8] Internet-Draft Yang Model for SFC Control Plane October 2015 traffic in the network considering load and administrative domain of SFIs."; revision 2015-10-15; container load-balancing { leaf load-type { type enumeration { enum traffic; enum cpu; enum memory; } description "A resource type for load balancing."; } leaf source-sfp-name { type string; description "The name of service function path with heavy load."; } leaf target-sfp-name { type string; description "Another name of service function path for load distribution."; } } rpc perform-load-balance { description "Perform a load balancing."; input { leaf load-type { type enumeration { enum traffic; enum cpu; enum memory; } description "A resource type for load balancing."; } leaf source-sfp-name { type string; description "The name of service function path with heavy load."; } } output { leaf target-sfp-name { type string; description Shin, et al. Expires April 21, 2016 [Page 9] Internet-Draft Yang Model for SFC Control Plane October 2015 "Another name of service function path for load distribution."; } } } } 7. SFC Topology This module shows the connectivity map of currently working SFCs, SFPs and SFIs. o Name: SFC name or SFP name or SFI name o Lists of SF node o RPC: show-SFC-topology (input: SFC name, output: list of SF nodes) 7.1. SFC Topology Configuration Model submodule sfc-topology { belongs-to sfc-control-planes { prefix sfc-st; } description "This module shows the connectivity map of currently working SFCs, SFPs and SFIs."; revision 2015-10-15; container sfc-topology { leaf name { type string; description "The name of service function chain or service function path or service function instances."; } list lists-of-sf-node { key name; description "A list of service functions that compose the service chain."; leaf name { type string; description "A list of service functions that compose the service chain."; } leaf order { Shin, et al. Expires April 21, 2016 [Page 10] Internet-Draft Yang Model for SFC Control Plane October 2015 type uint8; description "The order of the service functions."; } } } rpc show-sfc-topology { description "Display the topology of service function chain."; input { leaf sfc-name { type string; description "The name of service function chain."; } } output { list lists-of-sf-node { key name; description "A list of service functions that compose the service chain."; leaf name { type string; description "A list of service functions that compose the service chain."; } leaf order { type uint8; description "The order of the service functions."; } } } } } 8. Policy Policies are used to bind an incoming flow to an appropriate SFP. o Classification Policy Table: One SFC is selected by a classification function according to the defined policy. The classification means service profile matching of traffic flows for identification of appropriate outbound forwarding actions. Shin, et al. Expires April 21, 2016 [Page 11] Internet-Draft Yang Model for SFC Control Plane October 2015 * Flow identifier * Matching condition * Priority * Mapping SFC name o Forwarding Policy Table: This policy is used to select SFIs defined in SFC and connect them. A SFF is responsible for delivering traffic received from the network to one or more connected service functions according to the policy table. * SFF name * Condition * SFC name * SFP name 8.1. Policy Configuration Model submodule policy { belongs-to sfc-control-planes { prefix sfc-p; } description "Policies are used to bind an incoming flow to an appropriate SFP."; revision 2015-10-15; container classification-policy-table { description "One SFC is selected by classification function according to the defined policy. The classification means service profile matching of traffic flows for identification of appropriate outbound forwarding actions."; list classification-policy-table { key flow-identifier; description "To classify the flow, flow identification is necessary."; leaf flow-identifier { type string; description "The flow identifier."; } leaf matching-condition { type string; Shin, et al. Expires April 21, 2016 [Page 12] Internet-Draft Yang Model for SFC Control Plane October 2015 description "The flow matching condition."; } leaf priority { type int32; description "Policy priority. The low value is high priority."; } leaf mapping-sfc-name { type string; description "The mapped service function name of the flow."; } } } container forwarding-policy-table { description "This policy is used to select SFIs defined in SFC and connect them. This policy is used in Service Function Forwarder (SFF). A SFF is responsible for delivering traffic received from the network to one or more connected service functions according to the policy table."; list Forwarding-Policy-Table { key index; description "The index of forwarding policy table."; leaf index { type int32; description "The index of forwarding policy table."; } leaf sff-name { type string; description "The name of service function forwarder."; } leaf sfc-name { type string; description "The name of service function chain."; } leaf condition { type string; description "The mapping condition."; } leaf sfp-name { type string; Shin, et al. Expires April 21, 2016 [Page 13] Internet-Draft Yang Model for SFC Control Plane October 2015 description "The name of service function path."; } } } } 9. History This module shows statistical information related performance and faults in accordance with SFCs and SFPs. o Performance: it monitors and stores time series data related performance * Name: SFC name or SFP name * Time * Aliveness * Resource utilization: packet-rate, bandwidth, CPU usage, memory usage, available memory, RIB, FIB, SF-ports bandwidth o Fault: it monitors and stores time series data related to faults and events. * Fault name * Fault occurrence time * Fault type * Fault occurrence location * Fault handling action 9.1. History Configuration Model submodule history { belongs-to sfc-control-planes { prefix sfc-h; } import ietf-yang-types { prefix yang; revision-date 2013-07-15; } description Shin, et al. Expires April 21, 2016 [Page 14] Internet-Draft Yang Model for SFC Control Plane October 2015 "This module shows statistical information related performance and faults in accordance with SFCs and SFPs." revision 2015-10-15; container performance { description "It monitors and stores time series data related performance." list Performance { key name description "The name of service function."; leaf name { type string; description "The name of service function."; } leaf time { type yang:date-and-time; description "The performance monitoring date."; } leaf aliveness { type Boolean; description "The aliveness flag of the service function."; } container resource-utilization { description "To be defined."; leaf packet-rate { type uint8; description "Percentage of current package rate utilization."; } leaf bandwidth { type uint8; description "Percentage of bandwidth utilization."; } leaf cpu-usage { type uint8; description "Percentage of CPU utilization."; } leaf memory-usage { type uint8; description "Percentage of memory utilization."; } Shin, et al. Expires April 21, 2016 [Page 15] Internet-Draft Yang Model for SFC Control Plane October 2015 leaf available-memory { type uint8; description "Available memory size of the service function in MB."; } leaf rib { type uint8; description "Percentage of Routing Information Table utilization."; } leaf fib { type uint8; description "Percentage of Forwarding Information Table utilization."; } leaf sf-ports-bandwidth { type uint8; description "Percentage of the port's supported bandwidth utilization."; } } } } container fault { description "It monitors and stores time series data related to faults and events." list fault { key fault-name; description "The name occurred fault."; leaf fault-name { type string; description "The name occurred fault."; } leaf fault-occurrence-time { type yang:date-and-time; description "The time of the fault occurrence."; } leaf fault-type { type string; description "The type of occurred fault."; } Shin, et al. Expires April 21, 2016 [Page 16] Internet-Draft Yang Model for SFC Control Plane October 2015 leaf fault-occurrence-location { type string; description "The location of fault occurrence."; } leaf fault-handling-action { type string; description "The fault handing action: drop, bypass, use alternate node."; } } } } 10. Fault Handling This module first detects faults and handles the detected faults in accordance with the fault handling action. o Fault name: Key o Fault type: Node/Link/Path failures o Fault handing action: Bypass/Use alternate node/Use alternate chain/Drop traffic o RPC: handle-fault (input: fault name, output: fault handle result) 10.1. Fault Handling Configuration Model Shin, et al. Expires April 21, 2016 [Page 17] Internet-Draft Yang Model for SFC Control Plane October 2015 submodule fault-handling { belongs-to sfc-control-planes { prefix sfc-fh } description "This module first detects faults and handles the detected faults in accordance with the fault handling action. "; revision 2015-10-15; container fault-handling { list fault-handling { key fault-name; description "The name of occurred fault."; leaf fault-name { type string; description "The fault handing action: drop, bypass, use alternate node."; } leaf fault-type { type enumeration { enum node; enum link; enum path-failures; } description "The type of occurred fault."; } leaf fault-handling-action type enumeration { enum bypass; enum use-alternate-node; enum use-alternate-chain; enum drop-traffic; } description "The fault handing action: drop, bypass, use alternate node."; } } } } Shin, et al. Expires April 21, 2016 [Page 18] Internet-Draft Yang Model for SFC Control Plane October 2015 11. Event Events such as loops detection, long unavailable forwarding path time, out of service of SFIs are defined. 11.1. Event Configuration Model submodule event { belong-to sfc-control-planes { prefix sfc-e; } revision 2015-10-15; notification event { description "Events such as loops detection, long unavailable forwarding path time, out of service of SFIs."; leaf event-type { type string; description "Event type."; } leaf severity { type string; description "The severity of the event."; } leaf event-explanation { type string; description "The detailed explanation of the event."; } } } 12. Security Considerations TBD. 13. IANA Considerations TBD. 14. References Shin, et al. Expires April 21, 2016 [Page 19] Internet-Draft Yang Model for SFC Control Plane October 2015 14.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ RFC2119, March 1997, . 14.2. Informative References [I-D.ietf-sfc-architecture] Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", draft-ietf-sfc-architecture-11 (work in progress), July 2015. [I-D.ietf-sfc-control-plane] Li, H., Wu, Q., Huang, O., Boucadair, M., Jacquenet, C., Haeffner, W., Lee, S., Parker, R., Dunbar, L., Malis, A., Halpern, J., Reddy, T., and P. Patil, "Service Function Chaining (SFC) Control Plane Components & Requirements", draft-ietf-sfc-control-plane-00 (work in progress), August 2015. [I-D.lee-sfc-dynamic-instantiation] Lee, S., Pack, S., Shin, M., and E. Paik, "SFC dynamic instantiation", draft-lee-sfc-dynamic-instantiation-01 (work in progress), October 2014. [I-D.penno-sfc-yang] Penno, R., Quinn, P., Zhou, D., and J. Li, "Yang Data Model for Service Function Chaining", draft-penno-sfc- yang-13 (work in progress), March 2015. Authors' Addresses Myung-Ki Shin ETRI 218 Gajeong-ro Yuseung-Gu Daejeon 305-700 Korea Phone: +82 42 860 4847 Email: mkshin@etri.re.kr Shin, et al. Expires April 21, 2016 [Page 20] Internet-Draft Yang Model for SFC Control Plane October 2015 Mi-Jung Choi Kangwon National University 1 Kangwondaehak-gil Chuncheon-si, Gangwon-do 24341 Korea Phone: +82 33 250 8442 Email: mjchoi@kangwon.ac.kr Seungik Lee ETRI 218 Gajeong-ro Yuseung-Gu Daejeon 305-700 Korea Phone: +82 42 860 1483 Email: seungiklee@etri.re.kr Shin, et al. Expires April 21, 2016 [Page 21]