diff --git a/example-data/nfv-vnf-pkg.xml b/example-data/nfv-vnfd.xml
similarity index 98%
rename from example-data/nfv-vnf-pkg.xml
rename to example-data/nfv-vnfd.xml
index 9f31cbc18d340c5679e36736b1a6b39e758364ef..7587240efcd281a762527e1b7fa1e6a49049ee9e 100644
--- a/example-data/nfv-vnf-pkg.xml
+++ b/example-data/nfv-vnfd.xml
@@ -1,4 +1,4 @@
-
+
ASA
My Company
My Company ASAv
@@ -87,4 +87,4 @@
single
-
+
diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index 729a2841e371e362ae967a1a9b745308816cabf1..1b0c9014750597ccfa1d1f3873b23a0ac3cf7aab 100644
--- a/example-data/nfv.xml
+++ b/example-data/nfv.xml
@@ -1,5 +1,5 @@
-
+
ASA
My Company
My Company ASAv
@@ -100,8 +100,8 @@
single
-
-
+
+
CSR
My Company
My Company CSR 1000v
@@ -202,8 +202,8 @@
single
-
-
+
+
firewall-nsd
ASA
@@ -233,8 +233,8 @@
-
-
+
+
service-chain-1
ASA
CSR
@@ -483,8 +483,8 @@
-
-
+
+
service-chain-2
firewall-nsd
CSR
@@ -570,13 +570,13 @@
-
-
+
+
physical-dpi
1.0
outside
ethernet
-
+
diff --git a/run-test.sh b/run-test.sh
index 241379e40b0731567eddf71707db517b570707a6..555e80cd701191efdb99129ad1b3c2d7bcf54b74 100755
--- a/run-test.sh
+++ b/run-test.sh
@@ -11,7 +11,7 @@ CONFD_OPTS="--fail-on-warnings"
CONFD_OPTS=""
echo "Testing compilations of pkg."
-confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-pkg.fxs etsi-nfv-pkg.yang
+confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-vnfd.fxs etsi-nfv-vnfd.yang
echo "Testing compilations of descriptors."
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-descriptors.fxs etsi-nfv-descriptors.yang
@@ -19,7 +19,7 @@ echo "Starting ConfD"
confd
echo "Loading Data for pkg"
-confd_load -l -m nfv-vnf-pkg.xml
+confd_load -l -m nfv-vnfd.xml
echo "Loading Data for descriptors"
confd_load -l -m nfv.xml
diff --git a/src/yang/etsi-nfv-descriptors.yang b/src/yang/etsi-nfv-descriptors.yang
index e2725a8b5efbadacb672dc7bcdb10a3a9a7a57e0..bdd46b5367f8a3abdb9c5ccc6b270eb2899844db 100644
--- a/src/yang/etsi-nfv-descriptors.yang
+++ b/src/yang/etsi-nfv-descriptors.yang
@@ -22,7 +22,7 @@ module etsi-nfv-descriptors {
}
container nfv {
- list vnfd {
+ list vnfds {
key "id";
description
"A VNF Descriptor (VNFD) is a deployment template which
@@ -35,7 +35,31 @@ module etsi-nfv-descriptors {
uses vnfd;
}
- uses nsd;
- uses pnfd;
+ list nsds {
+ key "id";
+
+ description
+ "The NSD information element is a deployment template whose
+ instances are used by the NFVO for the lifecycle
+ management of NSs.";
+ reference
+ "GS NFV-IFA014: Section 6.2.2, Network Service Descriptor
+ information element.";
+
+ uses nsd;
+ }
+
+ list pnfds {
+ key "id";
+
+ description
+ "The Pnfd information element is a deployment template
+ enabling on-boarding PNFs and referencing them from an
+ NSD. It focuses on connectivity aspects only.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element.";
+
+ uses pnfd;
+ }
}
}
diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang
index 60f99febf9704d317d90d1c6559b483aa4e39c6f..52b887f7a8a2db41753b91b7f66dc971d96cf56a 100644
--- a/src/yang/etsi-nfv-ns.yang
+++ b/src/yang/etsi-nfv-ns.yang
@@ -35,1541 +35,1551 @@ submodule etsi-nfv-ns {
grouping nsd {
- list nsd {
- key "id";
+ leaf id {
+ type string;
+ description
+ "Identifier of this NSD information element. It Globally
+ uniquely identifies an instance of the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
- leaf id {
- type string;
- description
- "Identifier of this NSD information element. It Globally
- uniquely identifies an instance of the NSD.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
- }
- leaf designer {
- type string;
- description
- "Identifies the designer of the NSD.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
- }
- leaf version {
- type string;
- description
- "Identifies the version of the NSD.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
- }
- leaf name {
- type string;
- description
- "Provides the human readable name of the NSD.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
- }
- leaf invariant-id {
- type string;
- description
- "Identifies an NSD in a version independent manner. This
- attribute is invariant across versions of the network
- service descriptor.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
+ leaf designer {
+ type string;
+ description
+ "Identifies the designer of the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
+
+ leaf version {
+ type string;
+ description
+ "Identifies the version of the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
+
+ leaf name {
+ type string;
+ description
+ "Provides the human readable name of the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
+
+ leaf invariant-id {
+ type string;
+ description
+ "Identifies an NSD in a version independent manner. This
+ attribute is invariant across versions of the network
+ service descriptor.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
+
+ leaf-list nested-nsd-id {
+ must ". != ../id";
+ type leafref {
+ path "../../nsds/id";
}
+ description
+ "References the NSD of a constituent nested NS.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
- leaf-list nested-nsd-id {
- must ". != ../id";
- type leafref {
- path "../../nsd/id";
- }
- description
- "References the NSD of a constituent nested NS.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
+ leaf-list vnfd-id {
+ type leafref {
+ path "../../vnfds/id";
}
+ description
+ "References the VNFD of a constituent VNF.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
- leaf-list vnfd-id {
- type leafref {
- path "../../vnfd/id";
- }
- description
- "References the VNFD of a constituent VNF.";
- reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
+ leaf-list pnfd-id {
+ type leafref {
+ path "../../pnfds/id";
}
+ description
+ "References the PNFD of a constituent PNF.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ }
+
+ list sapd {
+ key "id";
+ description
+ "Provides the descriptor of a service access point of the
+ network service.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
- leaf-list pnfd-id {
- type leafref {
- path "../../pnfd/id";
- }
+ leaf id {
+ type string;
description
- "References the PNFD of a constituent PNF.";
+ "Identifier of this Cpd information element.";
reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
+ "GS NFV IFA014: Section 6.6.3.1 Cpd information element";
}
- list sapd {
- key "id";
+ leaf address-assignment {
+ type boolean;
description
- "Provides the descriptor of a service access point of the
- network service.";
+ "Specify whether the SAP address assignment is under the
+ responsibility of management and orchestration functions
+ or not. If it is set to True, management and
+ orchestration functions are responsible for assigning
+ addresses to the access points instantiated from this
+ SAPD.";
reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
-
- leaf id {
- type string;
- description
- "Identifier of this Cpd information element.";
- reference
- "GS NFV IFA014: Section 6.6.3.1 Cpd information element";
- }
+ "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
+ }
- leaf address-assignment {
- type boolean;
+ choice cpd-or-virtual-link {
+ leaf virtual-link-desc {
+ type leafref {
+ path "../../virtual-link-desc/id";
+ }
description
- "Specify whether the SAP address assignment is under the
- responsibility of management and orchestration functions
- or not. If it is set to True, management and
- orchestration functions are responsible for assigning
- addresses to the access points instantiated from this
- SAPD.";
+ "References the descriptor of the NS VL instance to
+ which the SAP instantiated from this SAPD connects to.";
reference
"GS NFV IFA014: Section 6.2.3.2 Sapd information element";
}
- choice cpd-or-virtual-link {
- leaf virtual-link-desc {
- type leafref {
- path "../../virtual-link-desc/id";
- }
- description
- "References the descriptor of the NS VL instance to
- which the SAP instantiated from this SAPD connects to.";
- reference
- "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
- }
-
- choice associated-cpd-id {
- container vnf {
- leaf vnfd-id {
- mandatory true;
- type leafref {
- path "../../../../nfv:vnfd/nfv:id";
- }
- must "boolean(../../../vnfd-id[.=current()])";
+ choice associated-cpd-id {
+ container vnf {
+ leaf vnfd-id {
+ mandatory true;
+ type leafref {
+ path "../../../../nfv:vnfds/nfv:id";
}
+ must "boolean(../../../vnfd-id[.=current()])";
+ }
- leaf ext-cpd-id {
- mandatory true;
- type leafref {
- path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
- }
+ leaf ext-cpd-id {
+ mandatory true;
+ type leafref {
+ path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
}
}
+ }
- container pnf {
- leaf pnfd-id {
- mandatory true;
- type leafref {
- path "../../../../nfv:pnfd/nfv:id";
- }
- must "boolean(../pnfd-id[.=current()])";
+ container pnf {
+ leaf pnfd-id {
+ mandatory true;
+ type leafref {
+ path "../../../../nfv:pnfds/nfv:id";
}
+ must "boolean(../pnfd-id[.=current()])";
+ }
- leaf ext-cpd-id {
- mandatory true;
- type leafref {
- path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
- }
+ leaf ext-cpd-id {
+ mandatory true;
+ type leafref {
+ path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
}
}
- container ns {
- leaf nsd-id {
- mandatory true;
- type leafref {
- path "../../../../nfv:nsd/nfv:id";
- }
- must "boolean(../nsd-id[.=current()])";
+ }
+ container ns {
+ leaf nsd-id {
+ mandatory true;
+ type leafref {
+ path "../../../../nfv:nsds/nfv:id";
}
+ must "boolean(../nsd-id[.=current()])";
+ }
- leaf ext-cpd-id {
- mandatory true;
- type leafref {
- path "deref(../nsd-id)/../nfv:sapd/nfv:id";
- }
+ leaf ext-cpd-id {
+ mandatory true;
+ type leafref {
+ path "deref(../nsd-id)/../nfv:sapd/nfv:id";
}
}
}
}
}
+ }
+
+ list virtual-link-desc {
+ key "id";
+ description
+ "Provides the constituent VLDs.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+ leaf id {
+ type string;
+ description
+ "Identifier of the NsVirtualLinkDesc information element.
+ It uniquely identifies a VLD.";
+ reference
+ "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
+ information element";
+ }
- list virtual-link-desc {
+ uses connectivity-type;
+
+ list df {
key "id";
+
description
- "Provides the constituent VLDs.";
+ "The VirtualLinkDf information element specifies
+ properties for instantiating a VL according to a
+ specific flavour.";
reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element";
+
leaf id {
type string;
description
- "Identifier of the NsVirtualLinkDesc information element.
- It uniquely identifies a VLD.";
+ "Identifies this VirtualLinkDf information element
+ within a VLD.";
reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
+ "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element";
}
- uses connectivity-type;
-
- list df {
- key "id";
-
+ container qos {
+ presence "VL QoS parameters";
description
- "The VirtualLinkDf information element specifies
- properties for instantiating a VL according to a
- specific flavour.";
+ "The QoS information element specifies quality of
+ service parameters applicable to a VL.";
reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
+ "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element";
- leaf id {
- type string;
+ leaf latency {
+ mandatory true;
+ type uint32;
+ units "ms";
description
- "Identifies this VirtualLinkDf information element
- within a VLD.";
+ "Specifies the maximum latency in ms.";
reference
- "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
- information element";
+ "GS NFV IFA014: Section 6.5.6.2 QoS information
+ element";
}
- container qos {
- presence "VL QoS parameters";
+ leaf packet-delay-variation {
+ mandatory true;
+ type uint32;
+ units "ms";
description
- "The QoS information element specifies quality of
- service parameters applicable to a VL.";
+ "Specifies the maximum jitter in ms.";
reference
- "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
- information element";
-
- leaf latency {
- mandatory true;
- type uint32;
- units "ms";
- description
- "Specifies the maximum latency in ms.";
- reference
- "GS NFV IFA014: Section 6.5.6.2 QoS information
- element";
- }
-
- leaf packet-delay-variation {
- mandatory true;
- type uint32;
- units "ms";
- description
- "Specifies the maximum jitter in ms.";
- reference
- "GS NFV IFA014: Section 6.5.6.2 QoS information
- element";
- }
-
- leaf packet-loss-ratio {
- type decimal64 {
- fraction-digits "2";
- range "0..1.00";
- }
- description
- "Specifies the maximum packet loss ratio.";
- reference
- "GS NFV IFA014: Section 6.5.6.2 QoS information
- element";
- }
+ "GS NFV IFA014: Section 6.5.6.2 QoS information
+ element";
+ }
- leaf priority {
- type uint32;
- description
- "Specifies the priority level in case of
- congestion on the underlying physical links.";
- reference
- "GS NFV IFA014: Section 6.5.6.2 QoS information
- element";
+ leaf packet-loss-ratio {
+ type decimal64 {
+ fraction-digits "2";
+ range "0..1.00";
}
+ description
+ "Specifies the maximum packet loss ratio.";
+ reference
+ "GS NFV IFA014: Section 6.5.6.2 QoS information
+ element";
}
- leaf service-availability-level {
- type enumeration {
- enum "level-1";
- enum "level-2";
- enum "level-3";
- }
+ leaf priority {
+ type uint32;
description
- "Specifies one of the three levels defined in ETSI
- ETSI GS NFV-REL 001 [i.5]
- * Level 1.
- * Level 2.
- * Level 3.";
+ "Specifies the priority level in case of
+ congestion on the underlying physical links.";
reference
- "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
- information element";
+ "GS NFV IFA014: Section 6.5.6.2 QoS information
+ element";
}
}
- leaf test-access {
+ leaf service-availability-level {
type enumeration {
- enum none;
- enum passive-monitoring;
- enum active;
+ enum "level-1";
+ enum "level-2";
+ enum "level-3";
}
description
- "Specifies test access facilities expected on the VL.";
+ "Specifies one of the three levels defined in ETSI
+ ETSI GS NFV-REL 001 [i.5]
+ * Level 1.
+ * Level 2.
+ * Level 3.";
reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
+ "GS NFV IFA014: Section 6.5.4.2 VirtualLinkDf
information element";
}
+ }
- leaf description {
- type string;
- description
- "Provides human-readable information on the purpose of
- the virtual link (e.g. VL for control plane traffic).";
- reference
- "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
- information element";
+ leaf test-access {
+ type enumeration {
+ enum none;
+ enum passive-monitoring;
+ enum active;
}
- uses security-parameters;
+ description
+ "Specifies test access facilities expected on the VL.";
+ reference
+ "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
+ information element";
}
- list vnffgd {
- key "id";
-
+ leaf description {
+ type string;
description
- "Provides the descriptors of the applicable forwarding
- graphs.";
+ "Provides human-readable information on the purpose of
+ the virtual link (e.g. VL for control plane traffic).";
reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ "GS NFV IFA014: Section 6.5.2.2 NsVirtualLinkDesc
information element";
+ }
+ uses security-parameters;
+ }
- leaf id {
- type string;
- description
- "Identifier of this Vnffgd information element. It
- uniquely identifies a VNFFGD.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
- element";
- }
+ list vnffgd {
+ key "id";
- leaf-list vnf-profile-id {
- type leafref {
- path "../../df/vnf-profile/id";
- }
- description
- "References the VnfProfile of a constituent VNF.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ description
+ "Provides the descriptors of the applicable forwarding
+ graphs.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+
+ leaf id {
+ type string;
+ description
+ "Identifier of this Vnffgd information element. It
+ uniquely identifies a VNFFGD.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
element";
+ }
+
+ leaf-list vnf-profile-id {
+ type leafref {
+ path "../../df/vnf-profile/id";
}
+ description
+ "References the VnfProfile of a constituent VNF.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
+ }
- leaf-list pnf-profile-id {
- type leafref {
- path "../../df/pnf-profile/id";
- }
- description
- "References the PnfProfile of a constituent PNF.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
- element";
+ leaf-list pnf-profile-id {
+ type leafref {
+ path "../../df/pnf-profile/id";
}
+ description
+ "References the PnfProfile of a constituent PNF.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
+ }
- leaf-list nested-ns-profile-id {
- type leafref {
- path "../../df/ns-profile/id";
- }
- description
- "References the NsProfile of a nestedNS.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
- element";
+ leaf-list nested-ns-profile-id {
+ type leafref {
+ path "../../df/ns-profile/id";
}
+ description
+ "References the NsProfile of a nestedNS.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
+ }
- leaf virtual-link-profile-id {
- type leafref {
- path "../../df/virtual-link-profile/id";
- }
- description
- "References the Virtual Link Profile of a constituent
- VL.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
- element";
+ leaf virtual-link-profile-id {
+ type leafref {
+ path "../../df/virtual-link-profile/id";
}
+ description
+ "References the Virtual Link Profile of a constituent
+ VL.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
+ }
- list cpd-pool {
- key "id";
+ list cpd-pool {
+ key "id";
- description
- "Describes a pool of descriptors of connection points
- attached to one of the constituent VNFs and PNFs and/or
- one of the SAPs of the parent NS or of a nested NS.";
- reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
- element";
+ description
+ "Describes a pool of descriptors of connection points
+ attached to one of the constituent VNFs and PNFs and/or
+ one of the SAPs of the parent NS or of a nested NS.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
- leaf id {
- type string;
- }
+ leaf id {
+ type string;
+ }
- choice constituent-base-element-id {
- mandatory "true";
- container vnf-profile {
- leaf vnf-profile-id {
- must ". = deref(../../vnfd-profile-id)" {
- }
- type leafref {
- path "/nfv/nsd/df/vnf-profile/id";
- }
+ choice constituent-base-element-id {
+ mandatory "true";
+ container vnf-profile {
+ leaf vnf-profile-id {
+ must ". = deref(../../vnfd-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsds/df/vnf-profile/id";
}
}
- container pnf-profile {
- leaf pnf-profile-id {
- must ". = deref(../../pnfd-profile-id)" {
- }
- type leafref {
- path "/nfv/nsd/df/pnf-profile/id";
- }
+ }
+ container pnf-profile {
+ leaf pnf-profile-id {
+ must ". = deref(../../pnfd-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsds/df/pnf-profile/id";
}
}
- container ns-profile {
- leaf ns-profile-id {
- must ". = deref(../../ns-profile-id)" {
- }
- type leafref {
- path "/nfv/nsd/df/ns-profile/id";
- }
+ }
+ container ns-profile {
+ leaf ns-profile-id {
+ must ". = deref(../../ns-profile-id)" {
+ }
+ type leafref {
+ path "/nfv/nsds/df/ns-profile/id";
}
}
- description
- "Reference to the profile of an NS constituent.";
- reference
- "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement
- information element";
}
+ description
+ "Reference to the profile of an NS constituent.";
+ reference
+ "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement
+ information element";
+ }
- choice constituent-cpd-id {
- container vnf {
- leaf vnfd-id {
- must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
- }
- type leafref {
- path "/nfv/vnfd/id";
- }
+ choice constituent-cpd-id {
+ container vnf {
+ leaf vnfd-id {
+ must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
}
- leaf cpd-id {
- type leafref {
- path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
- }
+ type leafref {
+ path "/nfv/vnfds/id";
}
}
- container pnf {
- leaf pnfd-id {
- must ". = deref(../../pnfd-profile-id)/../pnfd-id" {
- }
- type leafref {
- path "/nfv/pnfd/id";
- }
- }
- leaf pnf-cpd-id {
- type leafref {
- path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
- }
+ leaf cpd-id {
+ type leafref {
+ path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
}
}
- container ns {
- leaf nsd-id {
- must ". = deref(../../nested-ns-profile-id)/" +
- "../nsd-id" {
- }
-
- type leafref {
- path "/nfv/nsd/id";
- }
+ }
+ container pnf {
+ leaf pnfd-id {
+ must ". = deref(../../pnfd-profile-id)/../pnfd-id" {
+ }
+ type leafref {
+ path "/nfv/pnfds/id";
}
- leaf sap-cpd-id {
- type leafref {
- path "deref(../nsd-id)/../nfv:sapd/nfv:id";
- }
+ }
+ leaf pnf-cpd-id {
+ type leafref {
+ path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
}
}
- description
- "A reference to the descriptor of a connection point
- attached to one of the constituent VNFs and PNFs or to
- the descriptor of a NS SAP.";
- reference
- "GS NFV IFA014: Section 6.4.4.2 CpdPool information
- element";
}
- }
+ container ns {
+ leaf nsd-id {
+ must ". = deref(../../nested-ns-profile-id)/" +
+ "../nsd-id" {
+ }
- list nfpd {
+ type leafref {
+ path "/nfv/nsds/id";
+ }
+ }
+ leaf sap-cpd-id {
+ type leafref {
+ path "deref(../nsd-id)/../nfv:sapd/nfv:id";
+ }
+ }
+ }
+ description
+ "A reference to the descriptor of a connection point
+ attached to one of the constituent VNFs and PNFs or to
+ the descriptor of a NS SAP.";
+ reference
+ "GS NFV IFA014: Section 6.4.4.2 CpdPool information
+ element";
+ }
+ }
+
+ list nfpd {
+ key "id";
+
+ description
+ "The network forwarding path associated to the VNFFG.";
+ reference
+ "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ element";
+
+ leaf id {
+ type string;
+ description
+ "Identifies this nfpd information element within a
+ VNFFGD.";
+ reference
+ "GS NFV IFA014: Section 6.4.3.2 Nfpd information
+ element";
+ }
+
+ leaf rule {
+ type string;
+ description
+ "Provides an NFP classification and selection rule.
+ The rule may be expressed as a criteria constructed
+ out of atomic assertions linked by Boolean operators
+ AND, OR and NOT.";
+ reference
+ "GS NFV IFA014: Section 6.4.3.2 Nfpd information
+ element";
+ }
+
+ list position-desc-id {
key "id";
description
- "The network forwarding path associated to the VNFFG.";
+ "Describes a position in the NFP in terms of one or
+ more CP profiles and rules for distributing the
+ traffic among CP and SAP instances created from the
+ CPD or SAPD associated to these profiles. This shall
+ be connection point profile, which is either a CPD
+ associated with the VnfProfile of a constituent VNF,
+ or a CPD associated with the PnfProfile of a
+ constituent PNF, or a SAPD associated with the
+ NsProfile of a nested NS. The related VnfProfile,
+ PnfProfile and NsProfile shall be included in the
+ parent VNFFGD.";
reference
- "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
+ "GS NFV IFA014: Section 6.4.3.2 Nfpd information
element";
leaf id {
type string;
description
- "Identifies this nfpd information element within a
- VNFFGD.";
- reference
- "GS NFV IFA014: Section 6.4.3.2 Nfpd information
- element";
- }
-
- leaf rule {
- type string;
- description
- "Provides an NFP classification and selection rule.
- The rule may be expressed as a criteria constructed
- out of atomic assertions linked by Boolean operators
- AND, OR and NOT.";
+ "Identifier of this NfpPositionDesc element.";
reference
- "GS NFV IFA014: Section 6.4.3.2 Nfpd information
- element";
+ "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
+ information element";
}
- list position-desc-id {
+ list cp-profile-id {
key "id";
description
- "Describes a position in the NFP in terms of one or
- more CP profiles and rules for distributing the
- traffic among CP and SAP instances created from the
- CPD or SAPD associated to these profiles. This shall
- be connection point profile, which is either a CPD
- associated with the VnfProfile of a constituent VNF,
- or a CPD associated with the PnfProfile of a
- constituent PNF, or a SAPD associated with the
- NsProfile of a nested NS. The related VnfProfile,
- PnfProfile and NsProfile shall be included in the
- parent VNFFGD.";
+ "References the profile of a connection point to be
+ traversed by the traffic flows matching the criteria.
+ This shall be a connection point attached to one of
+ the constituent VNFs and PNFs of the parent VNFFG,
+ or a SAP of one of the constituent nested NSs of the
+ parent VNFFG.";
reference
- "GS NFV IFA014: Section 6.4.3.2 Nfpd information
- element";
+ "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
+ information element";
leaf id {
type string;
description
- "Identifier of this NfpPositionDesc element.";
+ "Identifier of this CpProfile information element.
+ It uniquely identifies a CpProfile.";
reference
- "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
+ "GS NFV IFA014: Section 6.4.6.2 CpProfile
information element";
}
- list cp-profile-id {
+ list constituent-profile-elements {
key "id";
description
- "References the profile of a connection point to be
- traversed by the traffic flows matching the criteria.
- This shall be a connection point attached to one of
- the constituent VNFs and PNFs of the parent VNFFG,
- or a SAP of one of the constituent nested NSs of the
- parent VNFFG.";
+ "Specifies the constituents of the CpProfile.";
reference
- "GS NFV IFA014: Section 6.4.5.2 NfpPositionDesc
+ "GS NFV IFA014: Section 6.4.6.2 CpProfile
information element";
leaf id {
type string;
description
- "Identifier of this CpProfile information element.
- It uniquely identifies a CpProfile.";
+ "Specifies the constituents of the CpProfile.";
reference
- "GS NFV IFA014: Section 6.4.6.2 CpProfile
- information element";
+ "GS NFV IFA014: Section 6.4.7.2
+ ConstituentProfileElements information element";
}
- list constituent-profile-elements {
- key "id";
-
+ leaf cpd-id {
+ type string;
description
- "Specifies the constituents of the CpProfile.";
+ "References the VNF external CPD for a given
+ VnfProfile, or the PNF external CPD for a given
+ PnfProfile, or a NS SAPD for a give NsProfile
+ identified by the constituentBasedElementId.";
reference
- "GS NFV IFA014: Section 6.4.6.2 CpProfile
- information element";
-
- leaf id {
- type string;
- description
- "Specifies the constituents of the CpProfile.";
- reference
- "GS NFV IFA014: Section 6.4.7.2
- ConstituentProfileElements information element";
- }
-
- leaf cpd-id {
- type string;
- description
- "References the VNF external CPD for a given
- VnfProfile, or the PNF external CPD for a given
- PnfProfile, or a NS SAPD for a give NsProfile
- identified by the constituentBasedElementId.";
- reference
- "GS NFV IFA014: Section 6.4.7.2
- ConstituentProfileElements information element";
- }
+ "GS NFV IFA014: Section 6.4.7.2
+ ConstituentProfileElements information element";
}
}
}
}
}
+ }
- leaf-list autoscale-rule {
+ leaf-list autoscale-rule {
+ type string;
+ }
+ list lifecycle-management-script {
+ key "event";
+ leaf event {
type string;
}
- list lifecycle-management-script {
- key "event";
- leaf event {
- type string;
- }
- leaf script {
- type string;
- }
+ leaf script {
+ type string;
}
+ }
- list df {
- min-elements 1;
- must "default-instantiation-level or " +
- "count(ns-instantiation-level) = 1" {
- error-message
- "default-instantiation-level must be present if there " +
- "multiple instantion-level";
- reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ list df {
+ min-elements 1;
+ must "default-instantiation-level or " +
+ "count(ns-instantiation-level) = 1" {
+ error-message
+ "default-instantiation-level must be present if there " +
+ "multiple instantion-level";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ }
+
+ key "id";
+ description
+ "Identifies a DF within the scope of an NSD.";
+ reference
+ "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
+ information element";
+
+ leaf id {
+ type string;
+ description
+ "Identifies this NsDf information element. It identifies
+ a NS DF within the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ }
+
+ leaf flavour-key {
+ type leafref {
+ path "../monitored-info/id";
}
+ description
+ "Assurance parameter against which this flavour is being
+ described.
+ The key can be a combination of multiple assurance
+ parameters with a logical relationship between them.
+ The parameters should be present as a monitoredInfo
+ attribute in the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ }
+
+ list vnf-profile {
+ must "min-number-of-instances <= max-number-of-instances";
+ must "boolean(../../vnfd-id[.=current()/vnfd-id])" {
+ error-message "VNFDs in the profile has to be listed as a " +
+ "dependency of the network service " +
+ "descriptor.";
+ }
key "id";
description
- "Identifies a DF within the scope of an NSD.";
+ "VNF profile to be used for the NS flavour.";
reference
- "GS NFV IFA014: Section 6.2.2.2 Network Service Descriptor
- information element";
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
leaf id {
type string;
description
- "Identifies this NsDf information element. It identifies
- a NS DF within the NSD.";
+ "Identifier of this vnfProfile information element. It
+ uniquely identifies a VnfProfile.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
}
- leaf flavour-key {
+ leaf vnfd-id {
+ mandatory true;
type leafref {
- path "../monitored-info/id";
+ path "/nfv/vnfds/id";
}
description
- "Assurance parameter against which this flavour is being
- described.
+ "References a VNFD.";
+ reference
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
+ }
- The key can be a combination of multiple assurance
- parameters with a logical relationship between them.
- The parameters should be present as a monitoredInfo
- attribute in the NSD.";
+ leaf flavour-id {
+ mandatory true;
+ type leafref {
+ path "deref(../vnfd-id)/../df/id";
+ }
+ description
+ "Identifies a flavour within the VNFD.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
}
- list vnf-profile {
- must "min-number-of-instances <= max-number-of-instances";
- must "boolean(../../vnfd-id[.=current()/vnfd-id])" {
- error-message "VNFDs in the profile has to be listed as a " +
- "dependency of the network service " +
- "descriptor.";
+ leaf instantiation-level {
+ mandatory true;
+ type leafref {
+ path "deref(../flavour-id)/../instantiation-level/id";
}
+ description
+ "Identifier of the instantiation level of the VNF DF
+ to be used for instantiation. If not present, the
+ default instantiation level as declared in the VNFD
+ shall be used.";
+ reference
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
+ }
+
+ leaf min-number-of-instances {
+ default 1;
+ type uint16;
+ description
+ "Minimum number of instances of the VNF based on this
+ VNFD that is permitted to exist for this VnfProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
+ }
+
+ leaf max-number-of-instances {
+ default 1;
+ type uint16;
+ description
+ "Maximum number of instances of the VNF based on this
+ VNFD that is permitted to exist for this VnfProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
+ }
+
+ uses local-affinity-or-anti-affinity-rule;
+
+ list affinity-or-anti-affinity-group {
key "id";
+
description
- "VNF profile to be used for the NS flavour.";
+ "Identifier(s) of the affinity or anti-affinity
+ group(s) the VnfProfile belongs to.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ element";
leaf id {
- type string;
- description
- "Identifier of this vnfProfile information element. It
- uniquely identifies a VnfProfile.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
- }
-
- leaf vnfd-id {
- mandatory true;
type leafref {
- path "/nfv/vnfd/id";
+ path "../../../affinity-or-anti-affinity-group/id";
}
- description
- "References a VNFD.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
}
+ }
- leaf flavour-id {
- mandatory true;
- type leafref {
- path "deref(../vnfd-id)/../df/id";
- }
- description
- "Identifies a flavour within the VNFD.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
+ list virtual-link-connectivity {
+ key "virtual-link-profile-id";
+
+ description
+ "Defines the connection information of the VNF, it
+ contains connection relationship between a VNF
+ connection point and a NS Virtual Link.";
+ reference
+ "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
element";
- }
- leaf instantiation-level {
- mandatory true;
+ leaf virtual-link-profile-id {
type leafref {
- path "deref(../flavour-id)/../instantiation-level/id";
+ path "../../../virtual-link-profile/id";
}
description
- "Identifier of the instantiation level of the VNF DF
- to be used for instantiation. If not present, the
- default instantiation level as declared in the VNFD
- shall be used.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
- }
-
- leaf min-number-of-instances {
- default 1;
- type uint16;
- description
- "Minimum number of instances of the VNF based on this
- VNFD that is permitted to exist for this VnfProfile.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
- }
-
- leaf max-number-of-instances {
- default 1;
- type uint16;
- description
- "Maximum number of instances of the VNF based on this
- VNFD that is permitted to exist for this VnfProfile.";
+ "Reference an NS VL profile.";
reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
+ information element.";
}
- uses local-affinity-or-anti-affinity-rule;
-
- list affinity-or-anti-affinity-group {
- key "id";
+ list constituent-cpd-id {
+ key "constituent-base-element-id";
description
- "Identifier(s) of the affinity or anti-affinity
- group(s) the VnfProfile belongs to.";
+ "Describes a connection point on a VNF/PNF or a SAP
+ which connects to virtual links instantiated from
+ the profile identified in the virtualLinkProfileId
+ attribute.";
reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7
+ NsVirtualLinkConnectivity information element";
- leaf id {
+ leaf constituent-base-element-id {
type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
+ path "../../../id";
}
+ description
+ "Reference to the profile of an NS constituent.";
+ reference
+ "GS NFV IFA014: Section 6.4.8
+ CpdInConstituentElement information element";
}
- }
-
- list virtual-link-connectivity {
- key "virtual-link-profile-id";
-
- description
- "Defines the connection information of the VNF, it
- contains connection relationship between a VNF
- connection point and a NS Virtual Link.";
- reference
- "GS NFV IFA014: Section 6.3.3.2 VnfProfile information
- element";
- leaf virtual-link-profile-id {
+ leaf constituent-cpd-id {
type leafref {
- path "../../../virtual-link-profile/id";
+ path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
}
description
- "Reference an NS VL profile.";
+ "A reference to the descriptor of a connection point
+ attached to one of the constituent VNFs and PNFs or to
+ the descriptor of a NS SAP.";
reference
- "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
- information element.";
+ "GS NFV IFA014: Section 6.4.4.2 CpdPool information
+ element";
}
+ }
+ }
+ }
- list constituent-cpd-id {
- key "constituent-base-element-id";
-
- description
- "Describes a connection point on a VNF/PNF or a SAP
- which connects to virtual links instantiated from
- the profile identified in the virtualLinkProfileId
- attribute.";
- reference
- "GS NFV IFA014: Section 6.3.7
- NsVirtualLinkConnectivity information element";
+ list pnf-profile {
+ key "id";
+ must "boolean(../../pnfd-id[.=current()/pnfd-id])" {
+ error-message "PNFDs in the profile has to be listed as a " +
+ "dependency of the network service " +
+ "descriptor.";
+ }
- leaf constituent-base-element-id {
- type leafref {
- path "../../../id";
- }
- description
- "Reference to the profile of an NS constituent.";
- reference
- "GS NFV IFA014: Section 6.4.8
- CpdInConstituentElement information element";
- }
+ leaf id {
+ type string;
+ description
+ "Identifier of this PnfProfile information element.
+ It uniquely identifies a PnfProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
+ element";
+ }
- leaf constituent-cpd-id {
- type leafref {
- path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
- }
- description
- "A reference to the descriptor of a connection point
- attached to one of the constituent VNFs and PNFs or to
- the descriptor of a NS SAP.";
- reference
- "GS NFV IFA014: Section 6.4.4.2 CpdPool information
- element";
- }
- }
+ leaf pnfd-id {
+ type leafref {
+ path "/nfv/pnfds/id";
}
+ description
+ "References a PNFD.";
+ reference
+ "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
+ element";
}
- list pnf-profile {
- key "id";
- must "boolean(../../pnfd-id[.=current()/pnfd-id])" {
- error-message "PNFDs in the profile has to be listed as a " +
- "dependency of the network service " +
- "descriptor.";
- }
+ list virtual-link-connectivity {
+ key "virtual-link-profile-id";
- leaf id {
- type string;
- description
- "Identifier of this PnfProfile information element.
- It uniquely identifies a PnfProfile.";
- reference
- "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
- element";
- }
+ description
+ "Defines the connection information of the PNF, it
+ contains connection relationship between a PNF
+ connection point and a NS Virtual Link.";
+ reference
+ "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
+ element";
- leaf pnfd-id {
+ leaf virtual-link-profile-id {
type leafref {
- path "/nfv/pnfd/id";
+ path "../../../virtual-link-profile/id";
}
description
- "References a PNFD.";
+ "Reference an NS VL profile.";
reference
- "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
+ information element.";
}
- list virtual-link-connectivity {
- key "virtual-link-profile-id";
+ list constituent-cpd-id {
+ key "constituent-base-element-id";
description
- "Defines the connection information of the PNF, it
- contains connection relationship between a PNF
- connection point and a NS Virtual Link.";
+ "Describes a connection point on a VNF/PNF or a SAP
+ which connects to virtual links instantiated from
+ the profile identified in the virtualLinkProfileId
+ attribute.";
reference
- "GS NFV IFA014: Section 6.3.6.2 PnfProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7
+ NsVirtualLinkConnectivity information element";
- leaf virtual-link-profile-id {
+ leaf constituent-base-element-id {
type leafref {
- path "../../../virtual-link-profile/id";
+ path "../../../id";
}
description
- "Reference an NS VL profile.";
+ "Reference to the profile of an NS constituent.";
reference
- "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
- information element.";
+ "GS NFV IFA014: Section 6.4.8
+ CpdInConstituentElement information element";
}
- list constituent-cpd-id {
- key "constituent-base-element-id";
-
+ leaf constituent-cpd-id {
+ type leafref {
+ path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id";
+ }
description
- "Describes a connection point on a VNF/PNF or a SAP
- which connects to virtual links instantiated from
- the profile identified in the virtualLinkProfileId
- attribute.";
+ "A reference to the descriptor of a connection point
+ attached to one of the constituent VNFs and PNFs or to
+ the descriptor of a NS SAP.";
reference
- "GS NFV IFA014: Section 6.3.7
- NsVirtualLinkConnectivity information element";
-
- leaf constituent-base-element-id {
- type leafref {
- path "../../../id";
- }
- description
- "Reference to the profile of an NS constituent.";
- reference
- "GS NFV IFA014: Section 6.4.8
- CpdInConstituentElement information element";
- }
-
- leaf constituent-cpd-id {
- type leafref {
- path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id";
- }
- description
- "A reference to the descriptor of a connection point
- attached to one of the constituent VNFs and PNFs or to
- the descriptor of a NS SAP.";
- reference
- "GS NFV IFA014: Section 6.4.4.2 CpdPool information
- element";
- }
+ "GS NFV IFA014: Section 6.4.4.2 CpdPool information
+ element";
}
}
}
+ }
- list virtual-link-profile {
- key "id";
+ list virtual-link-profile {
+ key "id";
+ description
+ "VL profile to be used for the NS flavour.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+
+ leaf id {
+ type string;
description
- "VL profile to be used for the NS flavour.";
+ "Uniquely identifies this VirtualLinkProfile
+ information element.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
+ information element";
+ }
- leaf id {
- type string;
- description
- "Uniquely identifies this VirtualLinkProfile
- information element.";
- reference
- "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
- information element";
+ leaf virtual-link-desc-id {
+ mandatory true;
+ type leafref {
+ path "../../../virtual-link-desc/id";
}
+ description
+ "Uniquely references a VLD.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
+ information element";
+ }
- leaf virtual-link-desc-id {
- mandatory true;
- type leafref {
- path "../../../virtual-link-desc/id";
- }
- description
- "Uniquely references a VLD.";
- reference
- "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
- information element";
+ leaf flavour-id {
+ mandatory true;
+ type leafref {
+ path "deref(../virtual-link-desc-id)/../df/id";
}
+ description
+ "Identifies a flavour within the VLD.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
+ information element";
+ }
- leaf flavour-id {
- mandatory true;
+ uses local-affinity-or-anti-affinity-rule;
+
+ list affinity-or-anti-affinity-group {
+ key "id";
+
+ description
+ "Identifies an affinity or anti-affinity group the
+ VLs instantiated according to the VlProfile belong
+ to.";
+ reference
+ "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
+ information element";
+
+ leaf id {
type leafref {
- path "deref(../virtual-link-desc-id)/../df/id";
+ path "../../../affinity-or-anti-affinity-group/id";
}
- description
- "Identifies a flavour within the VLD.";
- reference
- "GS NFV IFA014: Section 6.3.2.2 VirtualLinkProfile
- information element";
}
+ }
- uses local-affinity-or-anti-affinity-rule;
-
- list affinity-or-anti-affinity-group {
- key "id";
-
- description
- "Identifies an affinity or anti-affinity group the
- VLs instantiated according to the VlProfile belong
- to.";
- reference
- "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
- information element";
+ container max-bitrate-requirements {
+ description
+ "Specifies the maximum bitrate requirements for a VL
+ instantiated according to this profile.";
+ reference
+ "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
+ information element";
+ uses link-bitrate-requirements;
+ }
+ container min-bitrate-requirements {
+ description
+ "Specifies the minimum bitrate requirements for a VL
+ instantiated according to this profile.";
+ reference
+ "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
+ information element";
+ uses link-bitrate-requirements;
+ }
+ }
- leaf id {
- type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
- }
- }
- }
+ list scaling-aspect {
+ key "id";
- container max-bitrate-requirements {
- description
- "Specifies the maximum bitrate requirements for a VL
- instantiated according to this profile.";
- reference
- "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
- information element";
- uses link-bitrate-requirements;
- }
- container min-bitrate-requirements {
- description
- "Specifies the minimum bitrate requirements for a VL
- instantiated according to this profile.";
- reference
- "GS NFV IFA014: Section 6.3.4.2 VirtualLinkProfile
- information element";
- uses link-bitrate-requirements;
- }
+ description
+ "The scaling aspects supported by this DF of the NS.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+
+ leaf id {
+ type string;
+ description
+ "Identifier of this NsScalingAspect information element.
+ It uniquely identifies the NS scaling aspect in an
+ NSD.";
+ reference
+ "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
+ information element";
}
- list scaling-aspect {
- key "id";
+ leaf name {
+ type string;
+ description
+ "Provides a human readable name of the NS scaling
+ aspect.";
+ reference
+ "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
+ information element";
+ }
+ leaf description {
+ type string;
description
- "The scaling aspects supported by this DF of the NS.";
+ "Provides a human readable description of the NS
+ scaling aspect.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
+ information element";
+ }
- leaf id {
- type string;
- description
- "Identifier of this NsScalingAspect information element.
- It uniquely identifies the NS scaling aspect in an
- NSD.";
- reference
- "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
- information element";
+ leaf scaling-level {
+ type leafref {
+ path "../../ns-instantiation-level/id";
}
+ description
+ "Describes the details of an NS level.";
+ reference
+ "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
+ information element";
+ }
+ }
- leaf name {
- type string;
- description
- "Provides a human readable name of the NS scaling
- aspect.";
- reference
- "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
- information element";
- }
+ list affinity-or-anti-affinity-group {
+ key "id";
- leaf description {
- type string;
- description
- "Provides a human readable description of the NS
- scaling aspect.";
- reference
- "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
- information element";
- }
+ description
+ "Specifies affinity or anti-affinity relationship
+ applicable between the VNF instances created using
+ different VNFDs, the Virtual Link instances created
+ using different NsVirtualLinkDescs or the nested NS
+ instances created using different NSDs in the same
+ affinity or anti-affinity group.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
- leaf scaling-level {
- type leafref {
- path "../../ns-instantiation-level/id";
- }
- description
- "Describes the details of an NS level.";
- reference
- "GS NFV IFA014: Section 6.7.2.2 NsScalingAspect
- information element";
- }
+ leaf id {
+ type string;
+ description
+ "Identifier of Identifier of this
+ AffinityOrAntiAffinityGroup information element.";
+ reference
+ "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
+ information element";
}
- list affinity-or-anti-affinity-group {
- key "id";
+ leaf affinity-type {
+ mandatory true;
+ type affinity-type;
+ description
+ "Specifies the type of relationship that the members of
+ the group have: 'affinity' or 'anti-affinity.'";
+ reference
+ "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
+ information element";
+ }
+ leaf affinity-scope {
+ mandatory true;
+ type affinity-scope;
description
- "Specifies affinity or anti-affinity relationship
- applicable between the VNF instances created using
- different VNFDs, the Virtual Link instances created
- using different NsVirtualLinkDescs or the nested NS
- instances created using different NSDs in the same
- affinity or anti-affinity group.";
+ "Specifies the scope of the affinity or anti-affinity
+ relationship e.g. a NFVI node, an NFVI PoP, etc.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
+ information element";
+ }
+ }
- leaf id {
- type string;
- description
- "Identifier of Identifier of this
- AffinityOrAntiAffinityGroup information element.";
- reference
- "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
- information element";
- }
+ list ns-instantiation-level {
+ min-elements 1;
+ key "id";
- leaf affinity-type {
- mandatory true;
- type affinity-type;
+ description
+ "Describes the details of an NS level.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element
+ GS NFV IFA014: Section 6.7.2.2 NsScaling information
+ element";
+
+ leaf id {
+ type string;
+ description
+ "Identifier of this NsLevel information element. It
+ uniquely identifies an NS level within the DF.";
+ reference
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ element";
+ }
+
+ leaf description {
+ type string;
+ description
+ "Human readable description of the NS level.";
+ reference
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ element";
+ }
+
+ list vnf-to-level-mapping {
+ key "vnf-profile-id";
+
+ description
+ "Specifies the profile of the VNFs involved in this NS
+ level and, for each of them, the required number of
+ instances.";
+ reference
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ element";
+
+ leaf vnf-profile-id {
+ type leafref {
+ path "../../../vnf-profile/id";
+ }
description
- "Specifies the type of relationship that the members of
- the group have: 'affinity' or 'anti-affinity.'";
+ "Identifies the profile to be used for a VNF
+ involved in an NS level.";
reference
- "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
+ "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
information element";
}
- leaf affinity-scope {
- mandatory true;
- type affinity-scope;
+ leaf number-of-instances {
+ default 1;
+ type uint32;
description
- "Specifies the scope of the affinity or anti-affinity
- relationship e.g. a NFVI node, an NFVI PoP, etc.";
+ "Specifies the number of VNF instances required for
+ an NS level.";
reference
- "GS NFV IFA014: Section 6.3.5.2 AffinityOrAntiAffinity
+ "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
information element";
}
}
- list ns-instantiation-level {
- min-elements 1;
- key "id";
+ list virtual-link-to-level-mapping {
+ key "virtual-link-profile-id";
description
- "Describes the details of an NS level.";
+ "Specifies the profile of the VLs involved in this NS
+ level and, for each of them, the needed bandwidth.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element
- GS NFV IFA014: Section 6.7.2.2 NsScaling information
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
element";
- leaf id {
- type string;
+ leaf virtual-link-profile-id {
+ type leafref {
+ path "../../../virtual-link-profile/id";
+ }
description
- "Identifier of this NsLevel information element. It
- uniquely identifies an NS level within the DF.";
+ "Identifies the profile to be used for a VL involved
+ in an NS level.";
reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
- element";
+ "GS NFV IFA014: Section 6.7.5.2
+ VirtualLinkToLevelMapping information element";
}
- leaf description {
- type string;
- description
- "Human readable description of the NS level.";
- reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
- element";
- }
+ uses link-bitrate-requirements;
+ }
+
+ list ns-to-level-mapping {
+ key "ns-profile-id";
- list vnf-to-level-mapping {
- key "vnf-profile-id";
+ description
+ "Specifies the profile of the nested NSs involved in
+ this NS level and, for each of them, the required
+ number of instances.";
+ reference
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ element";
+ leaf ns-profile-id {
+ type leafref {
+ path "../../../ns-profile/id";
+ }
description
- "Specifies the profile of the VNFs involved in this NS
- level and, for each of them, the required number of
- instances.";
+ "Identifies the profile to be used for a nested NS
+ involved in the NS level.";
reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
element";
-
- leaf vnf-profile-id {
- type leafref {
- path "../../../vnf-profile/id";
- }
- description
- "Identifies the profile to be used for a VNF
- involved in an NS level.";
- reference
- "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
- information element";
- }
-
- leaf number-of-instances {
- default 1;
- type uint32;
- description
- "Specifies the number of VNF instances required for
- an NS level.";
- reference
- "GS NFV IFA014: Section 6.7.4.2 VnfToLevelMapping
- information element";
- }
}
- list virtual-link-to-level-mapping {
- key "virtual-link-profile-id";
-
+ leaf number-of-instances {
+ default 1;
+ type uint32;
description
- "Specifies the profile of the VLs involved in this NS
- level and, for each of them, the needed bandwidth.";
+ "Specifies the number of nested NS instances required
+ for the NS scale level.";
reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
element";
+ }
+ }
- leaf virtual-link-profile-id {
- type leafref {
- path "../../../virtual-link-profile/id";
- }
- description
- "Identifies the profile to be used for a VL involved
- in an NS level.";
- reference
- "GS NFV IFA014: Section 6.7.5.2
- VirtualLinkToLevelMapping information element";
- }
+ must "(count(vnf-to-level-mapping) + " +
+ "count(virtual-link-to-level-mapping) + " +
+ "count(ns-to-level-mapping)) > 0" {
+ error-message
+ "At least one attribute between " +
+ "vnf-to-level-mapping, " +
+ "virtual-link-to-level-mapping and " +
+ "ns-to-level-mapping shall be present.";
+ description
+ "At least one attribute between vnfToLevelMapping,
+ vlirtualLinkToLevelMapping and nsToLevelMapping shall
+ be present.";
+ reference
+ "GS NFV IFA014: Section 6.3.9.2 NsLevel information
+ element";
+ }
+ }
- uses link-bitrate-requirements;
- }
+ leaf default-instantiation-level {
+ type leafref {
+ path "../ns-instantiation-level/id";
+ }
+ description
+ "Identifies the NS level which represents the default NS
+ instantiation level for this DF. It shall be present if
+ there are multiple 'nsIinstantiationLevel' entries.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ }
- list ns-to-level-mapping {
- key "ns-profile-id";
+ list ns-profile {
+ must "min-number-of-instances <= max-number-of-instances" {
+ error-message
+ "min-number-of-instances has to be less than or equal" +
+ "max-number-of-instances.";
+ }
+ must "boolean(../../nested-nsd-id[.=current()/nsd-id])" {
+ error-message
+ "PNFDs in the profile has to be listed as a " +
+ "dependency of the network service " +
+ "descriptor.";
+ }
+ key "id";
- description
- "Specifies the profile of the nested NSs involved in
- this NS level and, for each of them, the required
- number of instances.";
- reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
- element";
+ description
+ "Specifies a NS Profile supported by this NS DF.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
- leaf ns-profile-id {
- type leafref {
- path "../../../ns-profile/id";
- }
- description
- "Identifies the profile to be used for a nested NS
- involved in the NS level.";
- reference
- "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
- element";
- }
+ leaf id {
+ type string;
+ description
+ "Identifies an NS profile.";
+ reference
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
+ }
- leaf number-of-instances {
- default 1;
- type uint32;
- description
- "Specifies the number of nested NS instances required
- for the NS scale level.";
- reference
- "GS NFV IFA014: Section 6.7.6.2 NsToLevel information
- element";
- }
+ leaf nsd-id {
+ mandatory true;
+ type leafref {
+ path "/nfv/nsds/id";
}
+ description
+ "Identifies the NSD applicable to NS instantiated
+ according to this profile.";
+ reference
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
+ }
- must "(count(vnf-to-level-mapping) + " +
- "count(virtual-link-to-level-mapping) + " +
- "count(ns-to-level-mapping)) > 0" {
- error-message "At least one attribute between " +
- "vnf-to-level-mapping, " +
- "virtual-link-to-level-mapping and " +
- "ns-to-level-mapping shall be present.";
- description
- "At least one attribute between vnfToLevelMapping,
- vlirtualLinkToLevelMapping and nsToLevelMapping shall
- be present.";
- reference
- "GS NFV IFA014: Section 6.3.9.2 NsLevel information
- element";
+ leaf ns-df-id {
+ mandatory true;
+ type leafref {
+ path "deref(../nsd-id)/../df/id";
}
+ description
+ "Identifies the applicable network service DF within
+ the scope of the NSD.";
+ reference
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
}
- leaf default-instantiation-level {
+ leaf instantiation-level-id {
+ mandatory true;
type leafref {
- path "../ns-instantiation-level/id";
+ path "deref(../ns-df-id)/../ns-instantiation-level/id";
}
description
- "Identifies the NS level which represents the default NS
- instantiation level for this DF. It shall be present if
- there are multiple 'nsIinstantiationLevel' entries.";
+ "Identifies the NS level within the referenced NS DF to
+ be used in the context of the parent NS instantiation.
+ If not present, the default NS instantiation level as
+ declared in the referenced NSD shall be used.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
}
- list ns-profile {
- must "min-number-of-instances <= max-number-of-instances" {
- error-message
- "min-number-of-instances has to be less than or equal" +
- "max-number-of-instances.";
- }
- must "boolean(../../nested-nsd-id[.=current()/nsd-id])" {
- error-message "PNFDs in the profile has to be listed as a " +
- "dependency of the network service " +
- "descriptor.";
- }
+ leaf min-number-of-instances {
+ type uint16;
+ default 1;
+ description
+ "Minimum number of nested NS instances based on the
+ referenced NSD that is permitted to exist for this
+ NsProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
+ }
+
+ leaf max-number-of-instances {
+ type uint16;
+ default 1;
+ description
+ "Maximum number of nested NS instances based on the
+ referenced NSD that is permitted to exist for this
+ NsProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
+ }
+
+ list affinity-or-anti-affinity-group-id {
key "id";
description
- "Specifies a NS Profile supported by this NS DF.";
+ "Identifies an affinity or anti-affinity group the NSs
+ created according to this NsProfile belongs to.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.11.2 NsProfile information
+ element";
leaf id {
- type string;
- description
- "Identifies an NS profile.";
- reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
- }
- leaf nsd-id {
- mandatory true;
type leafref {
- path "/nfv/nsd/id";
+ path "../../../affinity-or-anti-affinity-group/id";
}
- description
- "Identifies the NSD applicable to NS instantiated
- according to this profile.";
- reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
}
- leaf ns-df-id {
- mandatory true;
- type leafref {
- path "deref(../nsd-id)/../df/id";
- }
- description
- "Identifies the applicable network service DF within
- the scope of the NSD.";
- reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
- }
- leaf instantiation-level-id {
- mandatory true;
+ }
+
+ list virtual-link-connectivity {
+ key "virtual-link-profile-id";
+
+ leaf virtual-link-profile-id {
type leafref {
- path "deref(../ns-df-id)/../ns-instantiation-level/id";
+ path "../../../virtual-link-profile/id";
}
description
- "Identifies the NS level within the referenced NS DF to
- be used in the context of the parent NS instantiation.
- If not present, the default NS instantiation level as
- declared in the referenced NSD shall be used.";
- reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
- }
- leaf min-number-of-instances {
- type uint16;
- default 1;
- description
- "Minimum number of nested NS instances based on the
- referenced NSD that is permitted to exist for this
- NsProfile.";
- reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
- }
- leaf max-number-of-instances {
- type uint16;
- default 1;
- description
- "Maximum number of nested NS instances based on the
- referenced NSD that is permitted to exist for this
- NsProfile.";
+ "Reference an NS VL profile.";
reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
+ information element.";
}
- list affinity-or-anti-affinity-group-id {
- key "id";
+ list constituent-cpd-id {
+ key "constituent-base-element-id";
description
- "Identifies an affinity or anti-affinity group the NSs
- created according to this NsProfile belongs to.";
+ "Describes a connection point on a VNF/PNF or a SAP
+ which connects to virtual links instantiated from
+ the profile identified in the virtualLinkProfileId
+ attribute.";
reference
- "GS NFV IFA014: Section 6.3.11.2 NsProfile information
- element";
+ "GS NFV IFA014: Section 6.3.7
+ NsVirtualLinkConnectivity information element";
- leaf id {
+ leaf constituent-base-element-id {
type leafref {
- path "../../../affinity-or-anti-affinity-group/id";
+ path "../../../id";
}
+ description
+ "Reference to the profile of an NS constituent.";
+ reference
+ "GS NFV IFA014: Section 6.4.8
+ CpdInConstituentElement information element";
}
- }
-
- list virtual-link-connectivity {
- key "virtual-link-profile-id";
- leaf virtual-link-profile-id {
+ leaf constituent-cpd-id {
type leafref {
- path "../../../virtual-link-profile/id";
+ path "deref(../../../nsd-id)/../nfv:sapd/nfv:id";
}
description
- "Reference an NS VL profile.";
+ "A reference to the descriptor of a connection point
+ attached to one of the constituent VNFs and PNFs or to
+ the descriptor of a NS SAP.";
reference
- "GS NFV IFA014: Section 6.3.7.2, NsVirutalLinkConnectivity
- information element.";
+ "GS NFV IFA014: Section 6.4.4.2 CpdPool information
+ element";
}
+ }
+ }
+ }
- list constituent-cpd-id {
- key "constituent-base-element-id";
+ list dependencies {
+ key "id";
- description
- "Describes a connection point on a VNF/PNF or a SAP
- which connects to virtual links instantiated from
- the profile identified in the virtualLinkProfileId
- attribute.";
- reference
- "GS NFV IFA014: Section 6.3.7
- NsVirtualLinkConnectivity information element";
+ description
+ "Specifies the order in which instances of the VNFs and/or
+ nested NSs have to be created.";
+ reference
+ "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
- leaf constituent-base-element-id {
- type leafref {
- path "../../../id";
- }
- description
- "Reference to the profile of an NS constituent.";
- reference
- "GS NFV IFA014: Section 6.4.8
- CpdInConstituentElement information element";
- }
+ leaf id {
+ type string;
+ }
- leaf constituent-cpd-id {
- type leafref {
- path "deref(../../../nsd-id)/../nfv:sapd/nfv:id";
- }
- description
- "A reference to the descriptor of a connection point
- attached to one of the constituent VNFs and PNFs or to
- the descriptor of a NS SAP.";
- reference
- "GS NFV IFA014: Section 6.4.4.2 CpdPool information
- element";
- }
+ choice primary-id {
+ leaf primary-vnf-profile {
+ type leafref {
+ path "../../vnf-profile/vnfd-id";
}
- }
- }
-
- list dependencies {
- key "id";
-
+ }
+ leaf primary-ns-profile {
+ type leafref {
+ path "../../ns-profile/nsd-id";
+ }
+ }
description
- "Specifies the order in which instances of the VNFs and/or
- nested NSs have to be created.";
+ "References a VnfProfile or NsProfile.";
reference
- "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
+ "GS NFV IFA014: Section 6.3.12.2 Dependencies
+ information element";
+ }
- leaf id {
- type string;
+ choice secondary-id {
+ leaf secondary-vnf-profile {
+ type leafref {
+ path "../../vnf-profile/vnfd-id";
+ }
}
- choice primary-id {
- leaf primary-vnf-profile {
- type leafref {
- path "../../vnf-profile/vnfd-id";
- }
+ leaf secondary-ns-profile {
+ type leafref {
+ path "../../ns-profile/nsd-id";
}
- leaf primary-ns-profile {
- type leafref {
- path "../../ns-profile/nsd-id";
- }
+ }
+ description
+ "References a VnfProfile or NsProfile.";
+ reference
+ "GS NFV IFA014: Section 6.3.12.2 Dependencies
+ information element";
+ }
+ }
+
+ list monitored-info {
+ key "id";
+
+ leaf id {
+ type string;
+ }
+
+ container vnf-indicator-info {
+ leaf vnfd-id {
+ type leafref {
+ path "/nfv/vnfds/id";
}
description
- "References a VnfProfile or NsProfile.";
+ "Identifies a VNFD.";
reference
- "GS NFV IFA014: Section 6.3.12.2 Dependencies
+ "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
information element";
}
- choice secondary-id {
- leaf secondary-vnf-profile {
- type leafref {
- path "../../vnf-profile/vnfd-id";
- }
- }
- leaf secondary-ns-profile {
- type leafref {
- path "../../ns-profile/nsd-id";
- }
+
+ leaf vnf-indicator {
+ mandatory true;
+ type leafref {
+ path "deref(../vnfd-id)/../indicator/id";
}
description
- "References a VnfProfile or NsProfile.";
+ "Identifies a VNF indicator within the VNFD.";
reference
- "GS NFV IFA014: Section 6.3.12.2 Dependencies
+ "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
information element";
}
+ description
+ "Uniquely identifies this VNF Indicator information
+ element.";
+ reference
+ "GS NFV IFA014: Section 6.2.6.2 MonitoredData
+ information element";
}
- list monitored-info {
- key "id";
-
+ // monitoringParameter in IFA014 is defined by MonitoredData
+ // whereas monitoringParameter in IFA011 is defined by
+ // MonitoringParameter.
+ container monitoring-parameter {
leaf id {
type string;
+ description
+ "Unique identifier of this monitoring parameter
+ information element.";
+ reference
+ "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
+ information element";
}
- container vnf-indicator-info {
- leaf vnfd-id {
- type leafref {
- path "/nfv/vnfd/id";
- }
- description
- "Identifies a VNFD.";
- reference
- "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
- information element";
- }
- leaf vnf-indicator {
- mandatory true;
- type leafref {
- path "deref(../vnfd-id)/../indicator/id";
- }
- description
- "Identifies a VNF indicator within the VNFD.";
- reference
- "GS NFV IFA014: Section 6.2.7.2 VnfIndicatorData
- information element";
- }
+ leaf name {
+ type string;
description
- "Uniquely identifies this VNF Indicator information
- element.";
+ "Human readable name of the monitoring parameter.";
reference
- "GS NFV IFA014: Section 6.2.6.2 MonitoredData
+ "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
information element";
}
- // monitoringParameter in IFA014 is defined by MonitoredData
- // whereas monitoringParameter in IFA011 is defined by
- // MonitoringParameter.
- container monitoring-parameter {
- leaf id {
- type string;
- description
- "Unique identifier of this monitoring parameter
- information element.";
- reference
- "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
- information element";
- }
-
- leaf name {
- type string;
- description
- "Human readable name of the monitoring parameter.";
- reference
- "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
- information element";
- }
-
- leaf performance-metric {
- mandatory true;
- type string;
- description
- "Defines the virtualised resource-related performance
- metric.";
- reference
- "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
- information element";
- }
+ leaf performance-metric {
+ mandatory true;
+ type string;
+ description
+ "Defines the virtualised resource-related performance
+ metric.";
+ reference
+ "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
+ information element";
+ }
- leaf collection-period {
- type string;
- description
- "An attribute that describes the periodicity at
- which to collect the performance information.";
- reference
- "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
- information element";
- }
+ leaf collection-period {
+ type string;
+ description
+ "An attribute that describes the periodicity at
+ which to collect the performance information.";
+ reference
+ "GS NFV IFA014: Section 6.2.8.2 MonitoringParameter
+ information element";
}
}
}
- uses security-parameters;
}
+ uses security-parameters;
}
}
diff --git a/src/yang/etsi-nfv-pnf.yang b/src/yang/etsi-nfv-pnf.yang
index 48499039c3757431b4ed89d5a83bccc246d73d3e..e2cc14a1a073ee13b76b78cab9e0ef861a0fee4a 100644
--- a/src/yang/etsi-nfv-pnf.yang
+++ b/src/yang/etsi-nfv-pnf.yang
@@ -31,87 +31,91 @@ submodule etsi-nfv-pnf {
reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- list pnfd {
+ leaf id {
+ type string;
+ description
+ "Identifier of this Pnfd information element. It uniquely
+ identifies the PNFD.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ leaf function-description {
+ type string;
+ description
+ "Describes the PNF function.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ leaf provider {
+ type string;
+ description
+ "Identifies the provider of the PNFD.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ leaf version {
+ type string;
+ mandatory true;
+ description
+ "Identifies the version of the PNFD.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ leaf invariant-id {
+ type string;
+ description
+ "Identifies a PNFD in a version independent manner. This
+ attribute is invariant across versions of PNFD.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ leaf name {
+ type string;
+ description
+ "Provides the human readable name of the PNFD.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ list ext-cpd {
key "id";
+ uses cpd;
+ description
+ "Specifies the characteristics of one or more connection
+ points where to connect the PNF to a VL.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
+
+ list security {
+ key "signature";
+ uses security-parameters;
+ description
+ "Provides a signature to prevent tampering.
+ Editor's Note: While IFA014 does specify that the PNFD
+ includes a security parameter. SOL001 does not have one.
+ We need to harmonize SOL001 & SOL006 on this point.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
+ }
- leaf id {
- type string;
- description
- "Identifier of this Pnfd information element. It uniquely
- identifies the PNFD.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf function-description {
- type string;
- description
- "Describes the PNF function.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf provider {
- type string;
- description
- "Identifies the provider of the PNFD.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf version {
- type string;
- mandatory true;
- description
- "Identifies the version of the PNFD.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf invariant-id {
- type string;
- description
- "Identifies a PNFD in a version independent manner. This
- attribute is invariant across versions of PNFD.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf name {
- type string;
- description
- "Provides the human readable name of the PNFD.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- list ext-cpd {
- key "id";
- uses cpd;
- description
- "Specifies the characteristics of one or more connection
- points where to connect the PNF to a VL.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- list security {
- key "signature";
- uses security-parameters;
- description
- "Provides a signature to prevent tampering.
- Editor's Note: While IFA014 does specify that the PNFD
- includes a security parameter. SOL001 does not have one.
- We need to harmonize SOL001 & SOL006 on this point.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- leaf geographical-location-info {
- type string;
- description
- "It provides information about the geographical location
- (e.g. geographic coordinates or address of the building,
- etc.) of the PNF. The cardinality 0 is used when the
- location is unknown.
- Editor's Note: The type is TBD in SOL001. We need to make
- a common SOL001/SOL006 decision.";
- reference
- "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
- }
- uses security-group-rule;
+ leaf geographical-location-info {
+ type string;
+ description
+ "It provides information about the geographical location
+ (e.g. geographic coordinates or address of the building,
+ etc.) of the PNF. The cardinality 0 is used when the
+ location is unknown.
+ Editor's Note: The type is TBD in SOL001. We need to make
+ a common SOL001/SOL006 decision.";
+ reference
+ "GS NFV-IFA014: Section 6.6.2, Pnfd information element";
}
+ uses security-group-rule;
}
}
diff --git a/src/yang/etsi-nfv-pkg.yang b/src/yang/etsi-nfv-vnfd.yang
similarity index 66%
rename from src/yang/etsi-nfv-pkg.yang
rename to src/yang/etsi-nfv-vnfd.yang
index 62448d2ae6d04f0001ea3c809e4c24e55c651653..04598dc8efedbf473fc49c071e5fbb1ed962ce26 100644
--- a/src/yang/etsi-nfv-pkg.yang
+++ b/src/yang/etsi-nfv-vnfd.yang
@@ -1,6 +1,6 @@
-module etsi-nfv-pkg {
+module etsi-nfv-vnfd {
yang-version 1.1;
- namespace "urn:etsi:nfv:yang:etsi-nfv-pkg";
+ namespace "urn:etsi:nfv:yang:etsi-nfv-vnfd";
prefix pkg;
import etsi-nfv-descriptors {
@@ -11,7 +11,7 @@ module etsi-nfv-pkg {
"European Telecommunications Standards Institute (ETSI)";
description
- "Network Function Virtualization Package.";
+ "Virtual Network Function Descriptor.";
revision 2019-03-18 {
description
@@ -19,8 +19,8 @@ module etsi-nfv-pkg {
VNFD according to ETSI GS NFV-IFA 011 Ed261v254.";
}
- container pkg {
- presence "Package container.";
+ container vnfd {
+ presence "VNFD container.";
uses vnf:vnfd;
}
}