Internet DRAFT - draft-xjz-opsawg-nfvmodel

draft-xjz-opsawg-nfvmodel



Internet Working Group                                          W. Xu
                                                             Y. Jiang
                                                              C. Zhou
                                                               Huawei
Internet Draft

Intended status: Standards Track

Expires: January 2015                                     July 4, 2014



              Data Models for Network Functions Virtualization
                      draft-xjz-opsawg-nfvmodel-00.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 January 4, 2015.

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 January 4, 2015                [Page 1]

Internet-Draft             NFV Data Models                   July 2014


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Abstract

   Network Functions Virtualisation (NFV) is a technology of
   virtualizing network functionalities. In NFV management and
   orchestration a flexible model is needed for the description of its
   information elements. This document provides some YANG data models
   for Network Functions Virtualization (NFV).



Table of Contents

   1.   Introduction .............................................. 3
   2.   Conventions used in this document ......................... 3
   3.   Terminology ............................................... 3
   4.   The Design of the VNF Data Model .......................... 4
   5.   Data Model of Virtualization Deployment Unit (VDU) ........ 4
      5.1. VDU Module Structure ................................... 5
      5.2. VDU YANG Module ........................................ 6
   6.   Data Model of Deployment Flavor .......................... 15
      6.1. Deployment Flavor Module Structure .................... 15
      6.2. Deployment Flavor YANG Module ......................... 15
   7.   Data Model of Virtual Link Descriptor (VLD) .............. 19
      7.1. VLD Module Structure .................................. 19
      7.2. VLD YANG Module ....................................... 19
   8.   Data Model of Virtual Network Function Descriptor (VNFD) . 23
      8.1. VNFD Module Structure ................................. 23
      8.2. VNFD YANG Module ...................................... 25
   9.   Data Model of Virtual Network Function instantiation(VNFI) 35
      5.1. VNF instance Module Structure ......................... 35
      5.2. VNF instance YANG Module .............................. 35
   10.  Security Considerations .................................. 41
   11.  IANA Considerations ...................................... 41
   12.  References ............................................... 41
      12.1.   Normative References ............................... 41
      12.2.   Informative References ............................. 41
   13.  Contributors ............................................. 42
   14.  Acknowledgments .......................................... 42








                       Expires January 4,2015                 [Page 2]

Internet-Draft             NFV Data Models                   July 2014


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].

   Network Functions Virtualisation (NFV), is a technology initiated in
   ETSI, which tries to define a standard way for some network
   equipments to be virtualized in COTS IT servers, switches and storage.
   Therefore, with the introduction of the NFV technology, the
   traditional physical network device could be implemented using the
   Virtualized Network Function (VNF).

   In NFV management and orchestration a flexible model is needed for
   the description of its information elements. This document defines a
   YANG data model for Network Functions Virtualization (NFV). Most of
   the concepts in this document are borrowed from [GS-002], [GS-003]
   and [GS-MANO], and they may be changed as the work is still in
   progress.



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].

3. Terminology

   Network Function (NF): is a functional building block within an
   operator's network infrastructure, which has well defined external
   interfaces and a well defined functional behaviour.

   Virtual Machine (VM): a virtualized computation environment which
   behaves very much like a physical computer/server.

   Virtualised Network Function (VNF): is a network function that has
   been virtualized and can be offered as a network service or be part
   of a service comprised of a set of virtualized network functions
   and/or non-virtualized network functions.

   VNF Descriptor (VNFD): A configuration template that describes a VNF
   in terms of its deployment and operational behaviour, and is used in



                       Expires January 4,2015                 [Page 3]

Internet-Draft             NFV Data Models                   July 2014


   the process of VNF on-boarding and managing the lifecycle of a VNF
   instance

   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. The Design of the VNF Data Model

   The data model for VNFDs presented in this document uses a list of
   VNFDs.  Each VNFD in the list is identified by its id.

   A VNFD include a list of Deployment Flavour (DF). This property is
   achieved by  ''leafref'' to a template of deployment flavor, which
   other YANG modules should used when they need to reference a
   deployment flavor.

   A Deployment Flavour include a list of Virtualization Deployment
   Unit(VDU).

   A VNFD also include a list of connection points, each of which
   describes an external interface exposed by this VNF. Furthermore,
   connection points should be attached to a Virtual Link upon VNF
   initialization. This procedure is attained by ''leafref'' to a template
   of Virtual Link Descriptor (VLD).

   VNFI describes the instantiation operation of a specific VNFD. A
   ''leafref'' was used to reference a VNFD in the data model for VNFI.



