Commits (68)
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
# https://forge.etsi.org/etsi-software-license # https://forge.etsi.org/etsi-software-license
YANG_MODULES="yang/yang/*" YANG_MODULES="yang/yang/*"
OUTPUT="etsi-nfv.html" OUTPUT="etsi-nfv-descriptors.html"
IMG_NAME="sol006" IMG_NAME="sol006"
VERSION=latest VERSION=latest
IMG="$IMG_NAME:$VERSION" IMG="$IMG_NAME:$VERSION"
......
<nfv xmlns="urn:etsi:params:xml:ns:yang:etsi-nfv"> <nfv xmlns="urn:etsi:nfv:yang:etsi-nfv-descriptors">
<vnfd> <vnfd>
<id>ASA</id> <id>ASA</id>
<provider>My Company</provider> <provider>My Company</provider>
<product-name>My Company ASAv</product-name> <product-name>My Company ASAv</product-name>
<software-version>9.8</software-version> <software-version>9.8</software-version>
<version>9.8 </version> <version>9.8</version>
<vnfm-info>My Company Vnfm</vnfm-info> <vnfm-info>My Company Vnfm</vnfm-info>
<vdu> <vdu>
<id>firewall</id> <id>firewall</id>
<name>Firewall VDU</name> <name>Firewall VDU</name>
<int-cpd> <int-cpd>
<id>inside</id> <id>inside</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<int-cpd> <int-cpd>
<id>management</id> <id>management</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<int-cpd> <int-cpd>
<id>outside</id> <id>outside</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<virtual-compute-desc>asa-vcd</virtual-compute-desc> <virtual-compute-desc>asa-vcd</virtual-compute-desc>
<virtual-storage-desc>asa-vsd</virtual-storage-desc> <virtual-storage-desc>asa-vsd</virtual-storage-desc>
...@@ -36,14 +36,21 @@ ...@@ -36,14 +36,21 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-descriptor> <virtual-storage-descriptor>
<id>asa-vsd</id> <id>asa-vsd</id>
<type-of-storage>root</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-descriptor>
<sw-image-desc> <sw-image-desc>
<id>asa-image</id> <id>asa-image</id>
<name>ASA image</name>
<version>1.1</version>
<checksum>
<algorithm>sha-224</algorithm>
<hash>deadbeef</hash>
</checksum>
<container-format>bare</container-format> <container-format>bare</container-format>
<disk-format>qcow2</disk-format> <disk-format>qcow2</disk-format>
<min-ram>2.0</min-ram> <min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.cisco.com/asa.qcow2</image> <image>http://www.cisco.com/asa.qcow2</image>
</sw-image-desc> </sw-image-desc>
<ext-cpd> <ext-cpd>
...@@ -52,7 +59,7 @@ ...@@ -52,7 +59,7 @@
<vdu-id>firewall</vdu-id> <vdu-id>firewall</vdu-id>
<cpd>inside</cpd> <cpd>inside</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<ext-cpd> <ext-cpd>
<id>management</id> <id>management</id>
...@@ -60,7 +67,7 @@ ...@@ -60,7 +67,7 @@
<vdu-id>firewall</vdu-id> <vdu-id>firewall</vdu-id>
<cpd>management</cpd> <cpd>management</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<ext-cpd> <ext-cpd>
<id>outside</id> <id>outside</id>
...@@ -68,7 +75,7 @@ ...@@ -68,7 +75,7 @@
<vdu-id>firewall</vdu-id> <vdu-id>firewall</vdu-id>
<cpd>outside</cpd> <cpd>outside</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<df> <df>
<id>normal</id> <id>normal</id>
...@@ -80,14 +87,14 @@ ...@@ -80,14 +87,14 @@
<instantiation-level> <instantiation-level>
<id>double</id> <id>double</id>
<vdu-level> <vdu-level>
<id>firewall</id> <vdu-id>firewall</vdu-id>
<number-of-instances>2</number-of-instances> <number-of-instances>2</number-of-instances>
</vdu-level> </vdu-level>
</instantiation-level> </instantiation-level>
<instantiation-level> <instantiation-level>
<id>single</id> <id>single</id>
<vdu-level> <vdu-level>
<id>firewall</id> <vdu-id>firewall</vdu-id>
<number-of-instances>1</number-of-instances> <number-of-instances>1</number-of-instances>
</vdu-level> </vdu-level>
</instantiation-level> </instantiation-level>
...@@ -106,15 +113,15 @@ ...@@ -106,15 +113,15 @@
<name>Router VDU</name> <name>Router VDU</name>
<int-cpd> <int-cpd>
<id>left</id> <id>left</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<int-cpd> <int-cpd>
<id>management</id> <id>management</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<int-cpd> <int-cpd>
<id>right</id> <id>right</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</int-cpd> </int-cpd>
<virtual-compute-desc>csr-vcd</virtual-compute-desc> <virtual-compute-desc>csr-vcd</virtual-compute-desc>
<virtual-storage-desc>csr-vsd</virtual-storage-desc> <virtual-storage-desc>csr-vsd</virtual-storage-desc>
...@@ -131,14 +138,21 @@ ...@@ -131,14 +138,21 @@
</virtual-compute-desc> </virtual-compute-desc>
<virtual-storage-descriptor> <virtual-storage-descriptor>
<id>csr-vsd</id> <id>csr-vsd</id>
<type-of-storage>root</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-descriptor>
<sw-image-desc> <sw-image-desc>
<id>csr-image</id> <id>csr-image</id>
<name>CSR image</name>
<version>1.1</version>
<checksum>
<algorithm>sha-224</algorithm>
<hash>deadbeef</hash>
</checksum>
<container-format>bare</container-format> <container-format>bare</container-format>
<disk-format>qcow2</disk-format> <disk-format>qcow2</disk-format>
<min-ram>2.0</min-ram> <min-ram>2.0</min-ram>
<size>1</size>
<image>http://www.cisco.com/csr.qcow2</image> <image>http://www.cisco.com/csr.qcow2</image>
</sw-image-desc> </sw-image-desc>
<ext-cpd> <ext-cpd>
...@@ -147,7 +161,7 @@ ...@@ -147,7 +161,7 @@
<vdu-id>router</vdu-id> <vdu-id>router</vdu-id>
<cpd>left</cpd> <cpd>left</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<ext-cpd> <ext-cpd>
<id>management</id> <id>management</id>
...@@ -155,7 +169,7 @@ ...@@ -155,7 +169,7 @@
<vdu-id>router</vdu-id> <vdu-id>router</vdu-id>
<cpd>management</cpd> <cpd>management</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<ext-cpd> <ext-cpd>
<id>right</id> <id>right</id>
...@@ -163,7 +177,7 @@ ...@@ -163,7 +177,7 @@
<vdu-id>router</vdu-id> <vdu-id>router</vdu-id>
<cpd>right</cpd> <cpd>right</cpd>
</int-cpd> </int-cpd>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
<df> <df>
<id>normal</id> <id>normal</id>
...@@ -175,14 +189,14 @@ ...@@ -175,14 +189,14 @@
<instantiation-level> <instantiation-level>
<id>double</id> <id>double</id>
<vdu-level> <vdu-level>
<id>router</id> <vdu-id>router</vdu-id>
<number-of-instances>2</number-of-instances> <number-of-instances>2</number-of-instances>
</vdu-level> </vdu-level>
</instantiation-level> </instantiation-level>
<instantiation-level> <instantiation-level>
<id>single</id> <id>single</id>
<vdu-level> <vdu-level>
<id>router</id> <vdu-id>router</vdu-id>
<number-of-instances>1</number-of-instances> <number-of-instances>1</number-of-instances>
</vdu-level> </vdu-level>
</instantiation-level> </instantiation-level>
...@@ -206,7 +220,7 @@ ...@@ -206,7 +220,7 @@
<vnf-profile> <vnf-profile>
<id>firewall</id> <id>firewall</id>
<vnfd-id>ASA</vnfd-id> <vnfd-id>ASA</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -243,7 +257,7 @@ ...@@ -243,7 +257,7 @@
<id>fw2dpi</id> <id>fw2dpi</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>
<protocol>Ethernet</protocol> <protocol>ethernet</protocol>
</layer-protocol> </layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
...@@ -258,7 +272,7 @@ ...@@ -258,7 +272,7 @@
<id>mgmt</id> <id>mgmt</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>
<protocol>IPv4</protocol> <protocol>ipv4</protocol>
</layer-protocol> </layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
...@@ -273,7 +287,7 @@ ...@@ -273,7 +287,7 @@
<id>r2fw</id> <id>r2fw</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>
<protocol>Ethernet</protocol> <protocol>ethernet</protocol>
</layer-protocol> </layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
...@@ -289,7 +303,7 @@ ...@@ -289,7 +303,7 @@
<vnf-profile> <vnf-profile>
<id>firewall</id> <id>firewall</id>
<vnfd-id>ASA</vnfd-id> <vnfd-id>ASA</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -311,7 +325,7 @@ ...@@ -311,7 +325,7 @@
<vnf-profile> <vnf-profile>
<id>router</id> <id>router</id>
<vnfd-id>CSR</vnfd-id> <vnfd-id>CSR</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -333,7 +347,7 @@ ...@@ -333,7 +347,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>mgmt</id> <id>mgmt</id>
<virtual-link-desc-id>mgmt</virtual-link-desc-id> <virtual-link-desc-id>mgmt</virtual-link-desc-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>1000</root> <root>1000</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -344,7 +358,7 @@ ...@@ -344,7 +358,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>r2fw</id> <id>r2fw</id>
<virtual-link-desc-id>r2fw</virtual-link-desc-id> <virtual-link-desc-id>r2fw</virtual-link-desc-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>10000000</root> <root>10000000</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -370,7 +384,7 @@ ...@@ -370,7 +384,7 @@
<vnf-profile> <vnf-profile>
<id>firewall</id> <id>firewall</id>
<vnfd-id>ASA</vnfd-id> <vnfd-id>ASA</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -399,7 +413,7 @@ ...@@ -399,7 +413,7 @@
<vnf-profile> <vnf-profile>
<id>router</id> <id>router</id>
<vnfd-id>CSR</vnfd-id> <vnfd-id>CSR</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -432,7 +446,7 @@ ...@@ -432,7 +446,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>fw2dpi</id> <id>fw2dpi</id>
<virtual-link-desc-id>fw2dpi</virtual-link-desc-id> <virtual-link-desc-id>fw2dpi</virtual-link-desc-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>1000000</root> <root>1000000</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -443,7 +457,7 @@ ...@@ -443,7 +457,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>mgmt</id> <id>mgmt</id>
<virtual-link-desc-id>mgmt</virtual-link-desc-id> <virtual-link-desc-id>mgmt</virtual-link-desc-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>1000</root> <root>1000</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -454,7 +468,7 @@ ...@@ -454,7 +468,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>r2fw</id> <id>r2fw</id>
<virtual-link-desc-id>r2fw</virtual-link-desc-id> <virtual-link-desc-id>r2fw</virtual-link-desc-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>1000000</root> <root>1000000</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -498,7 +512,7 @@ ...@@ -498,7 +512,7 @@
<id>r2fw</id> <id>r2fw</id>
<connectivity-type> <connectivity-type>
<layer-protocol> <layer-protocol>
<protocol>IPv4</protocol> <protocol>ipv4</protocol>
</layer-protocol> </layer-protocol>
</connectivity-type> </connectivity-type>
<df> <df>
...@@ -514,7 +528,7 @@ ...@@ -514,7 +528,7 @@
<vnf-profile> <vnf-profile>
<id>router</id> <id>router</id>
<vnfd-id>CSR</vnfd-id> <vnfd-id>CSR</vnfd-id>
<flavor-id>normal</flavor-id> <flavour-id>normal</flavour-id>
<instantiation-level>single</instantiation-level> <instantiation-level>single</instantiation-level>
<min-number-of-instances>1</min-number-of-instances> <min-number-of-instances>1</min-number-of-instances>
<max-number-of-instances>1</max-number-of-instances> <max-number-of-instances>1</max-number-of-instances>
...@@ -529,7 +543,7 @@ ...@@ -529,7 +543,7 @@
<virtual-link-profile> <virtual-link-profile>
<id>r2fw</id> <id>r2fw</id>
<virtual-link-desc-id>r2fw</virtual-link-desc-id> <virtual-link-desc-id>r2fw</virtual-link-desc-id>
<flavor-id>r2fw</flavor-id> <flavour-id>r2fw</flavour-id>
<max-bitrate-requirements> <max-bitrate-requirements>
<root>500</root> <root>500</root>
</max-bitrate-requirements> </max-bitrate-requirements>
...@@ -570,7 +584,7 @@ ...@@ -570,7 +584,7 @@
<version>1.0</version> <version>1.0</version>
<ext-cpd> <ext-cpd>
<id>outside</id> <id>outside</id>
<layer-protocol>Ethernet</layer-protocol> <layer-protocol>ethernet</layer-protocol>
</ext-cpd> </ext-cpd>
</pnfd> </pnfd>
</nfv> </nfv>
...@@ -10,7 +10,7 @@ cd src ...@@ -10,7 +10,7 @@ cd src
echo "Testing compilation" echo "Testing compilation"
CONFD_OPTS="--fail-on-warnings" CONFD_OPTS="--fail-on-warnings"
CONFD_OPTS="" CONFD_OPTS=""
confdc -c $CONFD_OPTS -o /opt/confd/etc/confd/etsi-nfv.fxs etsi-nfv.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
......
submodule etsi-nfv-common { submodule etsi-nfv-common {
yang-version 1.1; yang-version 1.1;
belongs-to etsi-nfv { belongs-to etsi-nfv-descriptors {
prefix nfv; prefix nfv;
} }
description description
...@@ -20,22 +20,22 @@ submodule etsi-nfv-common { ...@@ -20,22 +20,22 @@ submodule etsi-nfv-common {
*/ */
identity layer-protocol { identity layer-protocol {
} }
identity Ethernet { identity ethernet {
base layer-protocol; base layer-protocol;
} }
identity MPLS { identity mpls {
base layer-protocol; base layer-protocol;
} }
identity ODU2 { identity odu2 {
base layer-protocol; base layer-protocol;
} }
identity IPv4 { identity ipv4 {
base layer-protocol; base layer-protocol;
} }
identity IPv6 { identity ipv6 {
base layer-protocol; base layer-protocol;
} }
identity Pseudo-Wire { identity pseudo-wire {
base layer-protocol; base layer-protocol;
} }
...@@ -177,6 +177,69 @@ submodule etsi-nfv-common { ...@@ -177,6 +177,69 @@ submodule etsi-nfv-common {
base cp-role; base cp-role;
} }
identity checksum-algorithm {
description
"Identifies the algorithms supported for the purpose of
calculating the checksum.";
reference
"GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
}
identity sha-224 {
base checksum-algorithm;
description
"SHA-224.";
reference
"GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
}
identity sha-256 {
base checksum-algorithm;
description
"SHA-256.";
reference
"GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
}
identity sha-384 {
base checksum-algorithm;
description
"SHA-384.";
reference
"GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
}
identity sha-512 {
base checksum-algorithm;
description
"SHA-512.";
reference
"GS NFV IFA011: Section 7.1.6.10 Checksum information element.";
}
identity storage-type {
description
"Base type of storage that identities can derive from.";
}
identity root-storage {
base storage-type;
description
"Root type of storage.";
}
identity swap-storage {
base storage-type;
description
"Swap type of storage.";
}
identity ephemeral-storage {
base storage-type;
description
"Ephemeral type of storage.";
}
/* /*
* Typedefs * Typedefs
*/ */
...@@ -215,8 +278,8 @@ submodule etsi-nfv-common { ...@@ -215,8 +278,8 @@ submodule etsi-nfv-common {
enum "end-healing"; enum "end-healing";
enum "start-termination"; enum "start-termination";
enum "end-termination"; enum "end-termination";
enum "start-vnf-flavor-change"; enum "start-vnf-flavour-change";
enum "end-vnf-flavor-change"; enum "end-vnf-flavour-change";
enum "start-vnf-operation-change"; enum "start-vnf-operation-change";
enum "end-vnf-operation-change"; enum "end-vnf-operation-change";
enum "start-vnf-ext-conn-change"; enum "start-vnf-ext-conn-change";
...@@ -392,7 +455,7 @@ submodule etsi-nfv-common { ...@@ -392,7 +455,7 @@ submodule etsi-nfv-common {
} }
leaf-list layer-protocol { leaf-list layer-protocol {
default Ethernet; default ethernet;
type identityref { type identityref {
base layer-protocol; base layer-protocol;
} }
...@@ -571,5 +634,115 @@ submodule etsi-nfv-common { ...@@ -571,5 +634,115 @@ 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 {
list security-group-rule {
key "id";
leaf id {
type string;
description
"Identifier of this SecurityGroupRule information
element.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf description {
type string;
description
"Human readable description of the security group rule.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf direction {
type enumeration {
enum ingress;
enum egress;
}
default "ingress";
description
"The direction in which the security group rule is applied.
Permitted values: INGRESS, EGRESS. Defaults to INGRESS.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf ether-type {
type enumeration {
enum ipv4;
enum ipv6;
}
default "ipv4";
description
"Indicates the protocol carried over the Ethernet layer.
Permitted values: IPV4, IPV6. Defaults to IPV4.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf protocol {
type enumeration {
enum tcp;
enum udp;
enum icmp;
}
default "tcp";
description
"Indicates the protocol carried over the IP layer.
Permitted values: any protocol defined in the IANA
protocol registry, e.g. TCP, UDP, ICMP, etc. Defaults
to TCP.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf port-range-min {
must ". <= ../port-range-max";
type uint16;
default "0";
description
"Indicates minimum port number in the range that is
matched by the security group rule. Defaults to 0.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf port-range-max {
must ". >= ../port-range-min";
type uint16;
default "65535";
description
"Indicates maximum port number in the range that is
matched by the security group rule. Defaults to 65535.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
description
"Defines security group rules to be used by the VNF.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD information element.";
}
} }
} }
module etsi-nfv { module etsi-nfv-descriptors {
yang-version 1.1; yang-version 1.1;
namespace "urn:etsi:params:xml:ns:yang:etsi-nfv"; namespace "urn:etsi:nfv:yang:etsi-nfv-descriptors";
prefix nfv; prefix nfv;
include etsi-nfv-common; include etsi-nfv-common;
......
submodule etsi-nfv-ns { submodule etsi-nfv-ns {
yang-version 1.1; yang-version 1.1;
belongs-to etsi-nfv { belongs-to etsi-nfv-descriptors {
prefix nfv; prefix nfv;
} }
...@@ -146,63 +146,66 @@ submodule etsi-nfv-ns { ...@@ -146,63 +146,66 @@ submodule etsi-nfv-ns {
"GS NFV IFA014: Section 6.2.3.2 Sapd information element"; "GS NFV IFA014: Section 6.2.3.2 Sapd information element";
} }
leaf virtual-link-desc { choice cpd-or-virtual-link {
type leafref { leaf virtual-link-desc {
path "../../virtual-link-desc/id"; type leafref {
path "../../virtual-link-desc/id";
}
description
"References the descriptor of the NS VL instance to
which the SAP instantiated from this SAPD connects to.";
reference
"GS NFV IFA014: Section 6.2.3.2 Sapd information element";
} }
description
"References the descriptor of the NS VL instance to
which the SAP instantiated from this SAPD connects to.";
reference
"GS NFV IFA014: Section 6.2.3.2 Sapd information element";
}
choice associated-cpd-id { choice associated-cpd-id {
container vnf { container vnf {
leaf vnfd-id { leaf vnfd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "../../../../nfv:vnfd/nfv:id"; path "../../../../nfv:vnfd/nfv:id";
}
must "boolean(../../../vnfd-id[.=current()])";
} }
must "boolean(../../../vnfd-id[.=current()])";
}
leaf ext-cpd-id { leaf ext-cpd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id";
}
} }
} }
}
container pnf { container pnf {
leaf pnfd-id { leaf pnfd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "../../../../nfv:pnfd/nfv:id"; path "../../../../nfv:pnfd/nfv:id";
}
must "boolean(../pnfd-id[.=current()])";
} }
must "boolean(../pnfd-id[.=current()])";
}
leaf ext-cpd-id { leaf ext-cpd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id";
}
} }
} }
} container ns {
container ns { leaf nsd-id {
leaf nsd-id { mandatory true;
mandatory true; type leafref {
type leafref { path "../../../../nfv:nsd/nfv:id";
path "../../../../nfv:nsd/nfv:id"; }
must "boolean(../nsd-id[.=current()])";
} }
must "boolean(../nsd-id[.=current()])";
}
leaf ext-cpd-id { leaf ext-cpd-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../nsd-id)/../nfv:sapd/nfv:id"; path "deref(../nsd-id)/../nfv:sapd/nfv:id";
}
} }
} }
} }
...@@ -415,25 +418,54 @@ submodule etsi-nfv-ns { ...@@ -415,25 +418,54 @@ submodule etsi-nfv-ns {
key "id"; key "id";
description description
"A pool of descriptors of connection points attached to "Describes a pool of descriptors of connection points
one of the constituent VNFs and PNFs and/or one of the attached to one of the constituent VNFs and PNFs and/or
SAPs of the parent NS or of a nested NS."; one of the SAPs of the parent NS or of a nested NS.";
reference reference
"GS NFV IFA014: Section 6.4.2.2 Vnffgd information "GS NFV IFA014: Section 6.4.2.2 Vnffgd information
element"; element";
leaf id { leaf id {
type string; type string;
}
choice constituent-base-element-id {
mandatory "true";
container vnf-profile {
leaf vnf-profile-id {
must ". = deref(../../vnfd-profile-id)" {
}
type leafref {
path "/nfv/nsd/df/vnf-profile/id";
}
}
}
container pnf-profile {
leaf pnf-profile-id {
must ". = deref(../../pnfd-profile-id)" {
}
type leafref {
path "/nfv/nsd/df/pnf-profile/id";
}
}
}
container ns-profile {
leaf ns-profile-id {
must ". = deref(../../ns-profile-id)" {
}
type leafref {
path "/nfv/nsd/df/ns-profile/id";
}
}
}
description description
"Identifier of this CpdPool information element. It "Reference to the profile of an NS constituent.";
identifies a pool of descriptors of connection points
and NS SAPs.";
reference reference
"GS NFV IFA014: Section 6.4.4.2 CpdPool information "GS NFV IFA014: Section 6.4.8 CpdInConstituentElement
element"; information element";
} }
choice cpd-id { choice constituent-cpd-id {
container vnf { container vnf {
leaf vnfd-id { leaf vnfd-id {
must ". = deref(../../vnfd-profile-id)/../vnfd-id" { must ". = deref(../../vnfd-profile-id)/../vnfd-id" {
...@@ -464,7 +496,8 @@ submodule etsi-nfv-ns { ...@@ -464,7 +496,8 @@ submodule etsi-nfv-ns {
} }
container ns { container ns {
leaf nsd-id { leaf nsd-id {
must ". = deref(../../nested-ns-profile-id)/../nsd-id" { must ". = deref(../../nested-ns-profile-id)/" +
"../nsd-id" {
} }
type leafref { type leafref {
...@@ -645,7 +678,7 @@ submodule etsi-nfv-ns { ...@@ -645,7 +678,7 @@ submodule etsi-nfv-ns {
"GS NFV IFA014: Section 6.3.2.2 NsDf information element"; "GS NFV IFA014: Section 6.3.2.2 NsDf information element";
} }
leaf flavor-key { leaf flavour-key {
type leafref { type leafref {
path "../monitored-info/id"; path "../monitored-info/id";
} }
...@@ -696,7 +729,7 @@ submodule etsi-nfv-ns { ...@@ -696,7 +729,7 @@ submodule etsi-nfv-ns {
element"; element";
} }
leaf flavor-id { leaf flavour-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../vnfd-id)/../df/id"; path "deref(../vnfd-id)/../df/id";
...@@ -711,7 +744,7 @@ submodule etsi-nfv-ns { ...@@ -711,7 +744,7 @@ submodule etsi-nfv-ns {
leaf instantiation-level { leaf instantiation-level {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../flavor-id)/../instantiation-level/id"; path "deref(../flavour-id)/../instantiation-level/id";
} }
description description
"Identifier of the instantiation level of the VNF DF "Identifier of the instantiation level of the VNF DF
...@@ -945,7 +978,7 @@ submodule etsi-nfv-ns { ...@@ -945,7 +978,7 @@ submodule etsi-nfv-ns {
information element"; information element";
} }
leaf flavor-id { leaf flavour-id {
mandatory true; mandatory true;
type leafref { type leafref {
path "deref(../virtual-link-desc-id)/../df/id"; path "deref(../virtual-link-desc-id)/../df/id";
......
submodule etsi-nfv-pnf { submodule etsi-nfv-pnf {
yang-version 1.1; yang-version 1.1;
belongs-to etsi-nfv { belongs-to etsi-nfv-descriptors {
prefix nfv; prefix nfv;
} }
...@@ -111,6 +111,7 @@ submodule etsi-nfv-pnf { ...@@ -111,6 +111,7 @@ 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";
} }
uses security-group-rule;
} }
} }
} }
submodule etsi-nfv-vnf { submodule etsi-nfv-vnf {
yang-version 1.1; yang-version 1.1;
belongs-to etsi-nfv { belongs-to etsi-nfv-descriptors {
prefix nfv; prefix nfv;
} }
...@@ -45,6 +45,7 @@ submodule etsi-nfv-vnf { ...@@ -45,6 +45,7 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6, "GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element";
} }
leaf description { leaf description {
type string; type string;
description description
...@@ -53,6 +54,7 @@ submodule etsi-nfv-vnf { ...@@ -53,6 +54,7 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6, "GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element";
} }
leaf support-mandatory { leaf support-mandatory {
default "false"; default "false";
type boolean; type boolean;
...@@ -64,8 +66,12 @@ submodule etsi-nfv-vnf { ...@@ -64,8 +66,12 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6, "GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element";
} }
list network-interface-requirements { list network-interface-requirements {
key "key"; key "key";
min-elements "1";
max-elements "1";
leaf key { leaf key {
type string; type string;
} }
...@@ -80,6 +86,7 @@ submodule etsi-nfv-vnf { ...@@ -80,6 +86,7 @@ submodule etsi-nfv-vnf {
"GS NFV-IFA011: Section 7.1.6.6, "GS NFV-IFA011: Section 7.1.6.6,
VirtualNetworkInterfaceRequirements information element"; VirtualNetworkInterfaceRequirements information element";
} }
leaf nicio-requirements { leaf nicio-requirements {
type leafref { type leafref {
path "/nfv/vnfd/virtual-compute-desc/id"; path "/nfv/vnfd/virtual-compute-desc/id";
...@@ -280,23 +287,11 @@ submodule etsi-nfv-vnf { ...@@ -280,23 +287,11 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.4, VduCpd information "GS NFV IFA011: Section 7.1.6.4, VduCpd information
element."; element.";
} }
uses cpd; uses cpd;
leaf security-group-rule-id {
type leafref {
path "../../../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";
}
} }
leaf virtual-compute-desc { leaf virtual-compute-desc {
type leafref { type leafref {
path "../../nfv:virtual-compute-desc/" + path "../../nfv:virtual-compute-desc/nfv:id";
"nfv:id";
} }
must "../../nfv:virtual-compute-desc[id=current()]/" + must "../../nfv:virtual-compute-desc[id=current()]/" +
"nfv:virtual-memory/size >=" + "nfv:virtual-memory/size >=" +
...@@ -399,14 +394,8 @@ submodule etsi-nfv-vnf { ...@@ -399,14 +394,8 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.7, "GS NFV IFA011: Section 7.1.6.7,
VnfcConfigurableProperties Information element."; VnfcConfigurableProperties Information element.";
} }
list boot-data { leaf boot-data {
key "key"; type string;
leaf key {
type string;
}
leaf value {
type string;
}
description description
"Contains a string or a URL to a file contained in the "Contains a string or a URL to a file contained in the
VNF package used to customize a virtualised compute VNF package used to customize a virtualised compute
...@@ -672,29 +661,51 @@ submodule etsi-nfv-vnf { ...@@ -672,29 +661,51 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.9.3.2, VirtualCpuData "GS NFV IFA011: Section 7.1.9.3.2, VirtualCpuData
information element."; information element.";
} }
container virtual-cpu-pinning { container pinning {
presence "Set to specify CPU pinning."; presence "Set to specify CPU pinning.";
leaf cpu-pinning-policy { leaf policy {
default "dynamic"; default "dynamic";
type enumeration { type enumeration {
enum "static"; enum "static";
enum "dynamic"; enum "dynamic";
} }
description description
"Indicates the policy for CPU pinning. The policy can "The policy can take values of 'static' or 'dynamic'.
take values of 'static' or 'dynamic'. The cardinality In case of 'static' the virtual CPU cores are
can be 0 during the allocation request, if no requested to be allocated to logical CPU cores
particular value is requested."; according to the rules defined in
virtualCpuPinningRules. In case of 'dynamic' the
allocation of virtual CPU cores to logical CPU cores
is decided by the VIM. (e.g. SMT (Simultaneous
MultiThreading) requirements).";
reference
"GS NFV IFA011: Section 7.1.9.2.4,
VirtualCpuPinningData information element.";
} }
container cpu-pinning-map {
when "../nfv:cpu-pinning-policy = 'static'"; list rule {
when "../nfv:policy = 'static'";
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"A list of rules that should be considered during the
allocation of the virtual CPUs to logical CPUs in case
of 'static' virtualCpuPinningPolicy.";
reference
"GS NFV IFA011: Section 7.1.9.2.4,
VirtualCpuPinningData information element.";
} }
description description
"If cpuPinningPolicy is defined as 'static', the "The virtual CPU pinning configuration for the
cpuPinningMap provides the map of pinning virtual virtualised compute resource.";
CPU cores to physical CPU cores/threads. Cardinality reference
is 0 if cpuPinningPolicy has a different value than "GS NFV IFA011: Section 7.1.9.2.3,
'static'."; VirtualCpuData information element.";
} }
} }
} }
...@@ -716,12 +727,10 @@ submodule etsi-nfv-vnf { ...@@ -716,12 +727,10 @@ submodule etsi-nfv-vnf {
leaf type-of-storage { leaf type-of-storage {
// Needed to be able to onboard images // Needed to be able to onboard images
type enumeration { default "root-storage";
enum "root"; type identityref {
enum "swap"; base storage-type;
enum "ephemeral"; }
}
default "root";
description description
"Type of virtualised storage resource (e.g. volume, "Type of virtualised storage resource (e.g. volume,
object)."; object).";
...@@ -795,6 +804,7 @@ submodule etsi-nfv-vnf { ...@@ -795,6 +804,7 @@ submodule etsi-nfv-vnf {
information element"; information element";
} }
leaf name { leaf name {
mandatory true;
type string; type string;
description description
"The name of this software image."; "The name of this software image.";
...@@ -802,7 +812,9 @@ submodule etsi-nfv-vnf { ...@@ -802,7 +812,9 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element."; information element.";
} }
leaf version { leaf version {
mandatory true;
type string; type string;
description description
"The version of this software image."; "The version of this software image.";
...@@ -810,9 +822,14 @@ submodule etsi-nfv-vnf { ...@@ -810,9 +822,14 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element."; information element.";
} }
container checksum { container checksum {
leaf algorithm { leaf algorithm {
type string; mandatory true;
type identityref {
base checksum-algorithm;
}
description description
"Species the algorithm used to obtain the checksum "Species the algorithm used to obtain the checksum
value."; value.";
...@@ -820,7 +837,9 @@ submodule etsi-nfv-vnf { ...@@ -820,7 +837,9 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.10 ChecksumData "GS NFV IFA011: Section 7.1.6.10 ChecksumData
information element."; information element.";
} }
leaf hash { leaf hash {
mandatory true;
type string; type string;
description description
"Contains the result of applying the algorithm "Contains the result of applying the algorithm
...@@ -836,6 +855,7 @@ submodule etsi-nfv-vnf { ...@@ -836,6 +855,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element."; information element.";
} }
leaf container-format { leaf container-format {
default "bare"; default "bare";
type enumeration { type enumeration {
...@@ -876,6 +896,7 @@ submodule etsi-nfv-vnf { ...@@ -876,6 +896,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5 SwImageDesc "GS NFV IFA011: Section 7.1.6.5 SwImageDesc
information element."; information element.";
} }
leaf disk-format { leaf disk-format {
default "qcow2"; default "qcow2";
type enumeration { type enumeration {
...@@ -934,6 +955,7 @@ submodule etsi-nfv-vnf { ...@@ -934,6 +955,7 @@ submodule etsi-nfv-vnf {
"The disk format of a software image is the format of "The disk format of a software image is the format of
the underlying disk image."; the underlying disk image.";
} }
leaf min-disk { leaf min-disk {
type uint64; type uint64;
units "GB"; units "GB";
...@@ -948,6 +970,7 @@ submodule etsi-nfv-vnf { ...@@ -948,6 +970,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."; information element.";
} }
leaf min-ram { leaf min-ram {
type decimal64 { type decimal64 {
fraction-digits 1; fraction-digits 1;
...@@ -965,7 +988,9 @@ submodule etsi-nfv-vnf { ...@@ -965,7 +988,9 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."; information element.";
} }
leaf size { leaf size {
mandatory true;
type uint64; type uint64;
units "GB"; units "GB";
description description
...@@ -974,6 +999,7 @@ submodule etsi-nfv-vnf { ...@@ -974,6 +999,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."; information element.";
} }
leaf image { leaf image {
default "."; default ".";
type inet:uri; type inet:uri;
...@@ -985,6 +1011,7 @@ submodule etsi-nfv-vnf { ...@@ -985,6 +1011,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."; information element.";
} }
leaf operating-system { leaf operating-system {
type string; type string;
description description
...@@ -995,6 +1022,7 @@ submodule etsi-nfv-vnf { ...@@ -995,6 +1022,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc "GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."; information element.";
} }
leaf-list supported-virtualization-environment { leaf-list supported-virtualization-environment {
type string; type string;
description description
...@@ -1024,7 +1052,7 @@ submodule etsi-nfv-vnf { ...@@ -1024,7 +1052,7 @@ submodule etsi-nfv-vnf {
Information elements."; Information elements.";
} }
list desc-flavor { list flavour {
key "id"; key "id";
description description
"Describes a specific flavour of the VL with specific "Describes a specific flavour of the VL with specific
...@@ -1038,7 +1066,7 @@ submodule etsi-nfv-vnf { ...@@ -1038,7 +1066,7 @@ submodule etsi-nfv-vnf {
description description
"Identifies a flavour within a VnfVirtualLinkDesc."; "Identifies a flavour within a VnfVirtualLinkDesc.";
reference reference
"GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavor "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element."; information element.";
} }
container qos { container qos {
...@@ -1046,7 +1074,7 @@ submodule etsi-nfv-vnf { ...@@ -1046,7 +1074,7 @@ submodule etsi-nfv-vnf {
description description
"QoS of the VL."; "QoS of the VL.";
reference reference
"GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavor "GS NFV IFA011: Section 7.1.8.5, VirtualLinkDescFlavour
information element."; information element.";
leaf latency { leaf latency {
...@@ -1120,102 +1148,7 @@ submodule etsi-nfv-vnf { ...@@ -1120,102 +1148,7 @@ submodule etsi-nfv-vnf {
} }
} }
list security-group-rule { uses security-group-rule;
key "id";
leaf id {
type string;
description
"Identifier of this SecurityGroupRule information
element.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf description {
type string;
description
"Human readable description of the security group rule.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf direction {
type enumeration {
enum ingress;
enum egress;
}
default "ingress";
description
"The direction in which the security group rule is applied.
Permitted values: INGRESS, EGRESS. Defaults to INGRESS.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf ether-type {
type enumeration {
enum ipv4;
enum ipv6;
}
default "ipv4";
description
"Indicates the protocol carried over the Ethernet layer.
Permitted values: IPV4, IPV6. Defaults to IPV4.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf protocol {
type enumeration {
enum tcp;
enum udp;
enum icmp;
}
default "tcp";
description
"Indicates the protocol carried over the IP layer.
Permitted values: any protocol defined in the IANA
protocol registry, e.g. TCP, UDP, ICMP, etc. Defaults
to TCP.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf port-range-min {
must ". <= ../port-range-max";
type uint16;
default "0";
description
"Indicates minimum port number in the range that is
matched by the security group rule. Defaults to 0.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
leaf port-range-max {
must ". >= ../port-range-min";
type uint16;
default "65535";
description
"Indicates maximum port number in the range that is
matched by the security group rule. Defaults to 65535.";
reference
"GS NFV IFA011: Section 7.1.6.9, SecurityGroupRule
information element.";
}
description
"Defines security group rules to be used by the VNF.";
reference
"GS NFV IFA011: Section 7.1.2, VNFD information element.";
}
list ext-cpd { list ext-cpd {
key "id"; key "id";
...@@ -1245,25 +1178,14 @@ submodule etsi-nfv-vnf { ...@@ -1245,25 +1178,14 @@ submodule etsi-nfv-vnf {
} }
} }
leaf cpd { leaf cpd {
type leafref { type leafref {
path "deref(../vdu-id)/../int-cpd/id"; path "deref(../vdu-id)/../int-cpd/id";
} }
} }
} }
} }
uses virtual-network-interface-requirements; uses virtual-network-interface-requirements;
uses cpd; uses cpd;
leaf security-group-rule-id {
type leafref {
path "../../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";
}
} }
list df { list df {
...@@ -1282,15 +1204,15 @@ submodule etsi-nfv-vnf { ...@@ -1282,15 +1204,15 @@ submodule etsi-nfv-vnf {
"Identifier of this DF within the VNFD."; "Identifier of this DF within the VNFD.";
reference reference
"GS NFV IFA011: Section 7.1.8, Information elements "GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavor."; to the DeploymentFlavour.";
} }
leaf description { leaf description {
type string; type string;
description description
"Human readable description of the deployment flavor"; "Human readable description of the deployment flavour";
reference reference
"GS NFV IFA011: Section 7.1.8, Information elements "GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavor."; to the DeploymentFlavour.";
} }
list vdu-profile { list vdu-profile {
key "id"; key "id";
...@@ -1300,7 +1222,7 @@ submodule etsi-nfv-vnf { ...@@ -1300,7 +1222,7 @@ submodule etsi-nfv-vnf {
a given VDU used in a deployment flavour."; a given VDU used in a deployment flavour.";
reference reference
"GS NFV IFA011: Section 7.1.8, Information elements "GS NFV IFA011: Section 7.1.8, Information elements
to the DeploymentFlavor."; to the DeploymentFlavour.";
leaf id { leaf id {
type leafref { type leafref {
path "../../../nfv:vdu/nfv:id"; path "../../../nfv:vdu/nfv:id";
...@@ -1355,7 +1277,7 @@ submodule etsi-nfv-vnf { ...@@ -1355,7 +1277,7 @@ submodule etsi-nfv-vnf {
} }
list virtual-link-profile { list virtual-link-profile {
key "id flavor"; key "id flavour";
description description
"Defines the internal VLD along with additional data which "Defines the internal VLD along with additional data which
is used in this DF."; is used in this DF.";
...@@ -1373,10 +1295,11 @@ submodule etsi-nfv-vnf { ...@@ -1373,10 +1295,11 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element."; information element.";
} }
leaf flavor {
leaf flavour {
type leafref { type leafref {
path "deref(../../../ext-cpd/int-virtual-link-desc)" + path "deref(../../../ext-cpd/int-virtual-link-desc)" +
"/../desc-flavor/id"; "/../flavour/id";
} }
description description
"Identifies a flavour within the VnfVirtualLinkDesc."; "Identifies a flavour within the VnfVirtualLinkDesc.";
...@@ -1402,6 +1325,246 @@ submodule etsi-nfv-vnf { ...@@ -1402,6 +1325,246 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile "GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element."; information element.";
} }
container max-bit-rate-requirements {
leaf root {
mandatory "true";
type uint32;
description
"Throughput requirement of the link (e.g. bitrate of
E-Line, root bitrate of E-Tree, aggregate capacity
of E-LAN).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
leaf leaf {
type uint32;
description
"Throughput requirement of leaf connections to the
link when applicable to the connectivity type
(e.g. for E-Tree and E-LAN branches).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
description
"Specifies the maximum bitrate requirements for a VL
instantiated according to this profile.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
container min-bit-rate-requirements {
leaf root {
mandatory "true";
type uint32;
description
"Throughput requirement of the link (e.g. bitrate of
E-Line, root bitrate of E-Tree, aggregate capacity
of E-LAN).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
leaf leaf {
type uint32;
description
"Throughput requirement of leaf connections to the
link when applicable to the connectivity type
(e.g. for E-Tree and E-LAN branches).";
reference
"GS NFV IFA011: Section 7.1.8.6,
LinkBitrateRequirements information element.";
}
description
"Specifies the minimum bitrate requirements for a VL
instantiated according to this profile.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
container virtual-link-protocol-data {
leaf associated-layer-protocol {
type identityref {
base layer-protocol;
}
description
"One of the values of the attribute layerProtocol of
the ConnectivityType IE.";
reference
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
container l2-protocol-data {
when "(../associated-layer-protocol = 'Ethernet') or " +
"(../associated-layer-protocol = 'MPLS') or " +
"(../associated-layer-protocol = 'ODU2') or " +
"(../associated-layer-protocol = 'Pseudo-Wire')";
leaf name {
type string;
description
"Network name associated with this L2 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
}
leaf network-type {
type enumeration {
enum flat;
enum vlan;
enum vxlan;
enum gre;
}
description
"Specifies the network type for this L2 protocol.
Possible values: FLAT, VLAN, VXLAN, GRE.";
reference
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
}
leaf vlan-transparent {
type boolean;
description
"Specifies whether to support VLAN transparency for
this L2 protocol or not.";
reference
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
}
leaf mtu {
type uint16;
description
"Specifies the maximum transmission unit (MTU) value
for this L2 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.14,
L2ProtocolData information element.";
}
description
"Specifies the L2 protocol data for this virtual link.
Shall be present when the associatedLayerProtocol
attribute indicates a L2 protocol and shall be absent
otherwise.";
reference
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
container l3-protocol-data {
when "(../associated-layer-protocol = 'IPv4') or " +
"(../associated-layer-protocol = 'IPv6')";
leaf name {
type string;
description
"Network name associated with this L3 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf ip-version {
type enumeration {
enum ipv4;
enum ipv6;
}
default "ipv4";
description
"Specifies IP version of this L3 protocol.
Value:
• IPV4.
• IPV6.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf cidr {
type string;
description
"Specifies the CIDR (Classless InterDomain Routing)
of this L3 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf-list ip-allocation-pools {
type string;
description
"Specifies the allocation pools with start and end
IP addresses for this L3 protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf gateway-ip {
type inet:ip-address;
description
"Specifies the gateway IP address for this L3
protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf dhcp-enabled {
type boolean;
default "true";
description
"Indicates whether DHCP (Dynamic Host Configuration
Protocol) is enabled or disabled for this L3
protocol.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
leaf ipv6-address-mode {
when "../ip-version = 'ipv6'";
type enumeration {
enum slaac;
enum dhcpv6-stateful;
enum dhcpv6-stateless;
}
description
"Specifies IPv6 address mode. Possible values:
• SLAAC.
• DHCPV6-STATEFUL.
• DHCPV6-STATELESS.
May be present when the value of the ipVersion
attribute is 'IPV6' and shall be absent otherwise.";
reference
"GS NFV IFA011: Section 7.1.8.15,
L3ProtocolData information element.";
}
description
"Specifies the L3 protocol data for this virtual link.
Shall be present when the associatedLayerProtocol
attribute indicates a L3 protocol and shall be absent
otherwise.";
reference
"GS NFV IFA011: Section 7.1.8.13,
VirtualLinkProtocolData information element.";
}
description
"Specifies the protocol data for a VL instantiated
according to this profile. Cardinality 0 is used when
no protocol data needs to be specified.";
reference
"GS NFV IFA011: Section 7.1.8.4, VirtualLinkProfile
information element.";
}
} }
list instantiation-level { list instantiation-level {
...@@ -1440,7 +1603,7 @@ submodule etsi-nfv-vnf { ...@@ -1440,7 +1603,7 @@ submodule etsi-nfv-vnf {
information element"; information element";
} }
list vdu-level { list vdu-level {
key "id"; key "vdu-id";
min-elements 1; min-elements 1;
description description
"Sets the number of instances for the VDU in this "Sets the number of instances for the VDU in this
...@@ -1448,7 +1611,8 @@ submodule etsi-nfv-vnf { ...@@ -1448,7 +1611,8 @@ submodule etsi-nfv-vnf {
reference reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element"; information element";
leaf id {
leaf vdu-id {
type leafref { type leafref {
path "../../../../nfv:vdu/nfv:id"; path "../../../../nfv:vdu/nfv:id";
} }
...@@ -1461,10 +1625,10 @@ submodule etsi-nfv-vnf { ...@@ -1461,10 +1625,10 @@ submodule etsi-nfv-vnf {
leaf number-of-instances { leaf number-of-instances {
type uint16; type uint16;
must ". <= ../../../../nfv:df/" + must ". <= ../../../../nfv:df/" +
"nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:vdu-profile[id=current()/../nfv:vdu-id]/" +
"nfv:max-number-of-instances"; "nfv:max-number-of-instances";
must ". >= ../../../../nfv:df/" + must ". >= ../../../../nfv:df/" +
"nfv:vdu-profile[id=current()/../nfv:id]/" + "nfv:vdu-profile[id=current()/../nfv:vdu-id]/" +
"nfv:min-number-of-instances"; "nfv:min-number-of-instances";
default 1; default 1;
description description
...@@ -1476,7 +1640,7 @@ submodule etsi-nfv-vnf { ...@@ -1476,7 +1640,7 @@ submodule etsi-nfv-vnf {
} }
} }
list scaling-info { list scaling-info {
key "id"; key "scaling-aspect-id";
description description
"The InstantiationLevel information element describes a "The InstantiationLevel information element describes a
given level of resources to be instantiated within a given level of resources to be instantiated within a
...@@ -1485,7 +1649,8 @@ submodule etsi-nfv-vnf { ...@@ -1485,7 +1649,8 @@ submodule etsi-nfv-vnf {
reference reference
"GS NFV IFA011: Section 7.1.8.7 InstantiationLevel "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
information element"; information element";
leaf id {
leaf scaling-aspect-id {
type leafref { type leafref {
path "../../../nfv:scaling-aspect/nfv:id"; path "../../../nfv:scaling-aspect/nfv:id";
} }
...@@ -1541,8 +1706,23 @@ submodule etsi-nfv-vnf { ...@@ -1541,8 +1706,23 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.8.2 VnfDf information "GS NFV IFA011: Section 7.1.8.2 VnfDf information
element"; element";
leaf instantiate-vnf-op-config { container instantiate-vnf-op-config {
type string; list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the InstantiateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.3
InstantiateVnfOpConfig information element";
}
description description
"Configuration parameters for the InstantiateVnf "Configuration parameters for the InstantiateVnf
operation."; operation.";
...@@ -1550,6 +1730,7 @@ submodule etsi-nfv-vnf { ...@@ -1550,6 +1730,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.2 "GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element"; VnfLcmOperationsConfiguration information element";
} }
container scale-vnf-op-config { container scale-vnf-op-config {
description description
"Configuration parameters for the ScaleVnf operation."; "Configuration parameters for the ScaleVnf operation.";
...@@ -1566,12 +1747,13 @@ submodule etsi-nfv-vnf { ...@@ -1566,12 +1747,13 @@ submodule etsi-nfv-vnf {
type string; type string;
} }
description description
"VNF-specific parameter to be passed when invoking "Array of KVP requirements for VNFspecific parameters
the ScaleVnf operation."; to be passed when invoking the ScaleVnf operation.";
reference reference
"GS NFV IFA011: Section 7.1.5.4 ScaleVnfOpConfig "GS NFV IFA011: Section 7.1.5.4 ScaleVnfOpConfig
information element"; information element";
} }
leaf scaling-by-more-than-one-step-supported { leaf scaling-by-more-than-one-step-supported {
type boolean; type boolean;
default false; default false;
...@@ -1585,6 +1767,7 @@ submodule etsi-nfv-vnf { ...@@ -1585,6 +1767,7 @@ submodule etsi-nfv-vnf {
ScaleVnfOpConfig information element"; ScaleVnfOpConfig information element";
} }
} }
container scale-vnf-to-level-op-config { container scale-vnf-to-level-op-config {
description description
"This information element defines attributes that "This information element defines attributes that
...@@ -1603,14 +1786,17 @@ submodule etsi-nfv-vnf { ...@@ -1603,14 +1786,17 @@ submodule etsi-nfv-vnf {
type string; type string;
} }
description description
"VNF-specific parameter to be passed when invoking "Array of KVP requirements for VNF-specific parameters
the ScaleVnfToLevel operation."; to be passed when invoking the ScaleVnfToLevel
operation.";
reference reference
"GS NFV IFA011: Section 7.1.5.5 "GS NFV IFA011: Section 7.1.5.5
ScaleVnfToLevelOpConfig information element"; ScaleVnfToLevelOpConfig information element";
} }
leaf arbitrary-target-levels-supported { leaf arbitrary-target-levels-supported {
type boolean; type boolean;
default "false";
description description
"Signals whether scaling according to the parameter "Signals whether scaling according to the parameter
'scaleInfo' is supported by this VNF."; 'scaleInfo' is supported by this VNF.";
...@@ -1619,6 +1805,7 @@ submodule etsi-nfv-vnf { ...@@ -1619,6 +1805,7 @@ submodule etsi-nfv-vnf {
ScaleVnfToLevelOpConfig information element"; ScaleVnfToLevelOpConfig information element";
} }
} }
container heal-vnf-op-config { container heal-vnf-op-config {
description description
"This information element defines attributes that "This information element defines attributes that
...@@ -1627,16 +1814,24 @@ submodule etsi-nfv-vnf { ...@@ -1627,16 +1814,24 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.2 "GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element"; VnfLcmOperationsConfiguration information element";
leaf parameter { list parameter {
type string; key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description description
"VNF-specific parameter to be passed when invoking "Array of KVP requirements for VNF-specific parameters
the HealVnf operation."; to be passed when invoking the HealVnf operation.";
reference reference
"GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig "GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
information element"; information element";
} }
leaf cause {
leaf-list cause {
type string; type string;
description description
"Supported 'cause' parameter values."; "Supported 'cause' parameter values.";
...@@ -1645,6 +1840,7 @@ submodule etsi-nfv-vnf { ...@@ -1645,6 +1840,7 @@ submodule etsi-nfv-vnf {
information element"; information element";
} }
} }
container terminate-vnf-op-config { container terminate-vnf-op-config {
description description
"This information element defines attributes that "This information element defines attributes that
...@@ -1652,8 +1848,10 @@ submodule etsi-nfv-vnf { ...@@ -1652,8 +1848,10 @@ submodule etsi-nfv-vnf {
reference reference
"GS NFV IFA011: Section 7.1.5.2 "GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element"; VnfLcmOperationsConfiguration information element";
leaf min-graceful-termination { leaf min-graceful-termination {
type yang:timeticks; type yang:timeticks;
default "1";
description description
"Minimum timeout value for graceful termination of "Minimum timeout value for graceful termination of
a VNF instance."; a VNF instance.";
...@@ -1661,6 +1859,7 @@ submodule etsi-nfv-vnf { ...@@ -1661,6 +1859,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.7 "GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element"; TerminateVnfOpConfig information element";
} }
leaf max-recommended-graceful-termination { leaf max-recommended-graceful-termination {
type yang:timeticks; type yang:timeticks;
description description
...@@ -1675,7 +1874,25 @@ submodule etsi-nfv-vnf { ...@@ -1675,7 +1874,25 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.7 "GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element"; TerminateVnfOpConfig information element";
} }
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the TerminateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.7
TerminateVnfOpConfig information element";
}
} }
container operate-vnf-op-config { container operate-vnf-op-config {
description description
"This information element defines attributes that "This information element defines attributes that
...@@ -1686,6 +1903,7 @@ submodule etsi-nfv-vnf { ...@@ -1686,6 +1903,7 @@ submodule etsi-nfv-vnf {
leaf min-graceful-stop-timeout { leaf min-graceful-stop-timeout {
type yang:timeticks; type yang:timeticks;
default "1";
description description
"Minimum timeout value for graceful stop of a VNF "Minimum timeout value for graceful stop of a VNF
instance."; instance.";
...@@ -1693,6 +1911,7 @@ submodule etsi-nfv-vnf { ...@@ -1693,6 +1911,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.8 "GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element"; OperateVnfOpConfig information element";
} }
leaf max-recommended-graceful-stop-timeout { leaf max-recommended-graceful-stop-timeout {
type yang:timeticks; type yang:timeticks;
description description
...@@ -1707,6 +1926,74 @@ submodule etsi-nfv-vnf { ...@@ -1707,6 +1926,74 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.5.8 "GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element"; OperateVnfOpConfig information element";
} }
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the OperateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.8
OperateVnfOpConfig information element";
}
}
container change-vnf-flavour-op-config {
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the OperateVnf
operation.";
reference
"GS NFV IFA011: Section 7.1.5.9
ChangeVnfFlavour information element";
}
description
"Configuration parameters for the ChangeVnfFlavour
operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
}
container change-ext-vnf-connectivity-op-config {
list parameter {
key "key";
leaf key {
type string;
}
leaf value {
type string;
}
description
"Array of KVP requirements for VNF-specific parameters
to be passed when invoking the
ChangeExtVnfConnectivity operation.";
reference
"GS NFV IFA011: Section 7.1.5.10
ChangeExtVnfConnectivityOpConfig information
element";
}
description
"Configuration parameters for the
ChangeExtVnfConnectivity operation.";
reference
"GS NFV IFA011: Section 7.1.5.2
VnfLcmOperationsConfiguration information element";
} }
} }
...@@ -2100,7 +2387,7 @@ submodule etsi-nfv-vnf { ...@@ -2100,7 +2387,7 @@ submodule etsi-nfv-vnf {
reference reference
"GS NFV IFA011: Section 7.1.2 VNFD information element"; "GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf auto-scalable { leaf is-auto-scalable-enabled {
type boolean; type boolean;
description description
"It permits to enable (TRUE) / disable (FALSE) the "It permits to enable (TRUE) / disable (FALSE) the
...@@ -2109,7 +2396,8 @@ submodule etsi-nfv-vnf { ...@@ -2109,7 +2396,8 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element"; information element";
} }
leaf auto-healable {
leaf is-auto-heal-enabled {
type boolean; type boolean;
description description
"It permits to enable (TRUE) / disable (FALSE) the "It permits to enable (TRUE) / disable (FALSE) the
...@@ -2118,6 +2406,7 @@ submodule etsi-nfv-vnf { ...@@ -2118,6 +2406,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
information element"; information element";
} }
list additional-configurable-property { list additional-configurable-property {
key "key"; key "key";
leaf key { leaf key {
...@@ -2191,14 +2480,20 @@ submodule etsi-nfv-vnf { ...@@ -2191,14 +2480,20 @@ submodule etsi-nfv-vnf {
} }
list lifecycle-management-script { list lifecycle-management-script {
key "event"; key "id";
description description
"Includes a list of events and corresponding management "Includes a list of events and corresponding management
scripts performed for the VNF."; scripts performed for the VNF.";
reference reference
"GS NFV IFA011: Section 7.1.2 VNFD information element"; "GS NFV IFA011: Section 7.1.2 VNFD information element";
leaf event { leaf id {
type string;
description
"A unique string that identfies the script in question.";
}
leaf-list event {
type internal-lifecycle-management-script-event; type internal-lifecycle-management-script-event;
description description
"Describes VNF lifecycle event(s) or an external stimulus "Describes VNF lifecycle event(s) or an external stimulus
...@@ -2207,7 +2502,7 @@ submodule etsi-nfv-vnf { ...@@ -2207,7 +2502,7 @@ submodule etsi-nfv-vnf {
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript "GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element"; information element";
} }
leaf lcm-transition-event { leaf-list lcm-transition-event {
type string; type string;
description description
"Describes the transition VNF lifecycle event(s) that "Describes the transition VNF lifecycle event(s) that
......