Loading example-data/complex-vnfd.xml +4 −8 Original line number Diff line number Diff line Loading @@ -78,11 +78,11 @@ <num-virtual-cpu>16</num-virtual-cpu> </virtual-cpu> </virtual-compute-desc> <virtual-storage-descriptor> <virtual-storage-desc> <id>root</id> <type-of-storage>root-storage</type-of-storage> <size-of-storage>10</size-of-storage> </virtual-storage-descriptor> </virtual-storage-desc> <sw-image-desc> <id>CP</id> <name>CP</name> Loading Loading @@ -116,17 +116,13 @@ <int-virtual-link-desc> <id>internal-vl</id> <connectivity-type> <layer-protocol> <protocol>ipv4</protocol> </layer-protocol> <layer-protocol>ipv4</layer-protocol> </connectivity-type> </int-virtual-link-desc> <int-virtual-link-desc> <id>mgmt</id> <connectivity-type> <layer-protocol> <protocol>ipv4</protocol> </layer-protocol> <layer-protocol>ipv4</layer-protocol> </connectivity-type> </int-virtual-link-desc> <ext-cpd> Loading example-data/nfv-nsd.xml +151 −134 Original line number Diff line number Diff line <nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd"> <?xml version="1.0" encoding="UTF-8"?> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors"> <vnfd> <id>ASA</id> <provider>My Company</provider> Loading @@ -11,15 +13,15 @@ <name>Firewall VDU</name> <int-cpd> <id>inside</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <int-cpd> <id>outside</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> <virtual-storage-desc>asa-vsd</virtual-storage-desc> Loading @@ -36,7 +38,7 @@ </virtual-compute-desc> <virtual-storage-desc> <id>asa-vsd</id> <type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:root-storage</type-of-storage> <type-of-storage>root-storage</type-of-storage> <size-of-storage>0</size-of-storage> </virtual-storage-desc> <sw-image-desc> Loading @@ -44,14 +46,15 @@ <name>ASA image</name> <version>1.1</version> <checksum> <algorithm xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:sha-224</algorithm> <algorithm>sha-224</algorithm> <hash>deadbeef</hash> </checksum> <container-format>bare</container-format> <disk-format>qcow2</disk-format> <min-disk>1</min-disk> <min-ram>2.0</min-ram> <size>1</size> <image>http://www.cisco.com/asa.qcow2</image> <image>http://mycompany.images.com/asa.qcow2</image> </sw-image-desc> <ext-cpd> <id>inside</id> Loading @@ -59,7 +62,7 @@ <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> Loading @@ -67,7 +70,7 @@ <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>outside</id> Loading @@ -75,7 +78,7 @@ <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <df> <id>normal</id> Loading @@ -99,8 +102,21 @@ </vdu-level> </instantiation-level> <default-instantiation-level>single</default-instantiation-level> <lcm-operations-configuration> <scale-vnf-to-level-op-config> <arbitrary-target-levels-supported>true</arbitrary-target-levels-supported> </scale-vnf-to-level-op-config> <terminate-vnf-op-config> <min-graceful-termination>1</min-graceful-termination> </terminate-vnf-op-config> <operate-vnf-op-config> <min-graceful-stop-timeout>1</min-graceful-stop-timeout> </operate-vnf-op-config> </lcm-operations-configuration> </df> </vnfd> </nfv> <nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd"> <nsd> <id>firewall-nsd</id> <vnfd-id>ASA</vnfd-id> Loading Loading @@ -133,3 +149,4 @@ </df> </nsd> </nsd> </config> example-data/nfv-vnfd.xml +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ </checksum> <container-format>bare</container-format> <disk-format>qcow2</disk-format> <min-disk>1</min-disk> <min-ram>2.0</min-ram> <size>1</size> <image>http://www.cisco.com/asa.qcow2</image> Loading src/yang/etsi-nfv-ns.yang +20 −18 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ submodule etsi-nfv-ns { leaf-list vnfd-id { type leafref { path "../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "References the VNFD of a constituent VNF."; Loading @@ -108,7 +108,7 @@ submodule etsi-nfv-ns { leaf-list pnfd-id { type leafref { path "../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } description "References the PNFD of a constituent PNF."; Loading Loading @@ -164,7 +164,7 @@ submodule etsi-nfv-ns { leaf vnfd-id { mandatory true; type leafref { path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } must "boolean(../../../vnfd-id[.=current()])"; } Loading @@ -172,7 +172,7 @@ submodule etsi-nfv-ns { leaf ext-cpd-id { mandatory true; type leafref { path "deref(../vnfd-id)/../ext-cpd/id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading @@ -181,7 +181,7 @@ submodule etsi-nfv-ns { leaf pnfd-id { mandatory true; type leafref { path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } must "boolean(../pnfd-id[.=current()])"; } Loading @@ -189,7 +189,7 @@ submodule etsi-nfv-ns { leaf ext-cpd-id { mandatory true; type leafref { path "deref(../pnfd-id)/../ext-cpd/id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading Loading @@ -472,12 +472,12 @@ submodule etsi-nfv-ns { must ". = deref(../../vnfd-profile-id)/../vnfd-id" { } type leafref { path "../../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } } leaf cpd-id { type leafref { path "deref(../vnfd-id)/../ext-cpd/id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading @@ -486,12 +486,12 @@ submodule etsi-nfv-ns { must ". = deref(../../pnfd-profile-id)/../pnfd-id" { } type leafref { path "../../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } } leaf pnf-cpd-id { type leafref { path "deref(../pnfd-id)/../ext-cpd/id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading Loading @@ -642,6 +642,7 @@ submodule etsi-nfv-ns { leaf-list autoscale-rule { type string; } list lifecycle-management-script { key "event"; leaf event { Loading Loading @@ -721,7 +722,7 @@ submodule etsi-nfv-ns { leaf vnfd-id { mandatory true; type leafref { path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "References a VNFD."; Loading @@ -733,7 +734,7 @@ submodule etsi-nfv-ns { leaf flavour-id { mandatory true; type leafref { path "deref(../vnfd-id)/../df/id"; path "deref(../vnfd-id)/../nfv:df/nfv:id"; } description "Identifies a flavour within the VNFD."; Loading @@ -745,7 +746,8 @@ submodule etsi-nfv-ns { leaf instantiation-level { mandatory true; type leafref { path "deref(../flavour-id)/../instantiation-level/id"; path "deref(../flavour-id)/../nfv:instantiation-level/" + "nfv:id"; } description "Identifier of the instantiation level of the VNF DF Loading Loading @@ -845,7 +847,7 @@ submodule etsi-nfv-ns { leaf constituent-cpd-id { type leafref { path "deref(../../../vnfd-id)/../ext-cpd/id"; path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id"; } description "A reference to the descriptor of a connection point Loading Loading @@ -879,7 +881,7 @@ submodule etsi-nfv-ns { leaf pnfd-id { type leafref { path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } description "References a PNFD."; Loading Loading @@ -935,7 +937,7 @@ submodule etsi-nfv-ns { leaf constituent-cpd-id { type leafref { path "deref(../../../pnfd-id)/../ext-cpd/id"; path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id"; } description "A reference to the descriptor of a connection point Loading Loading @@ -1506,7 +1508,7 @@ submodule etsi-nfv-ns { container vnf-indicator-info { leaf vnfd-id { type leafref { path "../../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "Identifies a VNFD."; Loading @@ -1518,7 +1520,7 @@ submodule etsi-nfv-ns { leaf vnf-indicator { mandatory true; type leafref { path "deref(../vnfd-id)/../indicator/id"; path "deref(../vnfd-id)/../nfv:indicator/nfv:id"; } description "Identifies a VNF indicator within the VNFD."; Loading src/yang/etsi-nfv-nsd.yang +0 −26 Original line number Diff line number Diff line Loading @@ -20,19 +20,6 @@ module etsi-nfv-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 { key "id"; max-elements 1; Loading @@ -45,18 +32,5 @@ module etsi-nfv-nsd { "GS NFV-IFA014: Section 6.2.2, Network Service Descriptor 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; } } } Loading
example-data/complex-vnfd.xml +4 −8 Original line number Diff line number Diff line Loading @@ -78,11 +78,11 @@ <num-virtual-cpu>16</num-virtual-cpu> </virtual-cpu> </virtual-compute-desc> <virtual-storage-descriptor> <virtual-storage-desc> <id>root</id> <type-of-storage>root-storage</type-of-storage> <size-of-storage>10</size-of-storage> </virtual-storage-descriptor> </virtual-storage-desc> <sw-image-desc> <id>CP</id> <name>CP</name> Loading Loading @@ -116,17 +116,13 @@ <int-virtual-link-desc> <id>internal-vl</id> <connectivity-type> <layer-protocol> <protocol>ipv4</protocol> </layer-protocol> <layer-protocol>ipv4</layer-protocol> </connectivity-type> </int-virtual-link-desc> <int-virtual-link-desc> <id>mgmt</id> <connectivity-type> <layer-protocol> <protocol>ipv4</protocol> </layer-protocol> <layer-protocol>ipv4</layer-protocol> </connectivity-type> </int-virtual-link-desc> <ext-cpd> Loading
example-data/nfv-nsd.xml +151 −134 Original line number Diff line number Diff line <nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd"> <?xml version="1.0" encoding="UTF-8"?> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors"> <vnfd> <id>ASA</id> <provider>My Company</provider> Loading @@ -11,15 +13,15 @@ <name>Firewall VDU</name> <int-cpd> <id>inside</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <int-cpd> <id>management</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <int-cpd> <id>outside</id> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </int-cpd> <virtual-compute-desc>asa-vcd</virtual-compute-desc> <virtual-storage-desc>asa-vsd</virtual-storage-desc> Loading @@ -36,7 +38,7 @@ </virtual-compute-desc> <virtual-storage-desc> <id>asa-vsd</id> <type-of-storage xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:root-storage</type-of-storage> <type-of-storage>root-storage</type-of-storage> <size-of-storage>0</size-of-storage> </virtual-storage-desc> <sw-image-desc> Loading @@ -44,14 +46,15 @@ <name>ASA image</name> <version>1.1</version> <checksum> <algorithm xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:sha-224</algorithm> <algorithm>sha-224</algorithm> <hash>deadbeef</hash> </checksum> <container-format>bare</container-format> <disk-format>qcow2</disk-format> <min-disk>1</min-disk> <min-ram>2.0</min-ram> <size>1</size> <image>http://www.cisco.com/asa.qcow2</image> <image>http://mycompany.images.com/asa.qcow2</image> </sw-image-desc> <ext-cpd> <id>inside</id> Loading @@ -59,7 +62,7 @@ <vdu-id>firewall</vdu-id> <cpd>inside</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>management</id> Loading @@ -67,7 +70,7 @@ <vdu-id>firewall</vdu-id> <cpd>management</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <ext-cpd> <id>outside</id> Loading @@ -75,7 +78,7 @@ <vdu-id>firewall</vdu-id> <cpd>outside</cpd> </int-cpd> <layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol> </ext-cpd> <df> <id>normal</id> Loading @@ -99,8 +102,21 @@ </vdu-level> </instantiation-level> <default-instantiation-level>single</default-instantiation-level> <lcm-operations-configuration> <scale-vnf-to-level-op-config> <arbitrary-target-levels-supported>true</arbitrary-target-levels-supported> </scale-vnf-to-level-op-config> <terminate-vnf-op-config> <min-graceful-termination>1</min-graceful-termination> </terminate-vnf-op-config> <operate-vnf-op-config> <min-graceful-stop-timeout>1</min-graceful-stop-timeout> </operate-vnf-op-config> </lcm-operations-configuration> </df> </vnfd> </nfv> <nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd"> <nsd> <id>firewall-nsd</id> <vnfd-id>ASA</vnfd-id> Loading Loading @@ -133,3 +149,4 @@ </df> </nsd> </nsd> </config>
example-data/nfv-vnfd.xml +1 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ </checksum> <container-format>bare</container-format> <disk-format>qcow2</disk-format> <min-disk>1</min-disk> <min-ram>2.0</min-ram> <size>1</size> <image>http://www.cisco.com/asa.qcow2</image> Loading
src/yang/etsi-nfv-ns.yang +20 −18 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ submodule etsi-nfv-ns { leaf-list vnfd-id { type leafref { path "../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "References the VNFD of a constituent VNF."; Loading @@ -108,7 +108,7 @@ submodule etsi-nfv-ns { leaf-list pnfd-id { type leafref { path "../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } description "References the PNFD of a constituent PNF."; Loading Loading @@ -164,7 +164,7 @@ submodule etsi-nfv-ns { leaf vnfd-id { mandatory true; type leafref { path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } must "boolean(../../../vnfd-id[.=current()])"; } Loading @@ -172,7 +172,7 @@ submodule etsi-nfv-ns { leaf ext-cpd-id { mandatory true; type leafref { path "deref(../vnfd-id)/../ext-cpd/id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading @@ -181,7 +181,7 @@ submodule etsi-nfv-ns { leaf pnfd-id { mandatory true; type leafref { path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } must "boolean(../pnfd-id[.=current()])"; } Loading @@ -189,7 +189,7 @@ submodule etsi-nfv-ns { leaf ext-cpd-id { mandatory true; type leafref { path "deref(../pnfd-id)/../ext-cpd/id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading Loading @@ -472,12 +472,12 @@ submodule etsi-nfv-ns { must ". = deref(../../vnfd-profile-id)/../vnfd-id" { } type leafref { path "../../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } } leaf cpd-id { type leafref { path "deref(../vnfd-id)/../ext-cpd/id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading @@ -486,12 +486,12 @@ submodule etsi-nfv-ns { must ". = deref(../../pnfd-profile-id)/../pnfd-id" { } type leafref { path "../../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } } leaf pnf-cpd-id { type leafref { path "deref(../pnfd-id)/../ext-cpd/id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; } } } Loading Loading @@ -642,6 +642,7 @@ submodule etsi-nfv-ns { leaf-list autoscale-rule { type string; } list lifecycle-management-script { key "event"; leaf event { Loading Loading @@ -721,7 +722,7 @@ submodule etsi-nfv-ns { leaf vnfd-id { mandatory true; type leafref { path "../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "References a VNFD."; Loading @@ -733,7 +734,7 @@ submodule etsi-nfv-ns { leaf flavour-id { mandatory true; type leafref { path "deref(../vnfd-id)/../df/id"; path "deref(../vnfd-id)/../nfv:df/nfv:id"; } description "Identifies a flavour within the VNFD."; Loading @@ -745,7 +746,8 @@ submodule etsi-nfv-ns { leaf instantiation-level { mandatory true; type leafref { path "deref(../flavour-id)/../instantiation-level/id"; path "deref(../flavour-id)/../nfv:instantiation-level/" + "nfv:id"; } description "Identifier of the instantiation level of the VNF DF Loading Loading @@ -845,7 +847,7 @@ submodule etsi-nfv-ns { leaf constituent-cpd-id { type leafref { path "deref(../../../vnfd-id)/../ext-cpd/id"; path "deref(../../../vnfd-id)/../nfv:ext-cpd/nfv:id"; } description "A reference to the descriptor of a connection point Loading Loading @@ -879,7 +881,7 @@ submodule etsi-nfv-ns { leaf pnfd-id { type leafref { path "../../../../pnfd/id"; path "/nfv:nfv/nfv:pnfd/nfv:id"; } description "References a PNFD."; Loading Loading @@ -935,7 +937,7 @@ submodule etsi-nfv-ns { leaf constituent-cpd-id { type leafref { path "deref(../../../pnfd-id)/../ext-cpd/id"; path "deref(../../../pnfd-id)/../nfv:ext-cpd/nfv:id"; } description "A reference to the descriptor of a connection point Loading Loading @@ -1506,7 +1508,7 @@ submodule etsi-nfv-ns { container vnf-indicator-info { leaf vnfd-id { type leafref { path "../../../../../vnfd/id"; path "/nfv:nfv/nfv:vnfd/nfv:id"; } description "Identifies a VNFD."; Loading @@ -1518,7 +1520,7 @@ submodule etsi-nfv-ns { leaf vnf-indicator { mandatory true; type leafref { path "deref(../vnfd-id)/../indicator/id"; path "deref(../vnfd-id)/../nfv:indicator/nfv:id"; } description "Identifies a VNF indicator within the VNFD."; Loading
src/yang/etsi-nfv-nsd.yang +0 −26 Original line number Diff line number Diff line Loading @@ -20,19 +20,6 @@ module etsi-nfv-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 { key "id"; max-elements 1; Loading @@ -45,18 +32,5 @@ module etsi-nfv-nsd { "GS NFV-IFA014: Section 6.2.2, Network Service Descriptor 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; } } }