5. Data Model of Virtualization Deployment Unit (VDU)

   VDU models the deployment and operational behavior of a subset of a
   VNF instance, or the entire VNF instance if it was not componentized
   in subsets.

   It specifies various resource requirements, such as CPU, memory,
   storage and etc. It can also specify the VNF operating behaviors,
   which could be embedded in scripts when the VNF instance is
   initialized, terminated or shut down.


                       Expires January 4,2015                 [Page 4]

Internet-Draft             NFV Data Models                   July 2014


5.1. VDU Module Structure

   module: ietf-vdus

      +--rw vdus

         +--rw vdu* [id]

            +--rw id                 yang:uuid

            +--rw instance_num?      string

            +--rw vm_image?          string

            +--rw resource

            |  +--rw cpu

            |  |  +--rw vCPU_num?    uint32

            |  |  +--rw vCPU_spec* [name]

            |  |     +--rw name           string

            |  |     +--rw description?   string

            |  |     +--rw value?         uint32

            |  +--rw memory

            |  |  +--rw memory_size?   uint32

            |  |  +--rw memory_spec* [name]

            |  |     +--rw name           string

            |  |     +--rw description?   string

            |  |     +--rw value?         uint32

            |  +--rw disk

            |  |  +--rw disk_size?   uint32

            |  |  +--rw disk_KQI* [name]

            |  |     +--rw name           string


                       Expires January 4,2015                 [Page 5]

Internet-Draft             NFV Data Models                   July 2014


            |  |     +--rw description?   string

            |  |     +--rw value?         uint32

            |  +--rw vnic

            |     +--rw vnic_num?   uint32

            +--rw workflow_script

               +--rw init?                string

               +--rw terminate?           string

               +--rw graceful-shutdown?   string



5.2. VDU YANG Module

   module ietf-vdus {

       namespace "urn:ietf:params:xml:ns:yang:ietf-vdus";

       prefix "vdu";

       import ietf-yang-types {

         prefix yang;

       }



        organization "";

        contact "TBD";



       description

        "This module defines a VNF Deployment Unit.



         Copyright (c) 2014 IETF Trust and the persons


                       Expires January 4,2015                 [Page 6]

Internet-Draft             NFV Data Models                   July 2014


         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).



         This version of this YANG module is part of RFC XXXX; see

         the RFC itself for full legal notices.";



       revision "2014-05-18" {

         description

           "Initial version";

         reference

           "RFC XXXX";

       }



       container vdus {

         description

           "Vdus used in a vnfd";



         list vdu {


                       Expires January 4,2015                 [Page 7]

Internet-Draft             NFV Data Models                   July 2014


           key id;

           description

             "Vdu key";



           leaf id {

             type yang:uuid;

             description

               "VDU ID";

           }



           leaf instance-num {

             type uint16;

             description

               "Number of instances of the said VDU which shall be
   instantiated";

           }



           leaf vm-image {

             type string;

             description

               "Reference to a VM image";

           }



           container resource {



                       Expires January 4,2015                 [Page 8]

Internet-Draft             NFV Data Models                   July 2014


             description

               "The required resource";



             container cpu {

               description

                 "The required computation resource";



               leaf vCPU_num {

                 type uint32;

                 description

                   "The number of virtual CPU units";

               }



               list vCPU-spec {

                 key "name";



                 description

                   "Processor characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of vCPU-spec";

                 }


                       Expires January 4,2015                 [Page 9]

Internet-Draft             NFV Data Models                   July 2014




                 leaf description {

                   type string;

                   description

                     "Description of vCPU-spec";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of vCPU-spec";

                 }

               }

             }



             container memory {

               description

                 "The required memory resource";



               leaf memory_size {

                 type uint32;

                 description

                   "Memory size, unit:MBytes";

               }


                       Expires January 4,2015                [Page 10]

Internet-Draft             NFV Data Models                   July 2014




               list memory-spec {

                 key name;



                 description

                   "Memory characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of memory-spec";

                 }



                 leaf description {

                   type string;

                   description

                     "Description of memory-spec";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of memory-spec";

                 }


                       Expires January 4,2015                [Page 11]

Internet-Draft             NFV Data Models                   July 2014


               }

             }



             container disk {

               description

                 "The required storage resource";



               leaf disk-size {

                 type uint32;

                 description

                   "Virtual storage size, unit:MBytes";

               }



               list disk-KQI {

                 key name;



                 description

                   "Storage characteristics in the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of disk-KQI";

                 }


                       Expires January 4,2015                [Page 12]

Internet-Draft             NFV Data Models                   July 2014




                 leaf description {

                   type string;

                   description

                     "Description of disk-KQI";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of disk-KQI";

                 }

               }

             }



             container vnic {

               description

                 "Virtual network interface card (vnic) resource";



               leaf vnic-num {

                 type uint32;

                 description

                   "The total number of virtual vnic";

               }


                       Expires January 4,2015                [Page 13]

Internet-Draft             NFV Data Models                   July 2014


             }

           }



           container workflow-script {

             description

               "VDU workflow script";



             leaf init {

               type string;

               description

                 "VDU initialization script";

             }



             leaf terminate {

               type string;

               description

                 "VDU termination script";

             }

             leaf graceful-shutdown {

               type string;

               description

                 "VDU graceful shutdown script";

             }

           }


                       Expires January 4,2015                [Page 14]

