diff --git a/example-data/nfv-nsd.xml b/example-data/nfv-nsd.xml index 03423e679e4915da8a7be7fccd2b929935b0e3cf..85d14555a4725517282eac587e58ba387e7806b0 100644 --- a/example-data/nfv-nsd.xml +++ b/example-data/nfv-nsd.xml @@ -1,136 +1,152 @@ - - - ASA - My Company - My Company ASAv - 9.8 - 9.8 - My Company Vnfm - - firewall - Firewall VDU - - inside - nfv:ethernet - - - management - nfv:ethernet - - - outside - nfv:ethernet - - asa-vcd - asa-vsd - asa-image - - - asa-vcd - - 4.0 - - - 2 - - - - asa-vsd - nfv:root-storage - 0 - - - asa-image - ASA image - 1.1 - - nfv:sha-224 - deadbeef - - bare - qcow2 - 1 - 2.0 - 1 - http://www.cisco.com/asa.qcow2 - - - inside - - firewall - inside - - nfv:ethernet - - - management - - firewall - management - - nfv:ethernet - - - outside - - firewall - outside - - nfv:ethernet - - - normal - - firewall - 1 - 2 - - - double - - firewall - 2 - - - - single - - firewall - 1 - - - single - - - - firewall-nsd - ASA - - inside - - - management - - - outside - - - firewall - - firewall - ASA - normal - single - 1 - 1 - - - single - - firewall - 1 - - - + + + + + ASA + My Company + My Company ASAv + 9.8 + 9.8 + My Company Vnfm + + firewall + Firewall VDU + + inside + ethernet + + + management + ethernet + + + outside + ethernet + + asa-vcd + asa-vsd + asa-image + + + asa-vcd + + 4.0 + + + 2 + + + + asa-vsd + root-storage + 0 + + + asa-image + ASA image + 1.1 + + sha-224 + deadbeef + + bare + qcow2 + 1 + 2.0 + 1 + http://mycompany.images.com/asa.qcow2 + + + inside + + firewall + inside + + ethernet + + + management + + firewall + management + + ethernet + + + outside + + firewall + outside + + ethernet + + + normal + + firewall + 1 + 2 + + + double + + firewall + 2 + + + + single + + firewall + 1 + + + single + + + true + + + 1 + + + 1 + + + + + + + + firewall-nsd + ASA + + inside + + + management + + + outside + + + firewall + + firewall + ASA + normal + single + 1 + 1 + + + single + + firewall + 1 + + + + - + diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 5f80ffe5d5dfe17f92b0136df0368e18b2c8efe8..b9302202d214782101500b995d98209cb858abf9 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -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."; @@ -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."; @@ -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()])"; } @@ -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"; } } } @@ -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()])"; } @@ -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"; } } } @@ -466,19 +466,18 @@ submodule etsi-nfv-ns { CpdInConstituentElement information element"; } - choice constituent-cpd-id { - container vnf { - leaf vnfd-id { - must ". = deref(../../vnfd-profile-id)/../vnfd-id" { - } - type leafref { - path "../../../../../../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)/../ext-cpd/id"; - } + type leafref { + path "/nfv:nfv/nfv:vnfd/nfv:id"; + } + } + leaf cpd-id { + type leafref { + path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; } } container pnf { @@ -489,10 +488,13 @@ submodule etsi-nfv-ns { path "../../../../../../pnfd/id"; } } - leaf pnf-cpd-id { - type leafref { - path "deref(../pnfd-id)/../ext-cpd/id"; - } + type leafref { + path "/nfv:nfv/nfv:pnfd/nfv:id"; + } + } + leaf pnf-cpd-id { + type leafref { + path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; } } container ns { @@ -637,6 +639,7 @@ submodule etsi-nfv-ns { leaf-list autoscale-rule { type string; } + list lifecycle-management-script { key "event"; leaf event { @@ -716,7 +719,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."; @@ -728,7 +731,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."; @@ -740,7 +743,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 @@ -840,7 +844,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 @@ -874,7 +878,7 @@ submodule etsi-nfv-ns { leaf pnfd-id { type leafref { - path "../../../../pnfd/id"; + path "/nfv:nfv/nfv:pnfd/nfv:id"; } description "References a PNFD."; @@ -930,7 +934,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 @@ -1501,7 +1505,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."; @@ -1513,7 +1517,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."; diff --git a/src/yang/etsi-nfv-nsd.yang b/src/yang/etsi-nfv-nsd.yang index 52cd50858104cbfdf6de45381c30bdd3f4dc4fd6..ad3d05df04327b00f511d3ffc17da85101f14e96 100644 --- a/src/yang/etsi-nfv-nsd.yang +++ b/src/yang/etsi-nfv-nsd.yang @@ -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; @@ -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; - } } } diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 6aa9daa96d78544235eb400db0c70fed8997ad26..48cc23369ee60f6de42fd45e9d7553cc80735a13 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -237,7 +237,7 @@ submodule etsi-nfv-vnf { leaf int-virtual-link-desc { type leafref { - path "../../../int-virtual-link-desc/id"; + path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id"; } description "Reference of the internal VLD which this internal CPD @@ -260,7 +260,7 @@ submodule etsi-nfv-vnf { leaf nicio-requirements { type leafref { - path "../../../virtual-compute-desc/id"; + path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/nfv:id"; } description "This references (couples) the CPD with any logical node I/O @@ -1254,7 +1254,7 @@ submodule etsi-nfv-vnf { Descriptor (CPD) connect. Either intVirtualLinkDesc or intCpd shall be present."; 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 { leaf nicio-requirements { type leafref { - path "../../virtual-compute-desc/id"; + path "/nfv:nfv/nfv:vnfd/nfv:virtual-compute-desc/nfv:id"; } description "This references (couples) the CPD with any logical node I/O @@ -1472,7 +1472,7 @@ submodule etsi-nfv-vnf { leaf id { type leafref { - path "../../../int-virtual-link-desc/id"; + path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id"; } description "Uniquely identifies a Vnf VLD."; @@ -1484,7 +1484,7 @@ submodule etsi-nfv-vnf { leaf flavour { type leafref { path "deref(../../../ext-cpd/int-virtual-link-desc)" + - "/../flavour/id"; + "/../nfv:flavour/nfv:id"; } description "Identifies a flavour within the VnfVirtualLinkDesc."; @@ -2824,7 +2824,7 @@ submodule etsi-nfv-vnf { leaf-list virtual-link-desc { type leafref { - path "../../int-virtual-link-desc/id"; + path "/nfv:nfv/nfv:vnfd/nfv:int-virtual-link-desc/nfv:id"; } description "References to VnfVirtualLinkDesc that are part of this