X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fplugins%2Fyang%2Fmano-types.yang;h=ab234be4b77d8ba7aab5b0967f14ae7a66ea1122;hb=68d0d9584a9cacc929067cd1cb5019d395f98fe6;hp=e7c7d3d613015b372a453ddd044dace5df6407d7;hpb=f6914d7d8e3153683139096480a86afec5b07302;p=osm%2FSO.git diff --git a/models/plugins/yang/mano-types.yang b/models/plugins/yang/mano-types.yang index e7c7d3d6..ab234be4 100644 --- a/models/plugins/yang/mano-types.yang +++ b/models/plugins/yang/mano-types.yang @@ -40,6 +40,14 @@ module mano-types "Derived from earlier versions of base YANG files"; } + typedef package-type { + description "Type of descriptor being on-boarded"; + type enumeration { + enum NSD; + enum VNFD; + } + } + typedef parameter-data-type { type enumeration { enum STRING; @@ -92,13 +100,13 @@ module mano-types } leaf parameter-pool { - description "NSD Parameter pool name to use for this paramter"; + description "NSD parameter pool name to use for this parameter"; type string; } leaf read-only { description - "The value should be greyed out by the UI. + "The value should be dimmed by the UI. Only applies to parameters with default values."; type boolean; } @@ -111,15 +119,95 @@ module mano-types } } + grouping ui-primitive-group { + list parameter-group { + description + "Grouping of parameters which are logically grouped in UI"; + key "name"; + + leaf name { + description + "Name of the parameter group"; + type string; + } + + list parameter { + description + "List of parameters for the service primitive."; + key "name"; + uses manotypes:primitive-parameter; + } + + leaf mandatory { + description "Is this parameter group mandatory"; + type boolean; + default true; + } + } + } + + grouping image-properties { + leaf image { + description + "Image name for the software image. + If the image name is found within the VNF package it will + be uploaded to all VIM accounts during onboarding process. + Otherwise, the image must be added to the VIM account with + the same name as entered here. + "; + type string; + } + + leaf image-checksum { + description + "Image md5sum for the software image. + The md5sum, if provided, along with the image name uniquely + identifies an image uploaded to the CAL. + "; + type string; + } + } + grouping initial-config { + leaf seq { + description + "Sequence number for the configuration primitive."; + type uint64; + } + + leaf name { + description + "Name of the configuration primitive."; + type string; + mandatory "true"; + } + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + + list parameter { + key "name"; + leaf name { + type string; + } + + leaf value { + description "Value of the configuration primitive."; + type string; + } + } + } grouping vnf-configuration { container vnf-configuration { rwpb:msg-new VnfConfiguration; description - "Information regarding the VNF configuration - is captured here. Note that if the NS contains - multiple instances of the same VNF, each instance - of the VNF may have different configuration"; + "Information about the VNF configuration. Note: + If the NS contains multiple instances of the + same VNF, each instance could have a different + configuration."; choice config-method { description @@ -139,7 +227,7 @@ module mano-types leaf protocol { description - "Protocol to use for netconf (e.g. ssh)"; + "Protocol to use for NETCONF such as ssh"; type enumeration { enum None; enum ssh; @@ -148,7 +236,7 @@ module mano-types leaf port { description - "Port for the netconf server."; + "Port for the NETCONF server."; type inet:port-number; } } @@ -170,7 +258,8 @@ module mano-types description "Use custom script for configuring the VNF. This script is executed in the context of - Orchestrator."; + Orchestrator (The same system and environment + as the Launchpad)."; container script { leaf script-type { description @@ -205,7 +294,7 @@ module mano-types leaf username { description - "username for configuration."; + "User name for configuration."; type string; } @@ -218,14 +307,14 @@ module mano-types container config-attributes { description - "Miscelaneous input parameters to be considered + "Miscellaneous input parameters to be considered while processing the NSD to apply configuration"; leaf config-priority { description - "Configuration priority - order of confgiration - to be applied to each VNF in this NS, - low number gets precedence over high number"; + "Configuration priority - order of configuration + to be applied to each VNF in this NS ,A low + number takes precedence over a high number"; type uint64; } @@ -260,30 +349,9 @@ module mano-types list initial-config-primitive { rwpb:msg-new InitialConfigPrimitive; description - "Initial set of configuration primitives."; + "Initial 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; - } - - list parameter { - key "name"; - leaf name { - type string; - } - - leaf value { - type string; - } - } + uses initial-config; } leaf config-template { @@ -336,7 +404,7 @@ module mano-types typedef api-type { description - "Type of API to fetch monitoring params"; + "Type of API to fetch monitoring parameters"; type enumeration { enum HTTP; @@ -350,8 +418,8 @@ module mano-types "The method to extract a value from a JSON response NAMEKEY - Use the name as the key for a non-nested value. - JSONPATH - Use jsonpath-rw implemenation to extract a value. - OBJECTPATH - Use objectpath implemenation to extract a value."; + JSONPATH - Use jsonpath-rw implementation to extract a value. + OBJECTPATH - Use objectpath implementation to extract a value."; type enumeration { enum NAMEKEY; enum JSONPATH; @@ -375,7 +443,7 @@ module mano-types VPORT: Virtual Port // VNIC_ADDR: Virtual NIC Address // PNIC_ADDR: Physical NIC Address - // PPORT: Phsical Port."; + // PPORT: Physical Port."; type enumeration { enum VPORT; @@ -581,7 +649,7 @@ module mano-types container vm-flavor { leaf vcpu-count { description - "Number of vcpus for the VM."; + "Number of VCPUs for the VM."; type uint16; } @@ -728,13 +796,13 @@ module mano-types leaf om-cpu-model-string { - description "Openmano CPU model string"; + description "OpenMANO CPU model string"; type string; } list om-cpu-feature { key "feature"; - description "List of openmano CPU features"; + description "List of OpenMANO CPU features"; leaf feature { description "CPU feature"; type string; @@ -756,12 +824,12 @@ module mano-types "Memory page allocation size. If a VM requires hugepages, it should choose LARGE or SIZE_2MB or SIZE_1GB. If the VM prefers hugepages it - should chose PREFER_LARGE. + should choose PREFER_LARGE. LARGE : Require hugepages (either 2MB or 1GB) SMALL : Doesn't require hugepages SIZE_2MB : Requires 2MB hugepages SIZE_1GB : Requires 1GB hugepages - PREFER_LARGE : Application perfers hugepages"; + PREFER_LARGE : Application prefers hugepages"; type enumeration { enum LARGE; enum SMALL; @@ -829,8 +897,8 @@ module mano-types } choice numa-policy { - case numa-unware { - leaf numa-unware { + case numa-unaware { + leaf numa-unaware { type empty; } } @@ -838,20 +906,21 @@ module mano-types case numa-aware { container numa-node-policy { description - "This policy defines numa topology of the + "This policy defines NUMA topology of the guest. Specifically identifies if the guest - should be run on a host with one numa - node or multiple numa nodes. As an example - a guest may want 8 vcpus and 4 GB of - memory. But may want the vcpus and memory - distributed across multiple numa nodes. - The NUMA node 1 may run with 6 vcpus and - 3GB, and NUMA node 2 may run with 2 vcpus - and 1GB."; + should be run on a host with one NUMA + node or multiple NUMA nodes. As an example + a guest might need 8 VCPUs and 4 GB of + memory. However, it might need the VCPUs + and memory distributed across multiple + NUMA nodes. In this scenario, NUMA node + 1 could run with 6 VCPUs and 3GB, and + NUMA node 2 could run with 2 VCPUs and + 1GB."; leaf node-cnt { description - "The number of numa nodes to expose to the VM."; + "The number of NUMA nodes to expose to the VM."; type uint16; } @@ -863,7 +932,7 @@ module mano-types strictly from the memory attached to the NUMA node. PREFERRED : The memory should be allocated - perferentially from the memory + preferentially from the memory attached to the NUMA node"; type enumeration { enum STRICT; @@ -883,12 +952,12 @@ module mano-types list vcpu { key "id"; description - "List of vcpus to allocate on - this numa node."; + "List of VCPUs to allocate on + this NUMA node."; leaf id { type uint64; - description "List of vcpus ids to allocate on - this numa node"; + description "List of VCPUs ids to allocate on + this NUMA node"; } } @@ -901,7 +970,7 @@ module mano-types choice om-numa-type { description - "Openmano Numa type selection"; + "OpenMANO Numa type selection"; case cores { leaf num-cores { @@ -917,7 +986,7 @@ module mano-types list paired-thread-ids { description - "List of thread pairs to use in case of paired-thread numa"; + "List of thread pairs to use in case of paired-thread NUMA"; max-elements 16; key thread-a; @@ -950,14 +1019,19 @@ module mano-types description "Container for the provider network."; leaf physical-network { description - "Name of the phsyical network on which the provider + "Name of the physical network on which the provider network is built."; type string; } leaf overlay-type { description - "Type of the overlay network."; + "Type of the overlay network. + LOCAL - Provider network implemented in a single compute node + FLAT - Provider network shared by all tenants + VLAN - Provider network implemented using 802.1Q tagging + VXLAN - Provider networks implemented using RFC 7348 + GRE - Provider networks implemented using GRE tunnels"; type enumeration { enum LOCAL; enum FLAT; @@ -968,110 +1042,8 @@ module mano-types } leaf segmentation_id { description - "Segmentation ID"; - type uint32; - } - } - } - - grouping ns-service-primitive { - list service-primitive { - description - "Network service level service primitives."; - - key "name"; - - leaf name { - description - "Name of the service primitive."; - type string; - } - - list parameter { - description - "List of parameters for the service primitive."; - - key "name"; - uses manotypes:primitive-parameter; - } - - list parameter-group { - description - "Grouping of parameters which are logically grouped in UI"; - key "name"; - - leaf name { - description - "Name of the parameter group"; - type string; - } - - list parameter { - description - "List of parameters for the service primitive."; - key "name"; - uses manotypes:primitive-parameter; - } - - leaf mandatory { - description "Is this parameter group mandatory"; - type boolean; - default true; - } - } - - list vnf-primitive-group { - description - "List of service primitives grouped by VNF."; - - key "member-vnf-index-ref"; - leaf member-vnf-index-ref { - description - "Reference to member-vnf within constituent-vnfds"; - type uint64; - } - - leaf vnfd-id-ref { - description - "A reference to a vnfd. This is a - leafref to path: - ../../../../nsd:constituent-vnfd - + [nsd:id = current()/../nsd:id-ref] - + /nsd:vnfd-id-ref - NOTE: An issue with confd is preventing the - use of xpath. Seems to be an issue with leafref - to leafref, whose target is in a different module. - Once that is resovled this will switched to use - leafref"; - - type string; - } - - leaf vnfd-name { - description - "Name of the VNFD"; - type string; - } - - list primitive { - key "index"; - - leaf index { - description "Index of this primitive"; + "ID of segregated virtual networks"; type uint32; - } - - leaf name { - description "Name of the primitive in the VNF primitive "; - type string; - } - } - } - - leaf user-defined-script { - description - "A user defined script."; - type string; } } } @@ -1108,7 +1080,7 @@ module mano-types type string; } - leaf polling_interval_secs { + leaf polling-interval-secs { description "The HTTP polling interval in seconds"; type uint8; default 2; @@ -1116,8 +1088,8 @@ module mano-types leaf method { description - "This is the method to be performed at the uri. - GET by default for action"; + "Method that the URI should perform. + Deafult action is GET."; type manotypes:http-method; default "GET"; @@ -1140,7 +1112,7 @@ module mano-types list monitoring-param { description - "List of monitoring parameters at the NS level"; + "List of monitoring parameters at the network service level"; key id; leaf id { type string; @@ -1203,16 +1175,18 @@ module mano-types } leaf group-tag { - description "A simple tag to group monitoring parameters"; + description "A tag to group monitoring parameters"; type string; } leaf widget-type { + description "Defines the UI Display variant of measured counters."; type manotypes:widget-type; } leaf units { + description "Measured Counter Units (e.g., Packets, Kbps, Mbps, etc.)"; type string; } } @@ -1231,7 +1205,7 @@ module mano-types } leaf max-value { description - "Maxium value for the parameter"; + "Maximum value for the parameter"; type uint64; } } @@ -1290,7 +1264,7 @@ module mano-types } leaf group-tag { - description "A simple tag to group control parameters"; + description "A tag to group control parameters"; type string; } @@ -1302,7 +1276,7 @@ module mano-types leaf max-value { description - "Maxium value for the parameter"; + "Maximum value for the parameter"; type uint64; } @@ -1328,15 +1302,15 @@ module mano-types leaf url { description - "This is the URL where to perform the operation"; + "This is the URL where the operation should be performed."; type inet:uri; } leaf method { description - "This is the method to be performed at the uri. - POST by default for action"; + "Method that the URI should perform. + Default Action is POST"; type manotypes:http-method; default "POST"; @@ -1372,7 +1346,7 @@ module mano-types } leaf group-tag { - description "A simple tag to group monitoring parameter"; + description "A tag to group monitoring parameter"; type string; } @@ -1402,7 +1376,7 @@ module mano-types } grouping input-parameter { - description ""; + description "List of input parameters that can be specified when instantiating a network service."; list input-parameter { description @@ -1413,7 +1387,7 @@ module mano-types leaf xpath { description - "A an xpath that specfies which element in a descriptor is to be + "An xpath that specfies which element in a descriptor is to be modified."; type string; } @@ -1446,7 +1420,7 @@ module mano-types } leaf default-value { - description " A default value for this input parameter"; + description "/nsd:nsd-catalog/nsd:nsd/nsd:vendor"; type string; } } @@ -1652,7 +1626,7 @@ module mano-types } typedef alarm-severity-type { - description "An indication of the importance or ugency of the alarm"; + description "An indication of the importance or urgency of the alarm"; type enumeration { enum LOW; enum MODERATE; @@ -1671,8 +1645,8 @@ module mano-types typedef alarm-statistic-type { description - "The type of statistic to used to measure a metric to determine - threshold crossing for an alarm."; + "Statistic type to use to determine threshold crossing + for an alarm."; type enumeration { enum AVERAGE; enum MINIMUM; @@ -1684,9 +1658,9 @@ module mano-types typedef alarm-operation-type { description - "The relational operator used to define whether an alarm should be - triggered when, say, the metric statistic goes above or below a - specified value."; + "The relational operator used to define whether an alarm + should be triggered in certain scenarios, such as if the + metric statistic goes above or below a specified value."; type enumeration { enum GE; // greater than or equal enum LE; // less than or equal @@ -1699,8 +1673,7 @@ module mano-types grouping alarm { leaf alarm-id { description - "This field is reserved for the identifier assigned by the cloud - provider"; + "This field is reserved for the identifier assigned by the VIM provider"; type string; } @@ -1711,7 +1684,7 @@ module mano-types } leaf description { - description "A string containing a description of this alarm"; + description "A description of this alarm"; type string; } @@ -1763,7 +1736,7 @@ module mano-types } leaf severity { - description "A measure of the important or urgency of the alarm"; + description "A measure of the importance or urgency of the alarm"; type alarm-severity-type; } @@ -1779,9 +1752,9 @@ module mano-types leaf operation { description - "The relational operator that defines whether the alarm should be - triggered when the metric statistic is, say, above or below the - specified threshold value."; + "The relational operator used to define whether an alarm should be + triggered in certain scenarios, such as if the metric statistic + goes above or below a specified value."; type alarm-operation-type; } @@ -1804,17 +1777,14 @@ module mano-types leaf evaluations { description - "This is the number of samples of the metric statistic used to - evaluate threshold crossing. Each sample or evaluation is equal to - the metric statistic obtained for a given period. This can be used - to mitigate spikes in the metric that may skew the statistic of - interest."; + "Defines the length of time (seconds) in which metric data are + collected in order to evaluate the chosen statistic."; type uint32; } } typedef cloud-account-type { - description "cloud account type"; + description "VIM account type"; type enumeration { enum aws; enum cloudsim; @@ -1833,9 +1803,13 @@ module mano-types key "metadata-key"; leaf metadata-key { + description + "Name of the additional information attached to the host-aggregate"; type string; } leaf metadata-value { + description + "Value of the corresponding metadata-key"; type string; } } @@ -2002,5 +1976,88 @@ module mano-types uses ip-profile-info; } } - + + grouping config-file { + description "Grouping for files needed to be mounted into an additional drive"; + list config-file { + description + "List of configuration files to be written on an additional drive"; + key "source"; + leaf source { + description "Name of the configuration file"; + type string; + } + leaf dest { + description "Full path of the destination in the guest"; + type string; + } + } + } + + grouping supplemental-boot-data { + description "Grouping for custom vim data"; + container supplemental-boot-data { + uses manotypes:config-file; + leaf boot-data-drive { + description "Some VIMs implement additional drives to host config-files or meta-data"; + type boolean; + default false; + } + } + } + + grouping volume-info { + description "Grouping for Volume-info"; + + leaf description { + description "Description for Volume"; + type string; + } + + leaf size { + description "Size of disk in GB"; + type uint64; + } + + choice volume-source { + description + "Defines the source of the volume. Possible options are + 1. Ephemeral -- Empty disk + 2. Image -- Refer to image to be used for volume + 3. Volume -- Reference of pre-existing volume to be used + "; + + case ephemeral { + leaf ephemeral { + type empty; + } + } + + case image { + uses image-properties; + } + + } + + leaf device-bus { + description "Type of disk-bus on which this disk is exposed to guest"; + type enumeration { + enum ide; + enum usb; + enum virtio; + enum scsi; + } + } + + leaf device-type { + description "The type of device as exposed to guest"; + type enumeration { + enum disk; + enum cdrom; + enum floppy; + enum lun; + } + } + + } }