Internet-Draft             NFV Data Models                   July 2014


         }

       }

   }



6. Data Model of Deployment Flavor

   A deployment flavor is a template that describes a specific
   deployment of a Virtualised Network Function supporting required
   capacity and performance.

   It refers to a set of VDUs which provide the deployment and
   operational behavior.



6.1. Deployment Flavor Module Structure

   module: ietf-dfs

      +--rw dfs

         +--rw df* [df-id]

            +--rw df-id    yang:uuid

            +--rw license-info    string

            +--rw pricing_info    string

            +--rw vdu* [vdu-id]

               +--rw vdu-id    leafref



6.2. Deployment Flavor YANG Module

   module ietf-dfs {



       namespace "urn:ietf:params:xml:ns:yang:ietf-dfs";



                       Expires January 4,2015                [Page 15]

Internet-Draft             NFV Data Models                   July 2014


       prefix "df";



       import ietf-yang-types {

         prefix yang;

       }



       import ietf-vdus {

         prefix vdu;

       }



        organization "";

        contact "TBD";



       description

        "This module defines a deployment flavor descriptor.



         Copyright (c) 2014 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


                       Expires January 4,2015                [Page 16]

Internet-Draft             NFV Data Models                   July 2014


         (http://trustee.ietf.org/license-info).



         This version of this YANG module is part of RFC XXXX; see

         the RFC itself for full legal notices.";



       revision "2014-05-18" {

         description

           "Initial version";

         reference "RFC XXXX";

       }



       container dfs {

         description

           "Deployment Flavors";



         list df {

           key df-id;

           description

             "Deployment flavor key";



           leaf df-id {

             type yang:uuid;

             description

               "Deployment flavor ID";


                       Expires January 4,2015                [Page 17]

Internet-Draft             NFV Data Models                   July 2014


           }



           leaf license-info {

             type string;

             description

               "Software licenses required for supporting this
   deployment flavour.";

           }



           leaf pricing_info {

             type string;

             description

               "Pricing information required for supporting this
   deployment flavour.";

           }



           list vdu {

             key vdu-id;

             description

               "Refer to a VDU used for this deployment flavor";



             leaf vdu-id {

               type leafref {

                 path "/vdu:vdus/vdu:vdu/vdu:id";

               }


                       Expires January 4,2015                [Page 18]

Internet-Draft             NFV Data Models                   July 2014


               description

                 "Vdu ID";

             }

           }

         }

       }

   }



7. Data Model of Virtual Link Descriptor (VLD)

   VLD describes the resource requirements that are needed for a
   virtualization link.



7.1. VLD Module Structure

   module: ietf-vlds

      +--rw vlds

         +--rw vld* [id]

            +--rw id                    yang:uuid

            +--rw vendor?               string

            +--rw version?              string

            +--rw number_of_enpoints?   uint32

            +--rw virtual-link-type?    enumeration



7.2. VLD YANG Module

   module ietf-vlds {



                       Expires January 4,2015                [Page 19]

Internet-Draft             NFV Data Models                   July 2014




       namespace "urn:ietf:params:xml:ns:yang:ietf-vlds";

       prefix "vld";



       import ietf-yang-types {

         prefix yang;

       }



        organization "";

        contact "TBD";



       description

        "This module defines a virtual link descritor.



         Copyright (c) 2014 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).




                       Expires January 4,2015                [Page 20]

Internet-Draft             NFV Data Models                   July 2014


         This version of this YANG module is part of RFC XXXX; see

         the RFC itself for full legal notices.";



       revision "2014-05-18" {

         description

           "Initial version";

         reference "RFC XXXX";

       }



       container vlds {

         description

           "Virtual Link Descriptors";



         list vld {

           key id;

           description

             "VLD Key";



           leaf id {

             type yang:uuid;

             description

               "VLD ID";

           }




                       Expires January 4,2015                [Page 21]

Internet-Draft             NFV Data Models                   July 2014


           leaf vendor {

             type string;

             description

               "Vendor generating this VLD";

           }



           leaf version {

             type string;

             description

               "Version of this VLD";

           }



           leaf number-of-endpoints {

             type uint32;

             description

               "Number of endpoints available on this VLD";

           }



           leaf virtual-link-type {

             type enumeration {

               enum "ELine";

               enum "ELAN";

               enum "ETree";

             }


                       Expires January 4,2015                [Page 22]

Internet-Draft             NFV Data Models                   July 2014


             description

               "Virtual network link type mandated by the VNF vendor
   between two or more connection points";

           }

         }

       }

   }

