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;
} }
} }
} }
This diff is collapsed.