Commit 022fede6 authored by jethanandani's avatar jethanandani
Browse files

Merge branch 'bug#244' into 'v2.7.1'

Address bug#244

See merge request !47
parents 5e261d31 f433737c
Pipeline #1288 passed with stage
in 0 seconds
<nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd"> <?xml version="1.0" encoding="UTF-8"?>
<vnfd> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<id>ASA</id> <nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
<provider>My Company</provider> <vnfd>
<product-name>My Company ASAv</product-name> <id>ASA</id>
<software-version>9.8</software-version> <provider>My Company</provider>
<version>9.8</version> <product-name>My Company ASAv</product-name>
<vnfm-info>My Company Vnfm</vnfm-info> <software-version>9.8</software-version>
<vdu> <version>9.8</version>
<id>firewall</id> <vnfm-info>My Company Vnfm</vnfm-info>
<name>Firewall VDU</name> <vdu>
<int-cpd> <id>firewall</id>
<id>inside</id> <name>Firewall VDU</name>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <int-cpd>
</int-cpd> <id>inside</id>
<int-cpd> <layer-protocol>ethernet</layer-protocol>
<id>management</id> </int-cpd>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <int-cpd>
</int-cpd> <id>management</id>
<int-cpd> <layer-protocol>ethernet</layer-protocol>
<id>outside</id> </int-cpd>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <int-cpd>
</int-cpd> <id>outside</id>
<virtual-compute-desc>asa-vcd</virtual-compute-desc> <layer-protocol>ethernet</layer-protocol>
<virtual-storage-desc>asa-vsd</virtual-storage-desc> </int-cpd>
<sw-image-desc>asa-image</sw-image-desc> <virtual-compute-desc>asa-vcd</virtual-compute-desc>
</vdu> <virtual-storage-desc>asa-vsd</virtual-storage-desc>
<virtual-compute-desc> <sw-image-desc>asa-image</sw-image-desc>
<id>asa-vcd</id> </vdu>
<virtual-memory> <virtual-compute-desc>
<size>4.0</size> <id>asa-vcd</id>
</virtual-memory> <virtual-memory>
<virtual-cpu> <size>4.0</size>
<num-virtual-cpu>2</num-virtual-cpu> </virtual-memory>
</virtual-cpu> <virtual-cpu>
</virtual-compute-desc> <num-virtual-cpu>2</num-virtual-cpu>
<virtual-storage-desc> </virtual-cpu>
<id>asa-vsd</id> </virtual-compute-desc>
<type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:root-storage</type-of-storage> <virtual-storage-desc>
<size-of-storage>0</size-of-storage> <id>asa-vsd</id>
</virtual-storage-desc> <type-of-storage>root-storage</type-of-storage>
<sw-image-desc> <size-of-storage>0</size-of-storage>
<id>asa-image</id> </virtual-storage-desc>
<name>ASA image</name> <sw-image-desc>
<version>1.1</version> <id>asa-image</id>
<checksum> <name>ASA image</name>
<algorithm xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:sha-224</algorithm> <version>1.1</version>
<hash>deadbeef</hash> <checksum>
</checksum> <algorithm>sha-224</algorithm>
<container-format>bare</container-format> <hash>deadbeef</hash>
<disk-format>qcow2</disk-format> </checksum>
<min-disk>1</min-disk> <container-format>bare</container-format>
<min-ram>2.0</min-ram> <disk-format>qcow2</disk-format>
<size>1</size> <min-disk>1</min-disk>
<image>http://www.cisco.com/asa.qcow2</image> <min-ram>2.0</min-ram>
</sw-image-desc> <size>1</size>
<ext-cpd> <image>http://mycompany.images.com/asa.qcow2</image>
<id>inside</id> </sw-image-desc>
<int-cpd> <ext-cpd>
<vdu-id>firewall</vdu-id> <id>inside</id>
<cpd>inside</cpd> <int-cpd>
</int-cpd> <vdu-id>firewall</vdu-id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <cpd>inside</cpd>
</ext-cpd> </int-cpd>
<ext-cpd> <layer-protocol>ethernet</layer-protocol>
<id>management</id> </ext-cpd>
<int-cpd> <ext-cpd>
<vdu-id>firewall</vdu-id> <id>management</id>
<cpd>management</cpd> <int-cpd>
</int-cpd> <vdu-id>firewall</vdu-id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <cpd>management</cpd>
</ext-cpd> </int-cpd>
<ext-cpd> <layer-protocol>ethernet</layer-protocol>
<id>outside</id> </ext-cpd>
<int-cpd> <ext-cpd>
<vdu-id>firewall</vdu-id> <id>outside</id>
<cpd>outside</cpd> <int-cpd>
</int-cpd> <vdu-id>firewall</vdu-id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <cpd>outside</cpd>
</ext-cpd> </int-cpd>
<df> <layer-protocol>ethernet</layer-protocol>
<id>normal</id> </ext-cpd>
<vdu-profile> <df>
<id>firewall</id> <id>normal</id>
<min-number-of-instances>1</min-number-of-instances> <vdu-profile>
<max-number-of-instances>2</max-number-of-instances> <id>firewall</id>
</vdu-profile> <min-number-of-instances>1</min-number-of-instances>
<instantiation-level> <max-number-of-instances>2</max-number-of-instances>
<id>double</id> </vdu-profile>
<vdu-level> <instantiation-level>
<vdu-id>firewall</vdu-id> <id>double</id>
<number-of-instances>2</number-of-instances> <vdu-level>
</vdu-level> <vdu-id>firewall</vdu-id>
</instantiation-level> <number-of-instances>2</number-of-instances>
<instantiation-level> </vdu-level>
<id>single</id> </instantiation-level>
<vdu-level> <instantiation-level>
<vdu-id>firewall</vdu-id> <id>single</id>
<number-of-instances>1</number-of-instances> <vdu-level>
</vdu-level> <vdu-id>firewall</vdu-id>
</instantiation-level> <number-of-instances>1</number-of-instances>
<default-instantiation-level>single</default-instantiation-level> </vdu-level>
</df> </instantiation-level>
</vnfd> <default-instantiation-level>single</default-instantiation-level>
<nsd> <lcm-operations-configuration>
<id>firewall-nsd</id> <scale-vnf-to-level-op-config>
<vnfd-id>ASA</vnfd-id> <arbitrary-target-levels-supported>true</arbitrary-target-levels-supported>
<sapd> </scale-vnf-to-level-op-config>
<id>inside</id> <terminate-vnf-op-config>
</sapd> <min-graceful-termination>1</min-graceful-termination>
<sapd> </terminate-vnf-op-config>
<id>management</id> <operate-vnf-op-config>
</sapd> <min-graceful-stop-timeout>1</min-graceful-stop-timeout>
<sapd> </operate-vnf-op-config>
<id>outside</id> </lcm-operations-configuration>
</sapd> </df>
<df> </vnfd>
<id>firewall</id> </nfv>
<vnf-profile> <nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd">
<id>firewall</id> <nsd>
<vnfd-id>ASA</vnfd-id> <id>firewall-nsd</id>
<flavour-id>normal</flavour-id> <vnfd-id>ASA</vnfd-id>
<instantiation-level>single</instantiation-level> <sapd>
<min-number-of-instances>1</min-number-of-instances> <id>inside</id>
<max-number-of-instances>1</max-number-of-instances> </sapd>
</vnf-profile> <sapd>
<ns-instantiation-level> <id>management</id>
<id>single</id> </sapd>
<vnf-to-level-mapping> <sapd>
<vnf-profile-id>firewall</vnf-profile-id> <id>outside</id>
<number-of-instances>1</number-of-instances> </sapd>
</vnf-to-level-mapping> <df>
</ns-instantiation-level> <id>firewall</id>
</df> <vnf-profile>
<id>firewall</id>
<vnfd-id>ASA</vnfd-id>
<flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances>
</vnf-profile>
<ns-instantiation-level>
<id>single</id>
<vnf-to-level-mapping>
<vnf-profile-id>firewall</vnf-profile-id>
<number-of-instances>1</number-of-instances>
</vnf-to-level-mapping>
</ns-instantiation-level>
</df>
</nsd>
</nsd> </nsd>
</nsd> </config>
...@@ -97,7 +97,7 @@ submodule etsi-nfv-ns { ...@@ -97,7 +97,7 @@ submodule etsi-nfv-ns {
leaf-list vnfd-id { leaf-list vnfd-id {
type leafref { type leafref {
path "../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id";
} }
description description
"References the VNFD of a constituent VNF."; "References the VNFD of a constituent VNF.";
...@@ -108,7 +108,7 @@ submodule etsi-nfv-ns { ...@@ -108,7 +108,7 @@ submodule etsi-nfv-ns {
leaf-list pnfd-id { leaf-list pnfd-id {
type leafref { type leafref {
path "../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id";
} }
description description
"References the PNFD of a constituent PNF."; "References the PNFD of a constituent PNF.";
...@@ -164,7 +164,7 @@ submodule etsi-nfv-ns { ...@@ -164,7 +164,7 @@ submodule etsi-nfv-ns {
leaf vnfd-id { leaf vnfd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id";
} }
must "boolean(../../../vnfd-id[.=current()])"; must "boolean(../../../vnfd-id[.=current()])";
} }
...@@ -172,7 +172,7 @@ submodule etsi-nfv-ns { ...@@ -172,7 +172,7 @@ submodule etsi-nfv-ns {
leaf ext-cpd-id { leaf ext-cpd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../vnfd-id)/../ext-cpd/id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
} }
} }
} }
...@@ -181,7 +181,7 @@ submodule etsi-nfv-ns { ...@@ -181,7 +181,7 @@ submodule etsi-nfv-ns {
leaf pnfd-id { leaf pnfd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id";
} }
must "boolean(../pnfd-id[.=current()])"; must "boolean(../pnfd-id[.=current()])";
} }
...@@ -189,7 +189,7 @@ submodule etsi-nfv-ns { ...@@ -189,7 +189,7 @@ submodule etsi-nfv-ns {
leaf ext-cpd-id { leaf ext-cpd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../pnfd-id)/../ext-cpd/id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
} }
} }
} }
...@@ -466,19 +466,18 @@ submodule etsi-nfv-ns { ...@@ -466,19 +466,18 @@ submodule etsi-nfv-ns {
CpdInConstituentElement information element"; CpdInConstituentElement information element";
} }
choice constituent-cpd-id { choice constituent-cpd-id {
container vnf { container vnf {
leaf vnfd-id { leaf vnfd-id {
must ". = deref(../../vnfd-profile-id)/../vnfd-id" { must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
}
type leafref {
path "../../../../../../vnfd/id";
}
} }
leaf cpd-id { type leafref {
type leafref { path "/nfv:nfv/nfv:vnfd/nfv:id";
path "deref(../vnfd-id)/../ext-cpd/id"; }
} }
leaf cpd-id {
type leafref {
path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
} }
} }
container pnf { container pnf {
...@@ -489,10 +488,13 @@ submodule etsi-nfv-ns { ...@@ -489,10 +488,13 @@ submodule etsi-nfv-ns {
path "../../../../../../pnfd/id"; path "../../../../../../pnfd/id";
} }
} }
leaf pnf-cpd-id { type leafref {
type leafref { path "/nfv:nfv/nfv:pnfd/nfv:id";
path "deref(../pnfd-id)/../ext-cpd/id"; }
} }
leaf pnf-cpd-id {
type leafref {
path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
} }
} }
container ns { container ns {
...@@ -637,6 +639,7 @@ submodule etsi-nfv-ns { ...@@ -637,6 +639,7 @@ submodule etsi-nfv-ns {
leaf-list autoscale-rule { leaf-list autoscale-rule {
type string; type string;
} }
list lifecycle-management-script { list lifecycle-management-script {
key "event"; key "event";
leaf event { leaf event {
...@@ -716,7 +719,7 @@ submodule etsi-nfv-ns { ...@@ -716,7 +719,7 @@ submodule etsi-nfv-ns {
leaf vnfd-id { leaf vnfd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id";
} }
description description
"References a VNFD."; "References a VNFD.";
...@@ -728,7 +731,7 @@ submodule etsi-nfv-ns { ...@@ -728,7 +731,7 @@ submodule etsi-nfv-ns {
leaf flavour-id { leaf flavour-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../vnfd-id)/../df/id"; path "deref(../vnfd-id)/../nfv:df/nfv:id";
} }
description description
"Identifies a flavour within the VNFD."; "Identifies a flavour within the VNFD.";
...@@ -740,7 +743,8 @@ submodule etsi-nfv-ns { ...@@ -740,7 +743,8 @@ submodule etsi-nfv-ns {
leaf instantiation-level { leaf instantiation-level {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../flavour-id)/../instantiation-level/id"; path "deref(../flavour-id)/../nfv:instantiation-level/" +
"nfv:id";
} }
description description
"Identifier of the instantiation level of the VNF DF "Identifier of the instantiation level of the VNF DF
...@@ -840,7 +844,7 @@ submodule etsi-nfv-ns { ...@@ -840,7 +844,7 @@ submodule etsi-nfv-ns {
leaf constituent-cpd-id { leaf constituent-cpd-id {
type leafref { type leafref {
path "deref(../../../vnfd-id)/../ext-cpd/id"; path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id";
} }
description description
"A reference to the descriptor of a connection point "A reference to the descriptor of a connection point
...@@ -874,7 +878,7 @@ submodule etsi-nfv-ns { ...@@ -874,7 +878,7 @@ submodule etsi-nfv-ns {
leaf pnfd-id { leaf pnfd-id {
type leafref { type leafref {
path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id";
} }
description description
"References a PNFD."; "References a PNFD.";
...@@ -930,7 +934,7 @@ submodule etsi-nfv-ns { ...@@ -930,7 +934,7 @@ submodule etsi-nfv-ns {
leaf constituent-cpd-id { leaf constituent-cpd-id {
type leafref { type leafref {
path "deref(../../../pnfd-id)/../ext-cpd/id"; path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id";
} }
description description
"A reference to the descriptor of a connection point "A reference to the descriptor of a connection point
...@@ -1501,7 +1505,7 @@ submodule etsi-nfv-ns { ...@@ -1501,7 +1505,7 @@ submodule etsi-nfv-ns {
container vnf-indicator-info { container vnf-indicator-info {
leaf vnfd-id { leaf vnfd-id {
type leafref { type leafref {
path "../../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id";
} }
description description
"Identifies a VNFD."; "Identifies a VNFD.";
...@@ -1513,7 +1517,7 @@ submodule etsi-nfv-ns { ...@@ -1513,7 +1517,7 @@ submodule etsi-nfv-ns {
leaf vnf-indicator { leaf vnf-indicator {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../vnfd-id)/../indicator/id"; path "deref(../vnfd-id)/../nfv:indicator/nfv:id";
} }
description description
"Identifies a VNF indicator within the VNFD."; "Identifies a VNF indicator within the VNFD.";
......
...@@ -20,19 +20,6 @@ module etsi-nfv-nsd { ...@@ -20,19 +20,6 @@ module etsi-nfv-nsd {
} }
container nsd { container nsd {
list vnfd {
key "id";
description
"A VNF Descriptor (VNFD) is a deployment template which
describes a VNF in terms of deployment and operational
behaviour requirements. It also contains connectivity,
interface and virtualised resource requirements";
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element";
uses vnf:vnfd;
}
list nsd { list nsd {
key "id"; key "id";
max-elements 1; max-elements 1;
...@@ -45,18 +32,5 @@ module etsi-nfv-nsd { ...@@ -45,18 +32,5 @@ module etsi-nfv-nsd {
"GS NFV-IFA014: Section 6.2.2, Network Service Descriptor "GS NFV-IFA014: Section 6.2.2, Network Service Descriptor
information element"; information element";
} }
list pnfd {
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 vnf:pnfd;
}
} }
} }
...@@ -237,7 +237,7 @@ submodule etsi-nfv-vnf { ...@@ -237,7 +237,7 @@ submodule etsi-nfv-vnf {
leaf int-virtual-link-desc { leaf int-virtual-link-desc {
type leafref { type leafref {
path "../../../int-virtual-link-desc/id"; path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
} }
description description
"Reference of the internal VLD which this internal CPD "Reference of the internal VLD which this internal CPD
...@@ -260,7 +260,7 @@ submodule etsi-nfv-vnf { ...@@ -260,7 +260,7 @@ submodule etsi-nfv-vnf {
leaf nicio-requirements { leaf nicio-requirements {
type leafref { type leafref {
path "../../../virtual-compute-desc/id"; path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/nfv:id";
} }
description description
"This references (couples) the CPD with any logical node I/O "This references (couples) the CPD with any logical node I/O
...@@ -1254,7 +1254,7 @@ submodule etsi-nfv-vnf { ...@@ -1254,7 +1254,7 @@ submodule etsi-nfv-vnf {
Descriptor (CPD) connect. Either intVirtualLinkDesc or Descriptor (CPD) connect. Either intVirtualLinkDesc or
intCpd shall be present."; intCpd shall be present.";
type leafref { type leafref {
path "../../int-virtual-link-desc/id"; path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
} }
} }
...@@ -1292,7 +1292,7 @@ submodule etsi-nfv-vnf { ...@@ -1292,7 +1292,7 @@ submodule etsi-nfv-vnf {
leaf nicio-requirements { leaf nicio-requirements {
type leafref { type leafref {
path "../../virtual-compute-desc/id"; path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/nfv:id";
} }
description description
"This references (couples) the CPD with any logical node I/O "This references (couples) the CPD with any logical node I/O
...@@ -1472,7 +1472,7 @@ submodule etsi-nfv-vnf { ...@@ -1472,7 +1472,7 @@ submodule etsi-nfv-vnf {
leaf id { leaf id {
type leafref { type leafref {
path "../../../int-virtual-link-desc/id"; path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id";
} }
description