BUG 363 -- use yang files from IM repo
[osm/SO.git] / models / plugins / yang / vnfr.yang
diff --git a/models/plugins/yang/vnfr.yang b/models/plugins/yang/vnfr.yang
deleted file mode 100644 (file)
index b669f97..0000000
+++ /dev/null
@@ -1,609 +0,0 @@
-
-/*
- *
- *   Copyright 2016-2017 RIFT.IO Inc
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *   limitations under the License.
- *
- *
- */
-
-module vnfr
-{
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:vnfr";
-  prefix "vnfr";
-
-  import mano-types {
-    prefix "manotypes";
-  }
-
-  import vnfd-base {
-    prefix "vnfd-base";
-  }
-
-  import project-vnfd {
-    prefix "project-vnfd";
-  }
-
-  import project-nsd {
-    prefix "project-nsd";
-  }
-
-  import vlr {
-    prefix "vlr";
-  }
-
-  import ietf-yang-types {
-    prefix "yang";
-  }
-
-  import ietf-inet-types {
-    prefix "inet";
-  }
-
-  import rw-project {
-    prefix "rw-project";
-  }
-
-  revision 2017-02-28 {
-    description
-      "Update model to support projects.";
-  }
-
-  revision 2015-09-10 {
-    description
-      "Initial revision. This YANG file defines
-       the Virtual Network Function Record (VNFR)";
-    reference
-      "Derived from earlier versions of base YANG files";
-  }
-
-  typedef vdu-operational-status {
-    type enumeration {
-      enum init;
-      enum vm-init-phase;
-      enum vm-alloc-pending;
-      enum running;
-      enum upgrading;
-      enum terminate;
-      enum vl-terminate-phase;
-      enum terminated;
-      enum failed;
-    }
-  }
-
-  typedef vnf-operational-status {
-    type enumeration {
-      enum pre-init;
-      enum init;
-      enum vl-init-phase;
-      enum vm-init-phase;
-      enum running;
-      enum upgrading;   // Experimental
-      enum terminate;
-      enum vm-terminate-phase;
-      enum vl-terminate-phase;
-      enum terminated;
-      enum failed;
-    }
-  }
-
-  grouping placement-group-info {
-    list placement-groups-info {
-      description
-          "
-          Placement groups to which this VDU belongs and its
-          cloud construct
-          ";
-      key "name";
-      uses manotypes:placement-group-info;
-      uses manotypes:placement-group-input;
-    }
-  }
-
-  grouping virtual-interface {
-    container virtual-interface {
-      description
-          "Container for the virtual interface properties";
-
-      leaf type {
-        description
-            "Specifies the type of virtual interface
-             between VM and host.
-             VIRTIO          : Use the traditional VIRTIO interface.
-             PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
-             SR-IOV          : Use SR-IOV interface.";
-        type enumeration {
-          enum VIRTIO;
-          enum PCI-PASSTHROUGH;
-          enum SR-IOV;
-        }
-      }
-
-      leaf bandwidth {
-        description
-            "Aggregate bandwidth of the NIC.";
-        type uint64;
-      }
-
-      leaf ovs-offload {
-        description
-            "Defines if the NIC supports OVS offload.
-             MANDATORY : OVS offload support in the NIC is mandatory.
-             PREFERRED : OVS offload support in the NIC is preferred.";
-        type enumeration {
-          enum MANDATORY;
-          enum PREFERRED;
-        }
-      }
-
-      leaf vendor-id {
-        description
-            "Specifies the vendor specific id for
-             the device. This is used when a NIC from
-             specific HW vendor is required.";
-        type string;
-      }
-
-      leaf datapath-library {
-        description
-            "Specifies the name and version of the datapath
-             library the NIC is expected to support.";
-        type string;
-      }
-
-      leaf provider-network-name {
-        description
-            "Name of the provider network to which this
-             NIC is attached.";
-        type string;
-      }
-    }
-  }
-
-  grouping associated-virtual-cps {
-    list virtual-cps {
-      key "name";
-      uses vnfd-base:common-connection-point;
-
-      leaf ip-address {
-        description
-            "IP address assigned to the virtual connection point";
-        type inet:ip-address;
-      }
-
-      leaf mac-address {
-        description
-            "MAC address assigned to the virtual connection point";
-        type string;
-      }
-
-      leaf connection-point-id {
-        description "VIM identifier for connection point";
-        type string;
-      }
-    }
-  }
-
-  augment "/rw-project:project" {
-    container vnfr-catalog {
-      config false;
-      list vnfr {
-        description
-          "Virtual Network Function Record (VNFR).";
-        key "id";
-        unique "name";
-
-        leaf id {
-          description "Identifier for the VNFR.";
-          type yang:uuid;
-        }
-
-        leaf nsr-id-ref {
-          description
-            "NS instance identifier.
-             This is a leafref /nsr:ns-instance-config/nsr:nsr/nsr:id";
-          type yang:uuid;
-        }
-
-        leaf member-vnf-index-ref {
-          description "Reference to member VNF index in Network service.";
-          type leafref {
-            path "../../../project-nsd:nsd-catalog/project-nsd:nsd/project-nsd:constituent-vnfd/project-nsd:member-vnf-index";
-          }
-        }
-
-        leaf dashboard-url {
-          description "Dashboard URL";
-          type inet:uri;
-        }
-
-        leaf name {
-          description "VNFR name.";
-          type string;
-        }
-
-        leaf short-name {
-          description "VNFR short name.";
-          type string;
-        }
-
-        leaf vendor {
-          description "Vendor of the VNFR.";
-          type string;
-        }
-
-        leaf description {
-          description "Description of the VNFR.";
-          type string;
-        }
-
-        leaf version {
-          description "Version of the VNFR";
-          type string;
-        }
-
-        leaf create-time {
-          description
-            "Creation timestamp of this Virtual Network
-          Function.  The timestamp is expressed as
-          seconds since unix epoch - 1970-01-01T00:00:00Z";
-
-          type uint32;
-        }
-
-        leaf uptime {
-          description
-            "Active period of this Virtual Network Function.
-          Uptime is expressed in seconds";
-
-          type uint32;
-        }
-
-        container vnfd {
-          description "VNF descriptor used to instantiate this VNF";
-          uses vnfd-base:vnfd-descriptor;
-        }
-
-        leaf vnfd-ref {
-          description "Reference to VNFD";
-          type leafref {
-            path "../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
-          }
-        }
-
-        // Use parameters provided here to configure this VNF
-      container vnf-configuration {
-        uses manotypes:vca-configuration;
-      }
-
-        // Mainly used by Mon-params & dashboard url
-        container mgmt-interface {
-          leaf ip-address {
-            type inet:ip-address;
-          }
-
-          leaf port {
-            type inet:port-number;
-          }
-
-          container ssh-key {
-            description "SSH key pair used for this VNF";
-            leaf public-key {
-              description "Public key configured on this VNF";
-              type string;
-            }
-
-            leaf private-key-file {
-              description "Path to the private key file";
-              type string;
-            }
-          }
-        }
-
-        list internal-vlr {
-          key "vlr-ref";
-
-          leaf vlr-ref {
-            description "Reference to a VLR record in the VLR catalog";
-            type leafref {
-              path "../../../../vlr:vlr-catalog/vlr:vlr/vlr:id";
-            }
-          }
-
-          leaf-list internal-connection-point-ref {
-            type leafref {
-              path "../../vdur/internal-connection-point/id";
-            }
-          }
-        }
-
-        list connection-point {
-          key "name";
-          description
-            "List for external connection points. Each VNF has one
-             or more external connection points. As the name
-             implies that external connection points are used for
-             connecting the VNF to other VNFs or to external networks.
-             Each VNF exposes these connection points to the
-             orchestrator. The orchestrator can construct network
-             services by connecting the connection points between
-             different VNFs. The NFVO will use VLDs and VNFFGs at
-             the network service level to construct network services.";
-
-          uses vnfd-base:common-connection-point;
-
-          leaf vlr-ref {
-            description
-              "Reference to the VLR associated with this connection point";
-            type  leafref {
-              path "../../../../vlr:vlr-catalog/vlr:vlr/vlr:id";
-            }
-          }
-
-          leaf ip-address {
-            description
-              "IP address assigned to the external connection point";
-            type inet:ip-address;
-          }
-
-          leaf mac-address {
-            description
-              "MAC address assigned to the external connection point";
-            // type inet:mac-address;
-            type string;
-          }
-
-          leaf connection-point-id {
-            type string;
-          }
-
-          uses associated-virtual-cps;
-        }
-
-        list vdur {
-          description "List of Virtual Deployment Units";
-          key "id";
-          unique "name";
-
-          leaf id {
-            description "Unique id for the VDU";
-            type yang:uuid;
-          }
-
-          leaf name {
-            description "name of the instantiated VDUR";
-            type string;
-          }
-
-          leaf unique-short-name {
-            description "Short Unique name of the VDU
-                  This will be of the format NSR name-ShortnedString-VDUname
-                  NSR name and VDU name shall be constrained to 10 characters";
-            type string;
-          }
-
-          leaf vdu-id-ref {
-            type leafref {
-              path "../../vnfd/vdu/id";
-            }
-          }
-
-          leaf vim-id {
-            description "Allocated VM resource id";
-            type string;
-          }
-
-          leaf flavor-id {
-            description "VIM assigned flavor id";
-            type string;
-          }
-
-          leaf image-id {
-            description "VIM assigned image id";
-            type string;
-          }
-
-          leaf management-ip {
-            description "Management IP address";
-            type inet:ip-address;
-          }
-
-          leaf vm-management-ip {
-            description "VM Private Management IP address";
-            type inet:ip-address;
-          }
-
-          leaf console-url {
-            description "Console URL for this VDU, if available";
-            type inet:uri;
-          }
-
-          uses manotypes:vm-flavor;
-          uses manotypes:guest-epa;
-          uses manotypes:vswitch-epa;
-          uses manotypes:hypervisor-epa;
-          uses manotypes:host-epa;
-
-          uses manotypes:supplemental-boot-data;
-
-        container vdu-configuration {
-          uses manotypes:vca-configuration;
-        }
-
-          list volumes {
-            key "name";
-
-            leaf name {
-              description "Name of the disk-volumes, e.g. vda, vdb etc";
-              type string;
-            }
-
-            leaf volume-id {
-              description "VIM assigned volume id";
-              type string;
-            }
-
-            uses manotypes:volume-info;
-          }
-
-          list internal-connection-point {
-            key "id";
-            description
-              "List for internal connection points. Each VNFC
-               has zero or more internal connection points.
-               Internal connection points are used for connecting
-               the VNF components internal to the VNF. If a VNF
-               has only one VNFC, it may not have any internal
-               connection points.";
-
-            uses vnfd-base:common-connection-point;
-
-            leaf ip-address {
-              description
-                "IP address assigned to the internal connection point";
-              type inet:ip-address;
-            }
-
-            leaf mac-address {
-              description
-                "MAC address assigned to the internal connection point";
-              // type inet:mac-address;
-              type string;
-            }
-
-            leaf connection-point-id {
-              type string;
-            }
-
-            uses associated-virtual-cps;
-          }
-
-        list interface {
-          description
-              "List of interfaces (internal and external) for the VNF";
-          key name;
-
-          leaf name {
-            description
-                "Name of the interface. Note that this
-                name has only local significance to the VDU.";
-            type string;
-          }
-
-          leaf position {
-            description
-                "Explicit Position of the interface within the list";
-            type uint32;
-          }
-
-          leaf type {
-            description
-                "Type of the Interface";
-
-            type vnfd-base:interface-type;
-
-            default "EXTERNAL";
-          }
-          choice connection-point-type {
-            case internal {
-              leaf internal-connection-point-ref {
-                description
-                    "Leaf Ref to the particular internal connection point";
-                type leafref {
-                  path "../../internal-connection-point/id";
-                }
-              }
-            }
-            case external {
-              leaf external-connection-point-ref {
-                description
-                    "Leaf Ref to the particular external connection point";
-                type leafref {
-                  path "../../../connection-point/name";
-                }
-              }
-            }
-          }
-          uses virtual-interface;
-        }
-
-         leaf operational-status {
-            description
-              "The operational status of the VDU
-                init                : The VDU has just started.
-                vm-init-phase       : The VDUs in the VNF is being created in VIM.
-                vm-alloc-pending    : The  VM alloc is pending in VIM
-                running             : The VDU is active in VM
-                upgrading           : The VDU is being upgraded (EXPERIMENTAL)
-                terminate           : The VDU is being terminated
-                vm-terminate-phase  : The VDU in the VNF is being terminated in VIM.
-                terminated          : The VDU is in the terminated state.
-                failed              : The VDU  instantiation failed.
-              ";
-            type vdu-operational-status;
-         }
-
-          uses placement-group-info;
-        }
-
-        uses manotypes:monitoring-param;
-
-        leaf operational-status {
-          description
-            "The operational status of the VNFR instance
-              pre-init            : The VNF before Input Param Substitution.
-              init                : The VNF has just started.
-              vl-init-phase       : The internal VLs in the VNF are being instantiated.
-              vm-init-phase       : The VMs for VDUs in the VNF are being instantiated.
-              running             : The VNF is in running state.
-              terminate           : The VNF is being terminated.
-              vm-terminate-phase  : The VMs in the VNF are being terminated.
-              vl-terminate-phase  : The internal VLs in the VNF are being terminated.
-              terminated          : The VNF is in the terminated state.
-              failed              : The VNF instantiation failed
-            ";
-          type vnf-operational-status;
-        }
-
-        leaf config-status {
-          description
-            "The configuration status of the NS instance
-            configuring: At least one of the VNFs in this instance is in configuring state
-            configured:  All the VNFs in this NS instance are configured or config-not-needed state
-          ";
-
-          type enumeration {
-            enum configuring {
-              value 1;
-            }
-            enum configured {
-              value 2;
-            }
-            enum failed {
-              value 3;
-            }
-            enum config-not-needed {
-              value 4;
-            }
-          }
-        }
-        uses placement-group-info;
-
-        container cloud-config {
-          uses manotypes:cloud-config;
-        }
-      }
-    }
-  }
-}