Merge feature7106 56/7456/1
authortierno <alfonso.tiernosepulveda@telefonica.com>
Mon, 13 May 2019 10:11:11 +0000 (10:11 +0000)
committertierno <alfonso.tiernosepulveda@telefonica.com>
Mon, 13 May 2019 10:12:02 +0000 (10:12 +0000)
Change-Id: I2c20e43ec17701cb0a3f2f77e785f97bc3fc030c
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
1  2 
models/yang/mano-types.yang

@@@ -257,7 -257,13 +257,7 @@@ module mano-type
      }
    } // 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.";
          }
        }
      }
 +  }
 +
 +  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 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
          }
        }
  
        leaf om-cpu-model-string {
          description "OpenMANO CPU model string";
          type string;
            type string;
          }
        }
      }
    }
  
          }
        }
  
-       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.";
      }
    }
  
+   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 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;
        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;