diff --git a/example-data/nfv.xml b/example-data/nfv.xml
index 4f7e7fc91e67375597a85a8fb53aedc0e0054c22..42ddfedf1554cdf4edb324dc2b29098af49eaa5f 100644
--- a/example-data/nfv.xml
+++ b/example-data/nfv.xml
@@ -1,520 +1,518 @@
-
-
-
- ASA
- Cisco
- Cisco ASAv
- 9.8
- 9.8
- ESC
-
- firewall
- Firewall VDU
-
- inside
- inside
- common:Ethernet
-
-
- management
- management
- common:Ethernet
-
-
- outside
- outside
- common:Ethernet
-
- asa-vcd
- asa-vsd
- asa-image
-
-
- asa-vcd
-
- 4.0
-
-
- 2
-
-
-
- asa-vsd
- root
- 0
-
-
- asa-image
- bare
- qcow2
- 2.0
- http://www.cisco.com/asa.qcow2
-
-
+
+
+ ASA
+ My Company
+ My Company ASAv
+ 9.8
+ 9.8
+ My Company Vnfm
+
+ firewall
+ Firewall VDU
+
inside
- common:Ethernet
-
-
+ inside
+ Ethernet
+
+
management
- common:Ethernet
-
-
+ management
+ Ethernet
+
+
outside
- common:Ethernet
-
-
- normal
-
+ outside
+ Ethernet
+
+ asa-vcd
+ asa-vsd
+ asa-image
+
+
+ asa-vcd
+
+ 4.0
+
+
+ 2
+
+
+
+ asa-vsd
+ root
+ 0
+
+
+ asa-image
+ bare
+ qcow2
+ 2.0
+ http://www.cisco.com/asa.qcow2
+
+
+ inside
+ Ethernet
+
+
+ management
+ Ethernet
+
+
+ outside
+ Ethernet
+
+
+ normal
+
+ firewall
+ 1
+ 2
+
+
+ double
+
firewall
- 1
- 2
-
-
- double
-
- firewall
- 2
-
-
-
- single
-
- firewall
- 1
-
-
- single
-
-
-
- CSR
- Cisco
- Cisco CSR 1000v
- 3.16
- 3.16
- ESC
-
- router
- Router VDU
-
- left
- left
- common:Ethernet
-
-
- management
- management
- common:Ethernet
-
-
- right
- right
- common:Ethernet
-
- csr-vcd
- csr-vsd
- csr-image
-
-
- csr-vcd
-
- 4.0
-
-
- 2
-
-
-
- csr-vsd
- root
- 0
-
-
- csr-image
- bare
- qcow2
- 2.0
- http://www.cisco.com/csr.qcow2
-
-
+ 2
+
+
+
+ single
+
+ firewall
+ 1
+
+
+ single
+
+
+
+ CSR
+ My Company
+ My Company CSR 1000v
+ 3.16
+ 3.16
+ My Company Vnfm
+
+ router
+ Router VDU
+
left
- common:Ethernet
-
-
+ left
+ Ethernet
+
+
management
- common:Ethernet
-
-
+ management
+ Ethernet
+
+
right
- common:Ethernet
-
+ right
+ Ethernet
+
+ csr-vcd
+ csr-vsd
+ csr-image
+
+
+ csr-vcd
+
+ 4.0
+
+
+ 2
+
+
+
+ csr-vsd
+ root
+ 0
+
+
+ csr-image
+ bare
+ qcow2
+ 2.0
+ http://www.cisco.com/csr.qcow2
+
+
+ left
+ Ethernet
+
+
+ management
+ Ethernet
+
+
+ right
+ Ethernet
+
+
+ normal
+
+ router
+ 1
+ 2
+
+
+ double
+
+ router
+ 2
+
+
+
+ single
+
+ router
+ 1
+
+
+ single
+
+
+
+ firewall-nsd
+ ASA
+
+ inside
+
+
+ management
+
+
+ outside
+
+
+ firewall
+
+ firewall
+ ASA
+ normal
+ single
+ 1
+ 1
+
+
+ single
+
+ firewall
+ 1
+
+
+
+
+
+ service-chain-1
+ ASA
+ CSR
+ physical-dpi
+
+ inside
+
+
+ management
+ mgmt
+
+
+ outside
+
+ CSR
+ left
+
+
+
+ fw2dpi
+ 1.0
+
+ Ethernet
+
normal
-
- router
- 1
- 2
-
-
- double
-
- router
- 2
-
-
-
- single
-
- router
- 1
-
-
- single
+
+ 0
+ 0
+
-
-
- firewall-nsd
- ASA
-
- inside
-
-
- management
-
-
- outside
-
+
+
+ mgmt
+ 1.0
+
+ IPv4
+
- firewall
-
- firewall
- ASA
- normal
- single
- 1
- 1
-
-
- single
-
- firewall
- 1
-
-
+ normal
+
+ 0
+ 0
+
-
-
- service-chain-1
- ASA
- CSR
- physical-dpi
-
- inside
-
-
- management
- mgmt
-
-
- outside
-
- CSR
- left
-
-
-
+
+
+ r2fw
+ 1.0
+
+ Ethernet
+
+
+ normal
+
+ 0
+ 0
+
+
+
+
+ router-fw
+
+ firewall
+ ASA
+ normal
+ single
+ 1
+ 1
+
+ mgmt
+ management
+
+
+ r2fw
+ outside
+
+
+
+ router
+ CSR
+ normal
+ single
+ 1
+ 1
+
+ mgmt
+ management
+
+
+ r2fw
+ right
+
+
+
+ mgmt
+ mgmt
+ normal
+
+ 1000
+
+
+ 0
+
+
+
+ r2fw
+ r2fw
+ normal
+
+ 10000000
+
+
+ 0
+
+
+
+ normal
+ Single FW and Router
+
+ firewall
+ 1
+
+
+ router
+ 1
+
+
+
+
+ router-fw-dpi
+
+ firewall
+ ASA
+ normal
+ single
+ 1
+ 1
+
+ fw2dpi
+ inside
+
+
+ mgmt
+ management
+
+
+ r2fw
+ outside
+
+
+
+ router
+ CSR
+ normal
+ single
+ 1
+ 1
+
+ mgmt
+ management
+
+
+ r2fw
+ right
+
+
+
+ physical-dpi
+ physical-dpi
+
+ fw2dpi
+ outside
+
+
+
fw2dpi
- 1.0
-
- common:Ethernet
-
-
- normal
-
- 0
- 0
-
-
-
-
+ fw2dpi
+ normal
+
+ 1000000
+
+
+ 0
+
+
+
mgmt
- 1.0
-
- common:IPv4
-
-
- normal
-
- 0
- 0
-
-
-
-
+ mgmt
+ normal
+
+ 1000
+
+
+ 0
+
+
+
r2fw
- 1.0
-
- common:Ethernet
-
-
- normal
-
- 0
- 0
-
-
-
-
- router-fw
-
- firewall
- ASA
- normal
- single
- 1
- 1
-
- mgmt
- management
-
-
- r2fw
- outside
-
-
-
- router
- CSR
- normal
- single
- 1
- 1
-
- mgmt
- management
-
-
- r2fw
- right
-
-
-
- mgmt
- mgmt
- normal
-
- 1000
-
-
- 0
-
-
-
- r2fw
- r2fw
- normal
-
- 10000000
-
-
- 0
-
-
-
- normal
- Single FW and Router
-
- firewall
- 1
-
-
- router
- 1
-
-
-
+ r2fw
+ normal
+
+ 1000000
+
+
+ 0
+
+
+
+ normal
+ Router+FW+Physical DPI
+
+ firewall
+ 1
+
+
+ router
+ 1
+
+
+
+
+
+ service-chain-2
+ firewall-nsd
+ CSR
+
+ inside
+
+ firewall-nsd
+ inside
+
+
+
+ outside
+
+ CSR
+ left
+
+
+
+ r2fw
+ 1.0
+
+ IPv4
+
- router-fw-dpi
-
- firewall
- ASA
- normal
- single
- 1
- 1
-
- fw2dpi
- inside
-
-
- mgmt
- management
-
-
- r2fw
- outside
-
-
-
- router
- CSR
- normal
- single
- 1
- 1
-
- mgmt
- management
-
-
- r2fw
- right
-
-
-
- physical-dpi
- physical-dpi
-
- fw2dpi
- outside
-
-
-
- fw2dpi
- fw2dpi
- normal
-
- 1000000
-
-
- 0
-
-
-
- mgmt
- mgmt
- normal
-
- 1000
-
-
- 0
-
-
-
- r2fw
- r2fw
- normal
-
- 1000000
-
-
- 0
-
-
-
- normal
- Router+FW+Physical DPI
-
- firewall
- 1
-
-
- router
- 1
-
-
-
-
-
- service-chain-2
- firewall-nsd
- CSR
-
- inside
-
- firewall-nsd
- inside
-
-
-
- outside
-
- CSR
- left
-
-
-
r2fw
- 1.0
-
- common:IPv4
-
-
- r2fw
-
- 1000
- 2
-
-
-
-
- router-fw
-
- router
- CSR
- normal
- single
- 1
- 1
-
- r2fw
- right
-
-
-
- r2fw
- r2fw
- r2fw
-
- 500
-
-
- 0
-
-
-
- normal
-
- router
- 1
-
-
- r2fw
- 10
-
-
-
- firewall
- firewall-nsd
- firewall
- single
- 1
- 1
-
- r2fw
- outside
-
-
+
+ 1000
+ 2
+
-
-
- physical-dpi
- 1.0
-
- outside
- common:Ethernet
-
-
-
-
+
+
+ router-fw
+
+ router
+ CSR
+ normal
+ single
+ 1
+ 1
+
+ r2fw
+ right
+
+
+
+ r2fw
+ r2fw
+ r2fw
+
+ 500
+
+
+ 0
+
+
+
+ normal
+
+ router
+ 1
+
+
+ r2fw
+ 10
+
+
+
+ firewall
+ firewall-nsd
+ firewall
+ single
+ 1
+ 1
+
+ r2fw
+ outside
+
+
+
+
+
+ physical-dpi
+ 1.0
+
+ outside
+ Ethernet
+
+
+
diff --git a/run-test.sh b/run-test.sh
index 8b27e5aa5a90be87efc13d63a63a584c6f5f32fe..36bc6ec0a2dcc6e991c125f4ff3fd8cfc96a66ae 100755
--- a/run-test.sh
+++ b/run-test.sh
@@ -10,7 +10,6 @@ cd src
echo "Testing compilation"
CONFD_OPTS="--fail-on-warnings"
CONFD_OPTS=""
-confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv-common.fxs etsi-nfv-common.yang
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv.fxs etsi-nfv.yang
echo "Starting ConfD"
diff --git a/src/yang/etsi-nfv-common.yang b/src/yang/etsi-nfv-common.yang
index 841d41597f3e7f873a6b6b7fa363a9475ac98c47..07b26dd7f586133b934ea8ab24c9dbcfc2bdb010 100644
--- a/src/yang/etsi-nfv-common.yang
+++ b/src/yang/etsi-nfv-common.yang
@@ -1,8 +1,8 @@
-module etsi-nfv-common {
- namespace "urn:etsi:params:xml:ns:yang:etsi-nfv-common";
+submodule etsi-nfv-common {
yang-version 1.1;
- prefix common;
-
+ belongs-to etsi-nfv {
+ prefix nfv;
+ }
description
"Common data types for ETSI data models.";
@@ -41,13 +41,13 @@ module etsi-nfv-common {
identity address-type {
description
- "Describes the type of the address to be assigned to the CP
+ "Describes the type of the address to be assigned to the CP
instantiated from the parent CPD.
Value:
• MAC address.
• IP address.
• …
- The content type shall be aligned with the address type
+ The content type shall be aligned with the address type
supported by the layerProtocol attribute of the parent CPD.";
reference
"GS NFV IFA011: Section 7.1.3.3, AddressData information
@@ -180,7 +180,7 @@ module etsi-nfv-common {
/*
* Typedefs
*/
-
+
typedef flow-pattern {
type enumeration {
enum line;
@@ -395,7 +395,7 @@ module etsi-nfv-common {
leaf layer-protocol {
mandatory true;
type identityref {
- base common:layer-protocol;
+ base layer-protocol;
}
description
"Identifies a protocol that the connection points
@@ -406,7 +406,7 @@ module etsi-nfv-common {
}
leaf role {
type identityref {
- base common:cp-role;
+ base cp-role;
}
description
"Identifies the role of the connection points
diff --git a/src/yang/etsi-nfv-pnf.yang b/src/yang/etsi-nfv-pnf.yang
index 620303504a3ace9461c4a93c52571fba7281b2b4..1bfad35ef488ebf8b45ed1a91740501bb7ce3aa9 100644
--- a/src/yang/etsi-nfv-pnf.yang
+++ b/src/yang/etsi-nfv-pnf.yang
@@ -7,9 +7,7 @@ submodule etsi-nfv-pnf {
/*
* Import
*/
- import etsi-nfv-common {
- prefix common;
- }
+ include etsi-nfv-common;
description
"Models for PNFD according to GS NFV-IFA 014.";
@@ -83,7 +81,7 @@ submodule etsi-nfv-pnf {
}
list ext-cpd {
key "id";
- uses common:cpd;
+ uses cpd;
description
"Specifies the characteristics of one or more connection
points where to connect the PNF to a VL.";
@@ -92,7 +90,7 @@ submodule etsi-nfv-pnf {
}
list security {
key "signature";
- uses common:security-parameters;
+ uses security-parameters;
description
"Provides a signature to prevent tampering.
Editor's Note: While IFA014 does specify that the PNFD
diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang
index 01ca9dda774e4785a0aeb79f071682b09771b598..4ed821875207b001e30185e3840f35796a62b818 100755
--- a/src/yang/etsi-nfv-vnf.yang
+++ b/src/yang/etsi-nfv-vnf.yang
@@ -4,15 +4,14 @@ submodule etsi-nfv-vnf {
prefix nfv;
}
+ include etsi-nfv-common;
+
import ietf-inet-types {
prefix inet;
}
import ietf-yang-types {
prefix yang;
}
- import etsi-nfv-common {
- prefix common;
- }
description
"Models for VNFD according to GS NFV-IFA 011.";
@@ -81,16 +80,15 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element";
}
-
leaf niclo-requirements {
type leafref {
path "/nfv/vnfd/virtual-compute-descriptor/id";
}
description
- "This references (couples) the CPD with any logical node
- I/O requirements (for network devices) that may have been
- created. Linking these attributes is necessary so that
- I/O requirements that need to be articulated at the
+ "This references (couples) the CPD with any logical node I/O
+ requirements (for network devices) that may have been
+ created. Linking these attributes is necessary so that so
+ that I/O requirements that need to be articulated at the
logical node level can be associated with the network
interface requirements associated with the CPD.";
reference
@@ -104,7 +102,7 @@ submodule etsi-nfv-vnf {
// IFA011. A similar definition of Cpd exists in IFA014, but
// that is for use with Sapd and Pnfd. Do not use this grouping
// for that.
- grouping cpd {
+ grouping vnf-cpd {
description
"A Cpd information element describes network
connectivity to a compute resource or a VL.";
@@ -121,7 +119,7 @@ submodule etsi-nfv-vnf {
leaf layer-protocol {
mandatory true;
type identityref {
- base common:layer-protocol;
+ base layer-protocol;
}
description
"Identifies which protocol the CP uses for connectivity
@@ -132,7 +130,7 @@ submodule etsi-nfv-vnf {
}
leaf role {
type identityref {
- base common:cp-role;
+ base cp-role;
}
description
"Identifies the role of the port in the context of the
@@ -159,7 +157,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
leaf associated-layer-protocol {
type identityref {
- base common:layer-protocol;
+ base layer-protocol;
}
description
"One of the values of the attribute layerProtocol of the Cpd
@@ -173,7 +171,7 @@ submodule etsi-nfv-vnf {
key "address-type";
leaf address-type {
type identityref {
- base common:address-type;
+ base address-type;
}
description
"Describes the type of the address to be assigned to the CP
@@ -254,7 +252,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.3, Cpd information element.";
}
}
-
+
grouping vnfd {
list vnfd {
key "id";
@@ -450,7 +448,7 @@ submodule etsi-nfv-vnf {
element.";
}
- uses cpd;
+ uses vnf-cpd;
}
leaf virtual-compute-desc {
type leafref {
@@ -541,7 +539,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.11.3, MonitoringParameter
information element.";
}
- uses common:monitoring-parameter;
+ uses monitoring-parameter;
}
list configurable-properties {
key "key";
@@ -677,7 +675,7 @@ submodule etsi-nfv-vnf {
"Identifies the preferred version of the requested
additional capability.";
reference
- "GS NFV IFA011: Section 7.1.9.5,
+ "GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information
element.";
}
@@ -690,10 +688,10 @@ submodule etsi-nfv-vnf {
type string;
}
description
- "Identifies specific attributes, dependent on the
+ "Identifies specific attributes, dependent on the
requested additional capability type.";
reference
- "GS NFV IFA011: Section 7.1.9.5,
+ "GS NFV IFA011: Section 7.1.9.5,
RequestedAdditionalCapabilityData Information
element.";
}
@@ -1225,7 +1223,7 @@ submodule etsi-nfv-vnf {
}
}
- uses common:connectivity-type;
+ uses connectivity-type;
leaf-list test-access {
type string;
@@ -1256,7 +1254,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.11.3, MonitoringParameter
information element.";
}
- uses common:monitoring-parameter;
+ uses monitoring-parameter;
}
}
@@ -1286,7 +1284,7 @@ submodule etsi-nfv-vnf {
ext-CP to the VDU's CP.
*/
uses virtual-network-interface-requirements;
- uses cpd;
+ uses vnf-cpd;
}
list df {
@@ -1350,7 +1348,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.3, VduProfile information
element.";
}
- uses common:local-affinity-or-anti-affinity-rule;
+ uses local-affinity-or-anti-affinity-rule;
list affinity-or-anti-affinity-group {
key "id";
description
@@ -1385,7 +1383,7 @@ submodule etsi-nfv-vnf {
information element.";
}
leaf scope {
- type common:affinity-scope;
+ type affinity-scope;
description
"Specifies the scope of the rule, possible values are
'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'";
@@ -1425,7 +1423,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
- uses common:local-affinity-or-anti-affinity-rule;
+ uses local-affinity-or-anti-affinity-rule;
list affinity-or-anti-affinity-group {
key "id";
leaf id {
@@ -1519,7 +1517,7 @@ submodule etsi-nfv-vnf {
description
"The InstantiationLevel information element describes a
given level of resources to be instantiated within a
- DF in term of the number of VNFC instances to be
+ DF in term of the number of VNFC instances to be
created from each VDU.";
reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
@@ -1559,7 +1557,7 @@ submodule etsi-nfv-vnf {
}
leaf-list supported-operation {
type identityref {
- base common:supported-operation;
+ base supported-operation;
}
description
"Indicates which operations are available for this DF via
@@ -1717,7 +1715,7 @@ submodule etsi-nfv-vnf {
}
container operate-vnf-op-config {
description
- "This information element defines attributes that
+ "This information element defines attributes that
affect the invocation of the OperateVnf operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
@@ -1735,7 +1733,7 @@ submodule etsi-nfv-vnf {
leaf max-recommended-graceful-stop-timeout {
type yang:timeticks;
description
- "Maximum recommended timeout value that can be
+ "Maximum recommended timeout value that can be
needed to gracefully stop a VNF instance of a
particular type under certain conditions, such as
maximum load condition. This is provided by VNF
@@ -1782,7 +1780,7 @@ submodule etsi-nfv-vnf {
leaf type {
mandatory true;
- type common:affinity-type;
+ type affinity-type;
description
"Specifies whether the rule is an affinity rule or an
anti-affinity rule.";
@@ -1793,7 +1791,7 @@ submodule etsi-nfv-vnf {
leaf scope {
mandatory true;
- type common:affinity-scope;
+ type affinity-scope;
description
"Specifies the scope of the rule, possible values are
'NFVI-PoP', 'Zone', 'ZoneGroup', 'NFVI-node'.";
@@ -1820,7 +1818,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.11.3 MonitoringParameter
information element";
}
- uses common:monitoring-parameter;
+ uses monitoring-parameter;
}
list scaling-aspect {
@@ -2094,7 +2092,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf event {
- type common:internal-lifecycle-management-script-event;
+ type internal-lifecycle-management-script-event;
description
"Describes VNF lifecycle event(s) or an external stimulus
detected on a VNFM reference point.";
diff --git a/src/yang/etsi-nfv.yang b/src/yang/etsi-nfv.yang
index 4865b24f5e088a167f2180e39899e15df4af11ca..a209fc30f22d3c0a1cbe136c512ca4ec9be6ac12 100644
--- a/src/yang/etsi-nfv.yang
+++ b/src/yang/etsi-nfv.yang
@@ -3,9 +3,10 @@ module etsi-nfv {
namespace "urn:etsi:params:xml:ns:yang:etsi-nfv";
prefix nfv;
+ include etsi-nfv-common;
+ include etsi-nfv-ns;
include etsi-nfv-vnf;
include etsi-nfv-pnf;
- include etsi-nfv-ns;
organization
"European Telecommunications Standards Institute (ETSI)";