From c570c31bdbe49b1b635d03d66bcfc98013b60636 Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Wed, 19 Dec 2018 13:41:06 -0800 Subject: [PATCH] Changes to address bug#88 --- example-data/nfv.xml | 1002 ++++++++++++++++----------------- run-test.sh | 1 - src/yang/etsi-nfv-common.yang | 18 +- src/yang/etsi-nfv-pnf.yang | 8 +- src/yang/etsi-nfv-vnf.yang | 64 +-- src/yang/etsi-nfv.yang | 3 +- 6 files changed, 545 insertions(+), 551 deletions(-) diff --git a/example-data/nfv.xml b/example-data/nfv.xml index 4f7e7fc..42ddfed 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 8b27e5a..36bc6ec 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 841d415..07b26dd 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 6203035..1bfad35 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 01ca9dd..4ed8218 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 4865b24..a209fc3 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)"; -- GitLab