Revert "Re-enabling NS primitives, config-primitive over service-primitive, clean-up"
[osm/IM.git] / models / yang / mano-types.yang
index 7f50c1a..7784d5c 100644 (file)
 
 module mano-types
 {
 
 module mano-types
 {
-  namespace "urn:ietf:params:xml:ns:yang:nfvo:mano-types";
+  namespace "urn:etsi:osm:yang:mano-types";
   prefix "manotypes";
 
   import ietf-inet-types {
     prefix "inet";
   }
 
   prefix "manotypes";
 
   import ietf-inet-types {
     prefix "inet";
   }
 
-  import rw-project {
-    prefix "rw-project";
+  import osm-project {
+    prefix "osm-project";
   }
 
   revision 2017-02-08 {
   }
 
   revision 2017-02-08 {
@@ -78,6 +78,12 @@ module mano-types
         type string;
       }
 
         type string;
       }
 
+      leaf data-type {
+        description
+            "Data type associated with the value.";
+        type manotypes:parameter-data-type;
+      }
+
       leaf value {
         description
             "Value associated with the name.";
       leaf value {
         description
             "Value associated with the name.";
@@ -251,13 +257,7 @@ module mano-types
     }
   } // END - grouping vca-metrics
 
     }
   } // END - grouping vca-metrics
 
-  grouping vca-configuration {
-    description
-        "Information about the VNF or VDU configuration. Note:
-         If the NS contains multiple instances of the
-         same VNF or VDU, each instance could have a different
-         configuration.";
-
+  grouping configuration-method {
     choice config-method {
       description
           "Defines the configuration method for the VNF or VDU.";
     choice config-method {
       description
           "Defines the configuration method for the VNF or VDU.";
@@ -295,6 +295,25 @@ module mano-types
         }
       }
     }
         }
       }
     }
+  }
+
+  grouping ns-configuration {
+    description
+        "Information about NS configuration. Note:
+         In the future this should be equivalent to vca-configuration
+         grouping.";
+
+    uses manotypes:configuration-method;
+  }
+
+  grouping vca-configuration {
+    description
+        "Information about the VNF or VDU configuration. Note:
+         If the NS contains multiple instances of the
+         same VNF or VDU, each instance could have a different
+         configuration.";
+
+    uses manotypes:configuration-method;
 
     list config-primitive {
       description
 
     list config-primitive {
       description
@@ -352,6 +371,29 @@ module mano-types
       }
     }
 
       }
     }
 
+    list terminate-config-primitive {
+      description
+        "Terminate set of configuration primitives.";
+      key "seq";
+      leaf seq {
+        description
+          "Sequence number for the configuration primitive.";
+        type uint64;
+      }
+      leaf name {
+        description
+          "Name of the configuration primitive.";
+        type string;
+      }
+
+      uses primitive-parameter-value;
+
+      leaf user-defined-script {
+        description
+          "A user defined script.";
+        type string;
+      }
+    }
     uses manotypes:vca-metrics;
 
   } // END - grouping vca-configuration
     uses manotypes:vca-metrics;
 
   } // END - grouping vca-configuration
@@ -650,7 +692,8 @@ module mano-types
       enum disk_write_bytes;
       enum packets_sent;
       enum packets_received;
       enum disk_write_bytes;
       enum packets_sent;
       enum packets_received;
-      enum packets_dropped;
+      enum packets_in_dropped;
+      enum packets_out_dropped;
     }
   }
 
     }
   }
 
@@ -849,7 +892,6 @@ module mano-types
         }
       }
 
         }
       }
 
-
       leaf om-cpu-model-string {
         description "OpenMANO CPU model string";
         type string;
       leaf om-cpu-model-string {
         description "OpenMANO CPU model string";
         type string;
@@ -863,6 +905,7 @@ module mano-types
           type string;
         }
       }
           type string;
         }
       }
+
     }
   }
 
     }
   }
 
@@ -894,47 +937,76 @@ module mano-types
         }
       }
 
         }
       }
 