8. Data Model of Virtual Network Function Descriptor (VNFD)

   VNFD describes the deployment and operational behavior of a VNF.

   The main objective of VNF modeling will include:

   - Basic VNF attributes: The core information, such as VNF name,
   version, function description.

   - Deployment attributes: It specifies the infrastructure resource
   requirements in case of  VNF deployment, such as virtual CPU, memory
   and disk requirements. It usually refer to a set of deployment flavor,
   which provide the detail requirement. It also specifies the workflow
   during the VNF initialization, termination, graceful shutdown.

   - Interface attributes: It represents a set of external interfaces
   exposed by this VNF, Here Connection-point was used as a term to
   express those interfaces, Each connection-point will refer to a
   virtualization link.

   - Automatic scale policy attributes: It represents automatic scale
   policy meta data, which include the criteria parameter,action-type,
   and etc.



8.1. VNFD Module Structure

   module: ietf-vnfds

      +--rw vnfds

         +--rw vnfd* [id]



                       Expires January 4,2015                [Page 23]

Internet-Draft             NFV Data Models                   July 2014


            +--rw name?                  string

            +--rw id                     yang:uuid

            +--rw description?           string

            +--rw vendor?                string

            +--rw descriptor-version?    string

            +--rw version?               string

            +--rw deploy-flavors

            |  +--rw deploy-flavor-id*   leafref

            +--rw workflow_script

            |  +--rw init?                string

            |  +--rw terminate?           string

            |  +--rw graceful-shutdown?   string

            +--rw connection-points

            |  +--rw connection-point* [id]

            |     +--rw id      yang:uuid

            |     +--rw name?   string

            +--rw monitor-paras

            |  +--rw name*   enumeration

            +--rw auto-scale-policies

               +--rw auto-scale-policy* [policy-id]

                  +--rw policy-id    string

                  +--rw criteria

                  |  +--rw criterion* [monitor-para-name]

                  |     +--rw monitor-para-name    leafref


                       Expires January 4,2015                [Page 24]

Internet-Draft             NFV Data Models                   July 2014


                  |     +--rw expression?          enumeration

                  +--rw actions

                     +--rw action* [action-name]

                        +--rw action-name    enumeration



