Commit fb9620e7 authored by Mahesh Jethanandani's avatar Mahesh Jethanandani
Browse files

Merge branch 'bug#227' into 'master'

Bug#227 NFVSOL(18)000772 Comment 1

See merge request !41
parents 1aa76d6b f20483aa
Pipeline #1086 passed with stage
in 0 seconds
<nsd xmlns="urn:etsi:nfv:yang:etsi-nfv-nsd">
<vnfd>
<id>ASA</id>
<provider>My Company</provider>
<product-name>My Company ASAv</product-name>
<software-version>9.8</software-version>
<version>9.8</version>
<vnfm-info>My Company Vnfm</vnfm-info>
<vdu>
<id>firewall</id>
<name>Firewall VDU</name>
<int-cpd>
<id>inside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv: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>
</int-cpd>
<int-cpd>
<id>outside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</int-cpd>
<virtual-compute-desc>asa-vcd</virtual-compute-desc>
<virtual-storage-desc>asa-vsd</virtual-storage-desc>
<sw-image-desc>asa-image</sw-image-desc>
</vdu>
<virtual-compute-desc>
<id>asa-vcd</id>
<virtual-memory>
<size>4.0</size>
</virtual-memory>
<virtual-cpu>
<num-virtual-cpu>2</num-virtual-cpu>
</virtual-cpu>
</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>
<size-of-storage>0</size-of-storage>
</virtual-storage-desc>
<sw-image-desc>
<id>asa-image</id>
<name>ASA image</name>
<version>1.1</version>
<checksum>
<algorithm xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:sha-224</algorithm>
<hash>deadbeef</hash>
</checksum>
<container-format>bare</container-format>
<disk-format>qcow2</disk-format>
<min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.cisco.com/asa.qcow2</image>
</sw-image-desc>
<ext-cpd>
<id>inside</id>
<int-cpd>
<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>
</ext-cpd>
<ext-cpd>
<id>management</id>
<int-cpd>
<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>
</ext-cpd>
<ext-cpd>
<id>outside</id>
<int-cpd>
<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>
</ext-cpd>
<df>
<id>normal</id>
<vdu-profile>
<id>firewall</id>
<min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>2</max-number-of-instances>
</vdu-profile>
<instantiation-level>
<id>double</id>
<vdu-level>
<vdu-id>firewall</vdu-id>
<number-of-instances>2</number-of-instances>
</vdu-level>
</instantiation-level>
<instantiation-level>
<id>single</id>
<vdu-level>
<vdu-id>firewall</vdu-id>
<number-of-instances>1</number-of-instances>
</vdu-level>
</instantiation-level>
<default-instantiation-level>single</default-instantiation-level>
</df>
</vnfd>
<nsd>
<id>firewall-nsd</id>
<vnfd-id>ASA</vnfd-id>
<sapd>
<id>inside</id>
</sapd>
<sapd>
<id>management</id>
</sapd>
<sapd>
<id>outside</id>
</sapd>
<df>
<id>firewall</id>
<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>
<pnfd xmlns="urn:etsi:nfv:yang:etsi-nfv-pnfd">
<id>physical-dpi</id>
<version>1.0</version>
<ext-cpd>
<id>outside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</ext-cpd>
</pnfd>
<vnfd xmlns="urn:etsi:nfv:yang:etsi-nfv-vnfd">
<id>ASA</id>
<provider>My Company</provider>
<product-name>My Company ASAv</product-name>
<software-version>9.8</software-version>
<version>9.8</version>
<vnfm-info>My Company Vnfm</vnfm-info>
<vdu>
<id>firewall</id>
<name>Firewall VDU</name>
<int-cpd>
<id>inside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv: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>
</int-cpd>
<int-cpd>
<id>outside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</int-cpd>
<virtual-compute-desc>asa-vcd</virtual-compute-desc>
<virtual-storage-desc>asa-vsd</virtual-storage-desc>
<sw-image-desc>asa-image</sw-image-desc>
</vdu>
<virtual-compute-desc>
<id>asa-vcd</id>
<virtual-memory>
<size>4.0</size>
</virtual-memory>
<virtual-cpu>
<num-virtual-cpu>2</num-virtual-cpu>
</virtual-cpu>
</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>
<size-of-storage>0</size-of-storage>
</virtual-storage-desc>
<sw-image-desc>
<id>asa-image</id>
<name>ASA image</name>
<version>1.1</version>
<checksum>
<algorithm xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:sha-224</algorithm>
<hash>deadbeef</hash>
</checksum>
<container-format>bare</container-format>
<disk-format>qcow2</disk-format>
<min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.cisco.com/asa.qcow2</image>
</sw-image-desc>
<ext-cpd>
<id>inside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</ext-cpd>
<ext-cpd>
<id>management</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</ext-cpd>
<ext-cpd>
<id>outside</id>
<layer-protocol xmlns:nfv="urn:etsi:nfv:yang:etsi-nfv-descriptors">nfv:ethernet</layer-protocol>
</ext-cpd>
<df>
<id>normal</id>
<vdu-profile>
<id>firewall</id>
<min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>2</max-number-of-instances>
</vdu-profile>
<instantiation-level>
<id>double</id>
<vdu-level>
<vdu-id>firewall</vdu-id>
<number-of-instances>2</number-of-instances>
</vdu-level>
</instantiation-level>
<instantiation-level>
<id>single</id>
<vdu-level>
<vdu-id>firewall</vdu-id>
<number-of-instances>1</number-of-instances>
</vdu-level>
</instantiation-level>
<default-instantiation-level>single</default-instantiation-level>
</df>
</vnfd>
...@@ -34,11 +34,11 @@ ...@@ -34,11 +34,11 @@
<num-virtual-cpu>2</num-virtual-cpu> <num-virtual-cpu>2</num-virtual-cpu>
</virtual-cpu> </virtual-cpu>
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-descriptor> <virtual-storage-desc>
<id>asa-vsd</id> <id>asa-vsd</id>
<type-of-storage>root-storage</type-of-storage> <type-of-storage>root-storage</type-of-storage>
<size-of-storage>0</size-of-storage> <size-of-storage>0</size-of-storage>
</virtual-storage-descriptor> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>asa-image</id> <id>asa-image</id>
<name>ASA image</name> <name>ASA image</name>
...@@ -148,11 +148,11 @@ ...@@ -148,11 +148,11 @@
<num-virtual-cpu>2</num-virtual-cpu> <num-virtual-cpu>2</num-virtual-cpu>
</virtual-cpu> </virtual-cpu>
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-descriptor> <virtual-storage-desc>
<id>csr-vsd</id> <id>csr-vsd</id>
<type-of-storage>root-storage</type-of-storage> <type-of-storage>root-storage</type-of-storage>
<size-of-storage>0</size-of-storage> <size-of-storage>0</size-of-storage>
</virtual-storage-descriptor> </virtual-storage-desc>
<sw-image-desc> <sw-image-desc>
<id>csr-image</id> <id>csr-image</id>
<name>CSR image</name> <name>CSR image</name>
...@@ -280,9 +280,7 @@ ...@@ -280,9 +280,7 @@
<virtual-link-desc> <virtual-link-desc>
<id>fw2dpi</id> <id>fw2dpi</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>ethernet</layer-protocol>
<protocol>ethernet</protocol>
</layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
<id>normal</id> <id>normal</id>
...@@ -295,9 +293,7 @@ ...@@ -295,9 +293,7 @@
<virtual-link-desc> <virtual-link-desc>
<id>mgmt</id> <id>mgmt</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>ipv4</layer-protocol>
<protocol>ipv4</protocol>
</layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
<id>normal</id> <id>normal</id>
...@@ -310,9 +306,7 @@ ...@@ -310,9 +306,7 @@
<virtual-link-desc> <virtual-link-desc>
<id>r2fw</id> <id>r2fw</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>ethernet</layer-protocol>
<protocol>ethernet</protocol>
</layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
<id>normal</id> <id>normal</id>
...@@ -535,9 +529,7 @@ ...@@ -535,9 +529,7 @@
<virtual-link-desc> <virtual-link-desc>
<id>r2fw</id> <id>r2fw</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>ipv4</layer-protocol>
<protocol>ipv4</protocol>
</layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
<id>r2fw</id> <id>r2fw</id>
......
...@@ -7,19 +7,36 @@ set -e ...@@ -7,19 +7,36 @@ set -e
source /opt/confd/confdrc source /opt/confd/confdrc
cd src cd src
echo "Testing compilation"
CONFD_OPTS="--fail-on-warnings" CONFD_OPTS="--fail-on-warnings"
CONFD_OPTS="" CONFD_OPTS=""
echo "Testing compilations of VNFD."
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-vnfd.fxs etsi-nfv-vnfd.yang
echo "Testing compilations of PNFD."
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-pnfd.fxs etsi-nfv-pnfd.yang
echo "Testing compilations of NSD."
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-nsd.fxs etsi-nfv-nsd.yang
echo "Testing compilations of descriptors."
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-descriptors.fxs etsi-nfv-descriptors.yang confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-descriptors.fxs etsi-nfv-descriptors.yang
echo "Starting ConfD" echo "Starting ConfD"
confd confd
echo "Loading data for the simple example" echo "Loading Data for VNFD"
confd_load -l -m nfv-vnfd.xml
echo "Loading Data for PNFD"
confd_load -l -m nfv-pnfd.xml
echo "Loading Data for NSD"
confd_load -l -m nfv-nsd.xml
echo "Loading Data for descriptors"
confd_load -l -m nfv.xml confd_load -l -m nfv.xml
echo "Loading data for the complex Vnfd example" echo "Loading data for the complex Vnfd example"
confd_load -l -m complex-vnfd.xml confd_load -l -m complex-vnfd.xml
# Don't do this in the actual test, just waste of cycles # Don't do this in the actual test, just waste of cycles
# echo "Stopping ConfD" # echo "Stopping ConfD"
# confd --stop # confd --stop
...@@ -3,10 +3,13 @@ submodule etsi-nfv-common { ...@@ -3,10 +3,13 @@ submodule etsi-nfv-common {
belongs-to etsi-nfv-descriptors { belongs-to etsi-nfv-descriptors {
prefix nfv; prefix nfv;
} }
organization
"European Telecommunications Standards Institute (ETSI)";
description description
"Common data types for ETSI data models."; "Common data types for ETSI data models.";
revision 2019-03-18 { revision 2019-04-25 {
description description
"Initial revision "Initial revision
...@@ -239,7 +242,7 @@ submodule etsi-nfv-common { ...@@ -239,7 +242,7 @@ submodule etsi-nfv-common {
description description
"Ephemeral type of storage."; "Ephemeral type of storage.";
} }
/* /*
* Typedefs * Typedefs
*/ */
...@@ -316,14 +319,10 @@ submodule etsi-nfv-common { ...@@ -316,14 +319,10 @@ submodule etsi-nfv-common {
grouping connectivity-type { grouping connectivity-type {
container connectivity-type { container connectivity-type {
list layer-protocol { leaf-list layer-protocol {
key "protocol"; type identityref {
base layer-protocol;
leaf protocol { }
type identityref {
base layer-protocol;
}
}
description description
"Identifies the protocols that the VL uses (Ethernet, "Identifies the protocols that the VL uses (Ethernet,
MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer MPLS, ODU2, IPV4, IPV6, Pseudo-Wire). The top layer
...@@ -634,17 +633,6 @@ submodule etsi-nfv-common { ...@@ -634,17 +633,6 @@ submodule etsi-nfv-common {
reference reference
"GS NFV IFA011: Section 7.1.6.3 Cpd information element"; "GS NFV IFA011: Section 7.1.6.3 Cpd information element";
} }
leaf security-group-rule-id {
type leafref {
path "/nfv/vnfd/security-group-rule/id";
}
description
"Reference of the security group rules bound to this
CPD.";
reference
"GS NFV IFA011: Section 7.1.6.3 Cpd information element";
}
} }
grouping security-group-rule { grouping security-group-rule {
......
...@@ -14,7 +14,7 @@ module etsi-nfv-descriptors { ...@@ -14,7 +14,7 @@ module etsi-nfv-descriptors {
description description
"Network Function Virtualization Descriptors"; "Network Function Virtualization Descriptors";
revision 2019-03-18 { revision 2019-04-25 {
description description
"Initial revision. "Initial revision.
NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252 NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252
...@@ -22,8 +22,44 @@ module etsi-nfv-descriptors { ...@@ -22,8 +22,44 @@ module etsi-nfv-descriptors {
} }
container nfv { container nfv {
uses vnfd; list vnfd {
uses nsd; key "id";
uses pnfd; 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 vnfd;
}
list nsd {
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 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 pnfd;
}
} }
} }
This diff is collapsed.
module etsi-nfv-nsd {
yang-version 1.1;
namespace "urn:etsi:nfv:yang:etsi-nfv-nsd";
prefix nsd;
import etsi-nfv-descriptors {
prefix vnf;
}
organization
"European Telecommunications Standards Institute (ETSI)";
description
"Network Services Descriptors";
revision 2019-04-25 {
description
"Initial revision.
NSD according to ETSI GS NFV-IFA 014 Ed261v252.";
}
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;
uses vnf:nsd;
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";
}
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;
}
}
}
...@@ -12,7 +12,7 @@ submodule etsi-nfv-pnf { ...@@ -12,7 +12,7 @@ submodule etsi-nfv-pnf {
description description
"Models for PNFD according to GS NFV-IFA 014."; "Models for PNFD according to GS NFV-IFA 014.";
revision 2019-03-18 { revision 2019-04-25 {
description description
"Initial revision. "Initial revision.
...@@ -31,87 +31,91 @@ submodule etsi-nfv-pnf { ...@@ -31,87 +31,91 @@ submodule etsi-nfv-pnf {
reference reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element"; "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