Internet Working Group W. Xu Y. Jiang C. Zhou Huawei Internet Draft Intended status: Standards Track Expires: August 2014 February 14, 2014 Data Models for Network Functions Virtualization draft-xjz-nfv-model-datamodel-02.txt Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This Internet-Draft will expire on July 14, 2014. Copyright Notice Copyright (c) 2014 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 Xu, et al Expires August 14, 2014 [Page 1] Internet-Draft Data Models for NFV February 2014 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Abstract This document provides some YANG data models for Network Functions Virtualization (NFV). Table of Contents 1. Introduction ............................................... 2 2. Conventions used in this document .......................... 2 3. Terminology ................................................ 3 4. Data Model of Virtual Network Function Descriptor (VNFD) ... 3 4.1. VNFD Module Structure ................................... 4 4.2. VNFD YANG Module ........................................ 5 5. VNF instance Data Model ................................... 10 5.1. VNF instance Module Structure .......................... 10 5.2. VNF instance YANG Module ............................... 11 6. Security Considerations ................................... 16 7. IANA Considerations ....................................... 16 8. References ................................................ 16 8.1. Normative References ................................... 16 8.2. Informative References ................................. 16 9. Contributors .............................................. 17 10. Acknowledgments ........................................... 17 1. Introduction YANG [RFC6020] is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF) [RFC6241]. A small set of built-in data types are defined in [RFC6020], a collection of common data types are further defined in [RFC6991]. This document defines a YANG data model for Network Functions Virtualization (NFV). 2. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Expires August 14, 2014 [Page 2] Internet-Draft Data Models for NFV February 2014 3. Terminology Network Function (NF): A functional block (FB) within a network infrastructure which has well-defined external interfaces and well- defined functional behaviour. Virtual Machine (VM): a virtualized computation environment which behaves very much like a physical computer/server. Virtualised Network Function (VNF): An implementation of an executable software program that constitutes the whole or a part of an NF and can be deployed on a virtualisation infrastructure. Virtualised Network Function Component (VNFC): a single VNF which is hosted by a single VM is called a Virtual Network Function Component (VNFC). VNF Descriptor (VNFD): A configuration template that describes a VNF in terms of its deployment and operational behavior, and is used in the process of on-boarding and instantiating a VNF. The deployment behavior describes the NFV Infrastructure resources that a VNF instance requires whereas the operational behavior describes the VNF instance topology and VNF instance lifecycle operations. VNF Forwarding Graph: A graph specified by a Network Service Provider of bi-directional logical links connecting NF nodes where at least one node is a VNF through which network traffic is directed. VNF Instance: a run-time instantiation of the VNF, resulting from completing the instantiation of VNF, using the VNF deployment and operational information captured in the VNFD, as well as additional run-time instance-specific information and constraints. Virtualization Deployment Unit (VDU): a construct that can be used in an information model, supporting the description of the deployment and operational behaviour of a subset of a VNF, or the entire VNF if it was not componentized in subsets. 4. Data Model of Virtual Network Function Descriptor (VNFD) The main objective of VNF modeling will include: Expires August 14, 2014 [Page 3] Internet-Draft Data Models for NFV February 2014 - Basic VNF attributes: VNF name, function description, sharing or non-sharing attribute. - Deployment attributes: environment requirements of VNF deployment such as the number of VMs, virtual CPU, memory and disk requirements, image of each VM, and QoS requirements such as bandwidth and delay of VNF. - Interface attributes: external interface, such as interface type, configuration parameters of these interfaces. 4.1. VNFD Module Structure +--rw VNF-descriptor +--rw general-information | +--rw name? string | +--rw description? string | +--rw vendor? string | +--rw version? uint8 | +--rw sharing? enumeration +--rw deploy-information | +--rw virtualization-deployment-unit* [index] | +--rw index uint16 | +--rw require-resource | | +--rw CPU-unit? uint16 | | +--rw memory-size? uint64 | | +--rw disk-size? uint64 | +--rw image-ref? string +--rw external-interface* [name] Expires August 14, 2014 [Page 4] Internet-Draft Data Models for NFV February 2014 +--rw name string 4.2. VNFD YANG Module module ietf-vnfd { namespace "urn:ietf:params:xml:ns:yang:ietf-vnfd"; prefix vnfd; organization "Huawei Technologies"; contact "Yuanlong Jiang Weiping Xu Cathy Zhou "; description "This module contains a collection of YANG definitions for managing VNFD. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Expires August 14, 2014 [Page 5] Internet-Draft Data Models for NFV February 2014 Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; revision 2014-01-03 { description "Initial revision."; } container VNF-descriptor { description "A configuration template that describes a VNF."; container general-information { description "General information of a VNF."; leaf name { type string; description "the name of this VNF."; } leaf description { type string; description "description of this VNF."; Expires August 14, 2014 [Page 6] Internet-Draft Data Models for NFV February 2014 } leaf vendor { type string; description "the vendor generating this VNF."; } leaf version { type uint8; description "the version number."; } leaf sharing { type enumeration { enum non-sharing { value "0"; description "The VNF could not be shared by more than one consumer."; } enum sharing { value "1"; description "The VNF could be shared, such as virtual STB is shared by more than one consumer."; } Expires August 14, 2014 [Page 7] Internet-Draft Data Models for NFV February 2014 } description "The flag shows whether the VNF could be shared by more than one consumer."; } } container deploy-information { description "VNF deployment information."; list virtualization-deployment-unit { key index; description "Used to store the deployment parameters of VNF."; leaf index { type uint16; description "the VDU index."; } container require-resource { description "The required source for the VNF."; leaf CPU-unit { type uint16; description "The virtual CPU unit numbers"; } Expires August 14, 2014 [Page 8] Internet-Draft Data Models for NFV February 2014 leaf memory-size { type uint64; description "The virtual memory size, unit:KByte."; } leaf disk-size { type uint64; description "The virtual disk size, unit:MByte."; } } leaf image-ref { type string; description "the software image associated with the VNF."; } } } list external-interface { key name; description "The interface connected to other VNF."; Expires August 14, 2014 [Page 9] Internet-Draft Data Models for NFV February 2014 leaf name { type string; description "The interface name."; } } } } 5. VNF instance Data Model The main objective of VNF modeling will include: - Operational attributes: which defines the operational and management behavior, such as start, stop, pause, migration, etc. 5.1. VNF instance Module Structure The data model for VNF instance has the following structure: module: ietf-vnf-instance +--rw VNF-instance +--rw id? uint32 +--rw VNFD-name? string Expires August 14, 2014 [Page 10] Internet-Draft Data Models for NFV February 2014 +--rw operation +--rw action? enumeration +--rw parameter +--rw (action)? +--:(scale) | +--rw CPU-unit? uint16 | +--rw memory-size? uint64 | +--rw disk-size? uint64 +--:(migration) +--rw destination-location? inet:ip-address 5.2. VNF instance YANG Module module ietf-vnf-instance { namespace "urn:ietf:params:xml:ns:yang:ietf-vnf-instance"; prefix vnf; import ietf-inet-types { prefix inet; } organization "Huawei Technologies"; Expires August 14, 2014 [Page 11] Internet-Draft Data Models for NFV February 2014 contact "Yuanlong Jiang Weiping Xu Cathy Zhou "; description "This module contains a collection of YANG definitions for managing VNF instance. Copyright (c) 2013 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info)."; revision 2014-01-03 { description "Initial revision."; Expires August 14, 2014 [Page 12] Internet-Draft Data Models for NFV February 2014 } container VNF-instance { description "VNF instance."; leaf id { type uint32; description "the instance id."; } leaf VNFD-name { type string; description "the name of VNF descriptor."; } container operation { description "Performing an operation on VNF."; leaf action { type enumeration { enum start { description "Start a VNF instance."; Expires August 14, 2014 [Page 13] Internet-Draft Data Models for NFV February 2014 } enum stop { description "Stop a VNF instance."; } enum pause { description "Pause a VNF instance."; } enum migrate { description "Pause a VNF instance."; } enum scale-up { description "Add resource to a VNF instance."; } enum scale-down { description "Add resource to a VNF instance."; } } description "The operation on VNF"; } container parameter { description "The parameters that associated with scale procedure."; Expires August 14, 2014 [Page 14] Internet-Draft Data Models for NFV February 2014 choice action { description "Different parameter with different action."; case scale { leaf CPU-unit { type uint16; description "The virtual CPU unit numbers"; } leaf memory-size { type uint64; description "The virtual memory size, unit:KByte."; } leaf disk-size { type uint64; description "The virtual disk size, unit:MByte."; } } case migration { leaf destination-location { type inet:ip-address; description "The ip address of the destination location."; } Expires August 14, 2014 [Page 15] Internet-Draft Data Models for NFV February 2014 } } } } } } 6. Security Considerations TBD. 7. IANA Considerations TBD. 8. References 8.1. Normative References [RFC6020] Schoenwaelder,J., RFC 6020, YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF), 2010 [RFC6991] Schoenwaelder,J.,RFC 6991, Common YANG Data Types, 2013 8.2. Informative References [GS-002] ETSI GS NFV 002, Network Functions Virtualisation (NFV) - Architectural Framework, 2013 [GS-003] ETSI GS NFV 003, Network Functions Virtualisation (NFV) - Terminology for Main Concepts in NFV, 2013 [GS-MANO] ETSI ISG NFV, "Network Function Virtualization (NFV) Management and Orchestration", NFV-MAN001v020 (work in progress), January 2014 Xu, W., Jiang, Y., Zhou, C., draft-xjz-nfv-model-problem-statement-00, Work in progress, 2013 Expires August 14, 2014 [Page 16] Internet-Draft Data Models for NFV February 2014 9. Contributors The authors would like to thank Mehmet Ersue who made a contribution to this document. Mehmet Ersue mehmet.ersue@nsn.com 10. Acknowledgments The authors would like to thank Min Zha for his valuable discussions. Authors' Addresses Weiping Xu Huawei Technologies Co., Ltd. Bantian, Longgang district Shenzhen 518129, China Email: xuweiping@huawei.com Yuanlong Jiang Huawei Technologies Co., Ltd. Bantian, Longgang district Shenzhen 518129, China Email: jiangyuanlong@huawei.com Cathy Zhou Huawei Technologies Co., Ltd. Bantian, Longgang district Shenzhen 518129, China Email: cathy.zhou@huawei.com Expires August 14, 2014 [Page 17]