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";
}
- import rw-project {
- prefix "rw-project";
+ import osm-project {
+ prefix "osm-project";
}
revision 2017-02-08 {
}
} // 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;
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;
description
"Project to which this belongs";
type leafref {
- path "/rw-project:project/rw-project:name";
+ path "/osm-project:project/osm-project:name";
}
}
}