8.2. VNFD YANG Module



   module ietf-vnfds {



       namespace "urn:ietf:params:xml:ns:yang:ietf-vnfds";

       prefix "vnfd";



       import ietf-yang-types {

         prefix yang;

       }



       import ietf-dfs {

         prefix df;

       }



        organization "";

        contact "TBD";



       description


                       Expires January 4,2015                [Page 25]

Internet-Draft             NFV Data Models                   July 2014


        "This module defines a template for other YANG modules.



         Copyright (c) 2014 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).



         This version of this YANG module is part of RFC XXXX; see

         the RFC itself for full legal notices.";



       revision "2014-05-18" {

         description

           "Initial version";



         reference "RFC XXXX";

       }



       container vnfds {

         description


                       Expires January 4,2015                [Page 26]

Internet-Draft             NFV Data Models                   July 2014


           "vnfd configuration parameters.";



         list vnfd {

           key id;

           description

             "The list of vnfd configuration parameters.";



           leaf name {

             type string;

             description

               "The name of the vnf descriptor.";

           }



           leaf id {

             type yang:uuid;

             description

               "The UUID of the vnf descriptor.";

           }



           leaf description {

             type string;

             description

               "The description of the vnf descriptor.";

           }


                       Expires January 4,2015                [Page 27]

Internet-Draft             NFV Data Models                   July 2014




           leaf vendor {

             type string;

             description

               "The vendor of the vnf descriptor.";

           }



           leaf descriptor-version {

             type string;

             description

               "The version of the vnf descriptor.";

           }



           leaf version {

             type string;

             description

               "The version of the vnf software.";

           }



           container deploy-flavors {

             description

               "Deployment Flavor configuration parameters.";



             leaf-list deploy-flavor-id {


                       Expires January 4,2015                [Page 28]

Internet-Draft             NFV Data Models                   July 2014


               type leafref {

                 path "/df:dfs/df:df/df:df-id";

               }

               description

                 "The list of deployment flavor configuration
   parameters.";

             }

           }



           container workflow_script {

             description

               "The VDU workflow including the functional script. ";



             leaf init {

               type string;

               description

                 "The VDU initiation script.";

             }



             leaf terminate {

               type string;

               description

                 "The VDU termination script.";

             }



                       Expires January 4,2015                [Page 29]

Internet-Draft             NFV Data Models                   July 2014


             leaf graceful-shutdown {

               type string;

               description

                 "The VDU graceful shutdown script.";

             }

           }



           container connection-points {

             description

               "It describes an external interface exposed by this VNF
   enabling connection with a VL..";



             list connection-point {

               key id;

               description

                 "The connection point exposed by the VNF enabling
   connection with a VLD.";



               leaf id {

                 type yang:uuid;

                 description

                   "The unique identifier of connection point.";

               }



               leaf name {


                       Expires January 4,2015                [Page 30]

Internet-Draft             NFV Data Models                   July 2014


                 type string;

                 description

                   "The name of connection point.";

               }

             }

           }



           container monitor-paras {

             description

               "Monitoring parameter, which can be tracked for this
   VNF.";



             leaf-list name {

               type enumeration {

                 enum cpu-utili;

                 enum memory-consumption;

                 enum bandwidth-consumption;

                 enum calls-per-secon;

                 enum number-of-subscriber;

                 enum num-of-rules;

                 enum flows-per-second;

               }

               description

                 "A list of monitor parameters.";



                       Expires January 4,2015                [Page 31]

Internet-Draft             NFV Data Models                   July 2014


             }

           }



           container auto-scale-policies {

             description

               "The policy of automatic scale in/out.";



             list auto-scale-policy {

               key policy-id;

               description

                 "The unique identifier of automatic scale policy.";



               leaf policy-id {

                   type string;

               }



               container criteria {

                 description

                   "The auto-scale criteria parameter. Note that the
   default logical operation among these rules is 'OR'.";

                 list criterion {

                   key monitor-para-name;

                   description

                     "A list of rules";



                       Expires January 4,2015                [Page 32]

Internet-Draft             NFV Data Models                   July 2014




                   leaf monitor-para-name {

                     type leafref {

                       path "../../../../../monitor-paras/name";

                     }

                     description

                       "The name of monitor parameter.";

                   }



                   leaf expression {

                     type enumeration {

                       enum "eq";

                       enum "neq";

                       enum "lt";    //less than

                       enum "gt";    //greater than

                     }

                     description

                       "The logical criteria expression.";

                   }

                 }

               }



               container actions {

                 description


                       Expires January 4,2015                [Page 33]

Internet-Draft             NFV Data Models                   July 2014


                   "Action configuration parameters.";



                 list action {

                   key action-name;

                   description

                     "A list of configured action.";



                   leaf action-name {

                     type enumeration {

                       enum "scale-out";

                       enum "scale-in";

                     }

                     description

                       "The type of action.";

                   }

                 }

               }

             }

           }

         }

       }

   }






                       Expires January 4,2015                [Page 34]

Internet-Draft             NFV Data Models                   July 2014


9. Data Model of Virtual Network Function instantiation(VNFI)

   VNFI describes the instantiate operation of a specific VNFD.

   It specifies the identifier of VNFD being instantiating, and
   corresponding parameters, such as deployment flavor, a number of
   interfaces exposed outside the VNF, automatic scale policy data.



5.1. VNF instance Module Structure

   The data model for VNF instance has the following structure:



   module: ietf-vnfis

      +--rw vnfis

         +--rw vnfi* [id]

            +--rw id                      uint32

            +--rw vnfd-id?                leafref

            +--rw flavor-id?              leafref

            +--rw external-attachments

            |  +--rw external-attachment* [connection-point-id]

            |     +--rw connection-point-id    leafref

            |     +--rw virtual-link-id?    leafref

            +--rw scale-policy {auto-scale}?

            |  +--rw policy-id?          leafref

            |  +--rw criteria-value*     uint32

            |  +--rw target-flavor-id?   leafref

