X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fplugins%2Fyang%2Fnsd.yang;h=7adc2f25b1cf576352d990c60cfbeada44eaf071;hb=fed61ffa7e384fcbd6cc10e3c13fadb5a72c5434;hp=aa55f34c96bb574f2a8c532a1026c16b5f701789;hpb=f8b1c530725ad1c0f49868575a567627c879c4af;p=osm%2FSO.git diff --git a/models/plugins/yang/nsd.yang b/models/plugins/yang/nsd.yang index aa55f34c..7adc2f25 100644 --- a/models/plugins/yang/nsd.yang +++ b/models/plugins/yang/nsd.yang @@ -1,6 +1,6 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -119,43 +119,11 @@ module nsd } 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; } } - grouping ns-initial-config-primitive { - 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 { - type string; - } - } - } - grouping nsd-descriptor { leaf id { description "Identifier for the NSD."; @@ -169,7 +137,7 @@ module nsd } leaf short-name { - description "NSD short name."; + description "Short name to appear as label in the UI"; type string; } @@ -180,8 +148,8 @@ module nsd leaf logo { description - "File path for the vendor specific logo. For example icons/mylogo.png. - The logo should be part of the network service"; + "File path for the vendor-specific logo. For example, icons/mylogo.png. + The logo should be part of the network service"; type string; } @@ -198,16 +166,11 @@ module nsd list connection-point { description "List for external connection points. - Each NS has one or more external connection - points. As the name implies that external - connection points are used for connecting - the NS to other NS or to external networks. - Each NS exposes these connection points to - the orchestrator. The orchestrator can - construct network service chains by - connecting the connection points between - different NS."; - + Each network service (NS) has one or more external connection + points that connect the NS to other NSs or to external networks. + Each NS exposes connection points to the orchestrator, which can + construct network service chains by connecting the connection + points between different NSs."; key "name"; leaf name { description @@ -222,12 +185,12 @@ module nsd } } - /* Still having issues modelling this, + /* Model Limitations, see the comments under vnfd-connection-point-ref */ list vld { description - "List of Virtual Link Descriptors."; + "List of Virtual Link Descriptors (VLDs)."; key "id"; @@ -245,7 +208,7 @@ module nsd leaf short-name { description - "Short name for VLD for UI"; + "Short name to appear as label in the UI"; type string; } @@ -283,7 +246,7 @@ module nsd list vnfd-connection-point-ref { description "A list of references to connection points."; - key "member-vnf-index-ref"; + key "member-vnf-index-ref vnfd-connection-point-ref"; leaf member-vnf-index-ref { description "Reference to member-vnf within constituent-vnfds"; @@ -294,17 +257,12 @@ module nsd 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; + "A reference to a VNFD"; + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + + "/vnfd-id-ref"; + } } leaf vnfd-connection-point-ref { @@ -321,7 +279,7 @@ module nsd uses manotypes:provider-network; leaf mgmt-network { - description "Flag indicating whether this network is a VIM management network"; + description "Flag indicating whether this network is a VIM management network"; type boolean; default false; } @@ -341,10 +299,11 @@ module nsd case vim-network-profile { leaf ip-profile-ref { description "Named reference to IP-profile object"; - type string; - } + type leafref { + path "../../ip-profiles/name"; + } + } } - } } @@ -358,8 +317,8 @@ module nsd leaf member-vnf-index { description "Identifier/index for the VNFD. This separate id - is required to ensure that multiple VNFs can be - part of single NS"; + is required so that multiple VNFs can be part of + single NS"; type uint64; } @@ -381,7 +340,7 @@ module nsd list scaling-group-descriptor { description - "scaling group descriptor within this network service. + "Scaling group descriptor within this network service. The scaling group defines a group of VNFs, and the ratio of VNFs in the network service that is used as target for scaling action"; @@ -418,7 +377,7 @@ module nsd leaf scale-in-operation-type { description - "Operation to be applied to check between scaling criterias to + "Operation to be applied to check between scaling criterias to check if the scale in threshold condition has been met. Defaults to AND"; type scaling-criteria-operation; @@ -427,9 +386,9 @@ module nsd leaf scale-out-operation-type { description - "Operation to be applied to check between scaling criterias to + "Operation to be applied to check between scaling criterias to check if the scale out threshold condition has been met. - Defauls to OR"; + Defaults to OR"; type scaling-criteria-operation; default OR; } @@ -444,7 +403,7 @@ module nsd leaf cooldown-time { description "The duration after a scaling-in/scaling-out action has been - triggered, for which there will be no further optional"; + triggered, for which there will be no further scaling activity"; type uint32; mandatory true; } @@ -456,23 +415,26 @@ module nsd key "name"; leaf name { + description "Name of the scaling criteria"; type string; } leaf scale-in-threshold { description - "Value below which scale-in requests are generated"; + "Value below which scale-in requests are generated + (depends on monitoring parameters)"; type uint64; } leaf scale-out-threshold { description - "Value above which scale-out requests are generated"; + "Value above which scale-out requests are generated + (depends on monitoring parameters)"; type uint64; } leaf ns-monitoring-param-ref { - description + description "Reference to the NS level monitoring parameter that is aggregated"; type leafref { @@ -487,7 +449,7 @@ module nsd key "member-vnf-index-ref"; leaf member-vnf-index-ref { - description "member VNF index of this member VNF"; + description "Member VNF index of this member VNF"; type leafref { path "../../../constituent-vnfd/member-vnf-index"; } @@ -495,9 +457,9 @@ module nsd leaf count { description - "count of this member VNF within this scaling group. - The count allows to define the number of instances - when a scaling action targets this scaling group"; + "Count of this member VNF within this scaling group. + The count defines the number of instances when a + scaling action targets this scaling group."; type uint32; default 1; } @@ -505,19 +467,20 @@ module nsd leaf min-instance-count { description - "Minimum instances of the scaling group which are allowed. - These instances are created by default when the network service - is instantiated."; + "Minimum number of instances of the scaling group that + are allowed in a single network service. These instances + are created by default when the network service is + instantiated."; type uint32; default 0; } leaf max-instance-count { description - "Maximum instances of this scaling group that are allowed - in a single network service. The network service scaling - will fail, when the number of service group instances - exceed the max-instance-count specified."; + "Maximum number of instances of this scaling group that + are allowed in a single network service. The network + service scaling fails when the number of service group + instances exceeds the max-instance-count specified."; type uint32; default 10; } @@ -527,7 +490,7 @@ module nsd key "trigger"; leaf trigger { - description "scaling trigger"; + description "Scaling trigger"; type scaling-trigger; } @@ -553,7 +516,7 @@ module nsd key "member-vnf-index-ref"; leaf member-vnf-index-ref { - description "member VNF index of this member VNF"; + description "Member VNF index of this member VNF"; type leafref { path "../../../constituent-vnfd/member-vnf-index"; } @@ -563,7 +526,9 @@ module nsd description "Identifier for the VNFD."; type leafref { - path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"; + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + + "/vnfd-id-ref"; } } } @@ -577,14 +542,14 @@ module nsd key vnf-source-ref; leaf vnf-source-ref { type leafref { - path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"; + path "../../constituent-vnfd/vnfd-id-ref"; } } leaf vnf-depends-on-ref { description - "Reference to VNF that sorce VNF depends."; + "Reference to VNF on which the source VNF depends."; type leafref { - path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:id"; + path "../../constituent-vnfd/vnfd-id-ref"; } } } @@ -609,7 +574,7 @@ module nsd leaf short-name { description - "Short name for VNFFGD for UI"; + "Short name to appear as label in the UI"; type string; } @@ -666,32 +631,22 @@ module nsd 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; + "A reference to a vnfd"; + type leafref { + path "../../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + + "/vnfd-id-ref"; + } } leaf vnfd-connection-point-ref { description - "A reference to a connection point name - in a vnfd. This is a leafref to path: - /vnfd:vnfd-catalog/vnfd:vnfd - + [vnfd:id = current()/../nsd:vnfd-id-ref] - + /vnfd:connection-point/vnfd:name - 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; + "A reference to a connection point name"; + type leafref { + path "/vnfd:vnfd-catalog/vnfd:vnfd" + + "[vnfd:id = current()/../vnfd-id-ref]/" + + "vnfd:connection-point/vnfd:name"; + } } } } //rsp @@ -731,32 +686,22 @@ module nsd 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; + "A reference to a VNFD"; + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + + "/vnfd-id-ref"; + } } leaf vnfd-connection-point-ref { description - "A reference to a connection point name - in a vnfd. This is a leafref to path: - /vnfd:vnfd-catalog/vnfd:vnfd - + [vnfd:id = current()/../nsd:vnfd-id-ref] - + /vnfd:connection-point/vnfd:name - 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; + "A reference to a connection point name"; + type leafref { + path "/vnfd:vnfd-catalog/vnfd:vnfd" + + "[vnfd:id = current()/../vnfd-id-ref]/" + + "vnfd:connection-point/vnfd:name"; + } } list match-attributes { @@ -773,7 +718,7 @@ module nsd leaf ip-proto { description - "IP Protocol."; + "Internet Protocol."; type uint8; } @@ -800,22 +745,23 @@ module nsd "Destination port number."; type inet:port-number; } - //TODO: Add more match criteria } //match-attributes } // classifier } // vnffgd list monitoring-param { description - "List of monitoring parameters from VNF's that should be + "List of monitoring parameters from VNFs that should be propogated up into NSR"; key "id"; leaf id { + description "Identifier for a monitoring parameter"; type string; } leaf name { + description "Name of the monitoring parameter"; type string; } @@ -825,22 +771,17 @@ module nsd list vnfd-monitoring-param { description "A list of VNFD monitoring params"; - key "vnfd-id-ref vnfd-monitoring-param-ref"; + key "member-vnf-index-ref vnfd-monitoring-param-ref"; 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 resolved this will switched to use - leafref"; + "A reference to a VNFD. This is a leafref"; - type yang:uuid; + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + + "/vnfd-id-ref"; + } } leaf vnfd-monitoring-param-ref { @@ -852,10 +793,12 @@ module nsd } } - leaf-list member-vnf-index-ref { - description - "Optional reference to member-vnf within constituent-vnfds"; - type uint64; + leaf member-vnf-index-ref { + description + "Mandatory reference to member-vnf within constituent-vnfds"; + type leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } } } } @@ -864,8 +807,8 @@ module nsd list parameter-pool { description - "Pool of parameter values which must be - pulled from during configuration"; + "Pool of parameter values from which to choose during + configuration."; key "name"; leaf name { @@ -876,7 +819,7 @@ module nsd container range { description - "Create a range of values to populate the pool with"; + "Create a range of values from which to populate the pool with"; leaf start-value { description @@ -894,7 +837,82 @@ module nsd } } - uses manotypes: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; + } + + uses manotypes:ui-primitive-group; + + 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 leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } + } + + leaf vnfd-id-ref { + description + "A reference to a VNFD. This is a leafref"; + + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref"; + } + } + + leaf vnfd-name { + description + "Name of the VNFD"; + type leafref { + path "/vnfd:vnfd-catalog/vnfd:vnfd" + + "[vnfd:id = current()/../vnfd-id-ref]" + + "/vnfd:name"; + } + } + + list primitive { + key "index"; + + leaf index { + description "Index of this primitive"; + 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; + } + } list initial-config-primitive { rwpb:msg-new NsdInitialConfigPrimitive; @@ -902,13 +920,13 @@ module nsd "Initial set of configuration primitives for NSD."; key "seq"; - uses ns-initial-config-primitive; + uses manotypes:initial-config; } list key-pair { key "name"; description "Used to configure the list of public keys to be injected as part - of ns instantiation"; + of NS instantiation"; leaf name { description "Name of this key pair"; @@ -938,7 +956,7 @@ module nsd list key-pair { key "name"; description "Used to configure the list of public keys to be injected as part - of ns instantiation"; + of NS instantiation"; leaf name { description "Name of this key pair";