-      leaf cpu-pinning-policy {
-        description
-            "CPU pinning policy describes association
-             between virtual CPUs in guest and the
-             physical CPUs in the host.
-             DEDICATED : Virtual CPUs are pinned to
-                         physical CPUs
-             SHARED    : Multiple VMs may share the
-                         same physical CPUs.
-             ANY       : Any policy is acceptable for the VM";
-        type enumeration {
-          enum DEDICATED;
-          enum SHARED;
-          enum ANY;
+      choice cpu-policy {
+        case cpu-pinning {
+          leaf cpu-pinning-policy {
+            description
+                "CPU pinning policy describes association
+                 between virtual CPUs in guest and the
+                 physical CPUs in the host.
+                 DEDICATED : Virtual CPUs are pinned to
+                             physical CPUs
+                 SHARED    : Multiple VMs may share the
+                             same physical CPUs.
+                 ANY       : Any policy is acceptable for the VM";
+            type enumeration {
+              enum DEDICATED;
+              enum SHARED;
+              enum ANY;
+            }
+            default "ANY";
+          }
+          leaf cpu-thread-pinning-policy {
+              description
+                "CPU thread pinning policy describes how to
+                 place the guest CPUs when the host supports
+                 hyper threads:
+                 AVOID   : Avoids placing a guest on a host
+                           with threads.
+                 SEPARATE: Places vCPUs on separate cores,
+                           and avoids placing two vCPUs on
+                           two threads of same core.
+                 ISOLATE : Places each vCPU on a different core,
+                           and places no vCPUs from a different
+                           guest on the same core.
+                 PREFER  : Attempts to place vCPUs on threads
+                           of the same core.";
+            type enumeration {
+              enum AVOID;
+              enum SEPARATE;
+              enum ISOLATE;
+              enum PREFER;
+            }
+          }
         }
         }
-        default "ANY";
-      }
 
 
-      leaf cpu-thread-pinning-policy {
-          description
-            "CPU thread pinning policy describes how to
-             place the guest CPUs when the host supports
-             hyper threads:
-             AVOID   : Avoids placing a guest on a host
-                       with threads.
-             SEPARATE: Places vCPUs on separate cores,
-                       and avoids placing two vCPUs on
-                       two threads of same core.
-             ISOLATE : Places each vCPU on a different core,
-                       and places no vCPUs from a different
-                       guest on the same core.
-             PREFER  : Attempts to place vCPUs on threads
-                       of the same core.";
-        type enumeration {
-          enum AVOID;
-          enum SEPARATE;
-          enum ISOLATE;
-          enum PREFER;
+        case cpu-quota {
+          container cpu-quota {
+              description "CPU quota describes the CPU resource allocation policy.
+                           Limit and Reserve values are defined in MHz";
+              uses allocation-properties;
+          }
         }
       }
 
         }
       }
 
+      container mem-quota {
+          description "Memory quota describes the memory resource allocation policy.
+                       Limit and Reserve values are defined in MB";
+          uses allocation-properties;
+      }
+
+      container disk-io-quota {
+          description "Disk IO quota describes the disk IO operations resource allocation policy.
+                       Limit and Reserve values are defined in IOPS";
+          uses allocation-properties;
+      }
+
+      container vif-quota {
+          description "Virtual interfaces quota describes the virtual interface bandwidth resource allocation policy.
+                       Limit and Reserve values are defined in Mbps";
+          uses allocation-properties;
+      }
+
       list pcie-device {
         description
             "List of pcie passthrough devices.";
       list pcie-device {
         description
             "List of pcie passthrough devices.";
@@ -1069,6 +1141,27 @@ module mano-types
     }
   }
 
     }
   }
 
+  grouping allocation-properties {
+    leaf limit {
+      description "Defines the maximum allocation. The value 0 indicates that usage is not limited.
+                   This parameter ensures that the instance never uses more than the defined amount of resource.";
+      type uint64;
+    }
+
+    leaf reserve {
+      description "Defines the guaranteed minimum reservation.
+                   If needed, the machine will definitely get allocated the reserved amount of resources.";
+      type uint64;
+    }
+
+    leaf shares {
+      description "Number of shares allocated.
+                   Specifies the proportional weighted share for the domain.
+                   If this element is omitted, the service defaults to the OS provided defaults";
+      type uint64;
+    }
+  }
+
   grouping provider-network {
     container provider-network {
       description "Container for the provider network.";
   grouping provider-network {
     container provider-network {
       description "Container for the provider network.";
@@ -1141,7 +1234,7 @@ module mano-types
         leaf member-vnf-index-ref {
           description
               "Reference to member-vnf within constituent-vnfds";
         leaf member-vnf-index-ref {
           description
               "Reference to member-vnf within constituent-vnfds";
-          type uint64;
+          type string;
         }
 
         leaf vnfd-id-ref {
         }
 
         leaf vnfd-id-ref {
@@ -1780,14 +1873,7 @@ module mano-types
     }
   }
 
     }
   }
 
-  grouping alarm {
-    leaf alarm-id {
-      description
-          "This field is reserved for the identifier assigned by the VIM provider";
-
-      type string;
-    }
-
+  grouping alarm-properties {
     leaf name {
       description "A human readable string to identify the alarm";
       type string;
     leaf name {
       description "A human readable string to identify the alarm";
       type string;
@@ -1850,11 +1936,6 @@ module mano-types
       type alarm-severity-type;
     }
 
       type alarm-severity-type;
     }
 
-    leaf metric {
-      description "The metric to be tracked by this alarm.";
-      type alarm-metric-type;
-    }
-
     leaf statistic {
       description "The type of metric statistic that is tracked by this alarm";
       type alarm-statistic-type;
     leaf statistic {
       description "The type of metric statistic that is tracked by this alarm";
       type alarm-statistic-type;
@@ -2156,7 +2237,7 @@ module mano-types
   grouping supplemental-boot-data {
     description "Grouping for custom vim data";
     container supplemental-boot-data {
   grouping supplemental-boot-data {
     description "Grouping for custom vim data";
     container supplemental-boot-data {
-      uses manotypes:config-file;
+//    uses manotypes:config-file;
       leaf boot-data-drive {
         description "Some VIMs implement additional drives to host config-files or meta-data";
         type boolean;
       leaf boot-data-drive {
         description "Some VIMs implement additional drives to host config-files or meta-data";
         type boolean;
@@ -2224,7 +2305,7 @@ module mano-types
       description
         "Project to which this belongs";
       type leafref {
       description
         "Project to which this belongs";
       type leafref {
-        path "/rw-project:project/rw-project:name";
+        path "/osm-project:project/osm-project:name";
       }
     }
   }
       }
     }
   }