5.2. VNF instance YANG Module

   module ietf-vnfis {


                       Expires January 4,2015                [Page 35]

Internet-Draft             NFV Data Models                   July 2014


       namespace "urn:ietf:params:xml:ns:yang:ietf-vnfis";

       prefix "vnfi";

       import ietf-vnfds {

         prefix vnfd;

       }



       import ietf-vlds {

         prefix vld;

       }



       import ietf-dfs {

         prefix df;

       }



        organization "";

        contact "TBD";



       description

        "This module contains YANG definitions for managing VNF instance.



         Copyright (c) 2014 IETF Trust and the persons

         identified as authors of the code.  All rights reserved.



         Redistribution and use in source and binary forms, with or


                       Expires January 4,2015                [Page 36]

Internet-Draft             NFV Data Models                   July 2014


         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).



         This version of this YANG module is part of RFC XXXX; see

         the RFC itself for full legal notices.";



       revision "2014-05-18" {

         description

           "Initial version";

         reference "RFC XXXX";

       }



       // feature statements

       feature auto-scale {

         description "Support auto scaling.";

       }



       container vnfis {

         description

           "VNF instances configuration parameters.";




                       Expires January 4,2015                [Page 37]

Internet-Draft             NFV Data Models                   July 2014


         list vnfi {

           key id;

           description

             "The list of VNF instance configuration parameters.";



           leaf id {

             type uint32;

             description

               "the id of VNF instance.";

           }



           leaf vnfd-id {

             type leafref {

               path "/vnfd:vnfds/vnfd:vnfd/vnfd:id";

             }

             description "VNF descriptor ID";

           }



           leaf flavor-id {

             type leafref {

               path "/vnfd:vnfds/vnfd:vnfd/vnfd:deploy-
   flavors/vnfd:deploy-flavor-id";

             }

             description "VNF flavor ID";



                       Expires January 4,2015                [Page 38]

Internet-Draft             NFV Data Models                   July 2014


           }



           container external-attachments {



             list external-attachment {

               key connection-point-id;

               leaf connection-point-id {

                 type leafref {

                   path "/vnfd:vnfds/vnfd:vnfd/vnfd:connection-
   points/vnfd:connection-point/vnfd:id";

                 }

                 description "VNF connection point ID to be attached
   with a virtual link.";

               }

               leaf virtual-link-id {

                 type leafref {

                   path "/vld:vlds/vld:vld/vld:id";

                 }

                 description "virtual link ID attached to the VNF
   connection point";

               }

             }

           }



           container scale-policy {



                       Expires January 4,2015                [Page 39]

Internet-Draft             NFV Data Models                   July 2014


             if-feature auto-scale;



             leaf policy-id {

               type leafref {

                 path "/vnfd:vnfds/vnfd:vnfd/vnfd:auto-scale-
   policies/vnfd:auto-scale-policy/vnfd:policy-id";

               }

               description

                 "auto scaling policy ID";

             }



             leaf-list criteria-value {

               type uint32;

               description

                 "A set of criteria value in the policy rules";

             }



             leaf target-flavor-id {

               type leafref {

                 path "/df:dfs/df:df/df:df-id";

               }

               description

                 "The target deployment flavor ID";

             }



                       Expires January 4,2015                [Page 40]

Internet-Draft             NFV Data Models                   July 2014


           }

         }

       }

   }



10.  Security Considerations

   TBD.

11.  IANA Considerations

   TBD.


12.  References

12.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

12.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-MAN001 (work in
             progress), May 2014

   Xu, W., Jiang, Y., Zhou, C., draft-xjz-nfv-model-problem-statement-00,
             Work in progress, 2013







                       Expires January 4,2015                [Page 41]

Internet-Draft             NFV Data Models                   July 2014


13.   Contributors

   The authors would like to thank Mehmet Ersue who made a contribution
   to this document.

   Mehmet Ersue
   mehmet.ersue@nsn.com


14.  Acknowledgments

   The authors would like to thank ETSI for the production of the NFV
   documents which is the basis of this draft. And we thank Mehmet Ensue
   and Min Zha for their valuable discussions.


































                       Expires January 4,2015                [Page 42]

Internet-Draft             NFV Data Models                   July 2014


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 January 4,2015                [Page 43]