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
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.
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 (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 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
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].
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].
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
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; }
This module checks the aliveness of a SFP. This receives SFP name and returns aliveness result which is true or false value.
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."; } } } }
This module constructs and maintains a SFP with a low stretch considering the topological locations and properties (e.g., latency, bandwidth) of SFI
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 "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."; } } } }
This module constructs and maintains SFPs to localize the traffic in the network considering load and administrative domain of SFIs.
submodule load-balancing { belongs-to sfc-control-planes{ prefix sfc-lb; } description "This module constructs and maintains SFPs to localize the 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 "Another name of service function path for load distribution."; } } } }
This module shows the connectivity map of currently working SFCs, SFPs and SFIs.
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 { 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."; } } } } }
Policies are used to bind an incoming flow to an appropriate SFP.
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; 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; description "The name of service function path."; } } } }
This module shows statistical information related performance and faults in accordance with SFCs and SFPs.
submodule history { belongs-to sfc-control-planes { prefix sfc-h; } import ietf-yang-types { prefix yang; revision-date 2013-07-15; } description "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."; } 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."; } 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."; } } } }
This module first detects faults and handles the detected faults in accordance with the fault handling action.
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."; } } } }
Events such as loops detection, long unavailable forwarding path time, out of service of SFIs are defined.
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."; } } }
TBD.
TBD.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[I-D.ietf-sfc-architecture] | Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", Internet-Draft draft-ietf-sfc-architecture-11, 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", Internet-Draft draft-ietf-sfc-control-plane-00, August 2015. |
[I-D.lee-sfc-dynamic-instantiation] | Lee, S., Pack, S., Shin, M. and E. Paik, "SFC dynamic instantiation", Internet-Draft draft-lee-sfc-dynamic-instantiation-01, October 2014. |
[I-D.penno-sfc-yang] | Penno, R., Quinn, P., Zhou, D. and J. Li, "Yang Data Model for Service Function Chaining", Internet-Draft draft-penno-sfc-yang-13, March 2015. |