Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
SOL006
Commits
f20483aa
Commit
f20483aa
authored
Apr 25, 2019
by
jethanandani
Browse files
Merge branch 'master' into 'bug#227'
# Conflicts: # run-test.sh # src/yang/etsi-nfv-ns.yang # src/yang/etsi-nfv-vnf.yang
parents
a576567f
1aa76d6b
Pipeline
#848
passed with stage
in 0 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.jenkins.sh
View file @
f20483aa
...
...
@@ -11,8 +11,21 @@ IMG_NAME="sol006"
VERSION
=
latest
IMG
=
"
$IMG_NAME
:
$VERSION
"
CMT
=
$(
git rev-parse
--short
HEAD
)
docker build
--tag
"
$IMG
"
.
docker run
"
$IMG
"
echo
"Building HTML tree"
docker run
-v
"
$(
pwd
)
/src/yang/:/yang/"
mjethanandani/pyang
\
"/bin/sh"
-c
"cd /yang/ && pyang -f jstree -p /yang/
\
/yang/etsi-nfv.yang > etsi-nfv.html"
sed
-r
-i
's|<a href=\"http://www.tail-f.com">|<a href="http://etsi.org">|g'
src/yang/etsi-nfv.html
sed
-r
-i
's|data\:image/gif\;base64,R0lGODlhS.*RCAA7|https://www.etsi.org/images/ETSILogoTwitter.png\" height=\"100|g'
src/yang/etsi-nfv.html
sed
-r
-i
"s|<div class=
\"
app
\"
>|<p>Commit: <a href=
\"
https://forge.etsi.org/gitlab/nfv/SOL006/commit/
${
CMT
}
\"
>
$CMT
</a>, Build:<a href=
\"
$BUILD_URL
\"
>
$BUILD_NUMBER
</a></p><div class=
\"
app
\"
>|g"
src/yang/etsi-nfv.html
exit
$?
example-data/complex-vnfd.xml
0 → 100644
View file @
f20483aa
<nfv
xmlns=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
<vnfd>
<id>
complex-vnf
</id>
<provider>
My Company
</provider>
<product-name>
complex-vnf
</product-name>
<software-version>
1.0
</software-version>
<version>
1.0
</version>
<vnfm-info>
netconf
</vnfm-info>
<vdu>
<id>
control-plane-active
</id>
<name>
control-plane-active
</name>
<int-cpd>
<id>
internal
</id>
<int-virtual-link-desc>
internal-vl
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<int-cpd>
<id>
mgmt
</id>
<int-virtual-link-desc>
mgmt
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<virtual-compute-desc>
CP
</virtual-compute-desc>
<virtual-storage-desc>
root
</virtual-storage-desc>
<sw-image-desc>
CP
</sw-image-desc>
</vdu>
<vdu>
<id>
control-plane-standby
</id>
<name>
control-plane-standby
</name>
<int-cpd>
<id>
internal
</id>
<int-virtual-link-desc>
internal-vl
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<int-cpd>
<id>
mgmt
</id>
<int-virtual-link-desc>
mgmt
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<virtual-compute-desc>
CP
</virtual-compute-desc>
<virtual-storage-desc>
root
</virtual-storage-desc>
<sw-image-desc>
CP
</sw-image-desc>
</vdu>
<vdu>
<id>
data-plane
</id>
<name>
data-plane
</name>
<int-cpd>
<id>
in
</id>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<int-cpd>
<id>
internal
</id>
<int-virtual-link-desc>
internal-vl
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<int-cpd>
<id>
out
</id>
<layer-protocol>
ipv4
</layer-protocol>
</int-cpd>
<virtual-compute-desc>
DP
</virtual-compute-desc>
<virtual-storage-desc>
root
</virtual-storage-desc>
<sw-image-desc>
DP
</sw-image-desc>
</vdu>
<virtual-compute-desc>
<id>
CP
</id>
<virtual-memory>
<size>
16.0
</size>
</virtual-memory>
<virtual-cpu>
<num-virtual-cpu>
8
</num-virtual-cpu>
</virtual-cpu>
</virtual-compute-desc>
<virtual-compute-desc>
<id>
DP
</id>
<virtual-memory>
<size>
32.0
</size>
</virtual-memory>
<virtual-cpu>
<num-virtual-cpu>
16
</num-virtual-cpu>
</virtual-cpu>
</virtual-compute-desc>
<virtual-storage-descriptor>
<id>
root
</id>
<type-of-storage>
root-storage
</type-of-storage>
<size-of-storage>
10
</size-of-storage>
</virtual-storage-descriptor>
<sw-image-desc>
<id>
CP
</id>
<name>
CP
</name>
<version>
1.1
</version>
<checksum>
<algorithm>
sha-224
</algorithm>
<hash>
deadbeef
</hash>
</checksum>
<container-format>
bare
</container-format>
<disk-format>
qcow2
</disk-format>
<min-disk>
1
</min-disk>
<min-ram>
2.0
</min-ram>
<size>
1
</size>
<image>
http://mycompany.images.com/control-plane.qcow2
</image>
</sw-image-desc>
<sw-image-desc>
<id>
DP
</id>
<name>
DP
</name>
<version>
1.1
</version>
<checksum>
<algorithm>
sha-224
</algorithm>
<hash>
deadbeef
</hash>
</checksum>
<container-format>
bare
</container-format>
<disk-format>
qcow2
</disk-format>
<min-disk>
1
</min-disk>
<min-ram>
2.0
</min-ram>
<size>
1
</size>
<image>
http://mycompany.images.com/data-plane.qcow2
</image>
</sw-image-desc>
<int-virtual-link-desc>
<id>
internal-vl
</id>
<connectivity-type>
<layer-protocol>
<protocol>
ipv4
</protocol>
</layer-protocol>
</connectivity-type>
</int-virtual-link-desc>
<int-virtual-link-desc>
<id>
mgmt
</id>
<connectivity-type>
<layer-protocol>
<protocol>
ipv4
</protocol>
</layer-protocol>
</connectivity-type>
</int-virtual-link-desc>
<ext-cpd>
<id>
in
</id>
<int-cpd>
<vdu-id>
data-plane
</vdu-id>
<cpd>
in
</cpd>
</int-cpd>
<layer-protocol>
ipv4
</layer-protocol>
</ext-cpd>
<ext-cpd>
<id>
mgmt
</id>
<int-virtual-link-desc>
mgmt
</int-virtual-link-desc>
<layer-protocol>
ipv4
</layer-protocol>
</ext-cpd>
<ext-cpd>
<id>
out
</id>
<int-cpd>
<vdu-id>
data-plane
</vdu-id>
<cpd>
out
</cpd>
</int-cpd>
<layer-protocol>
ipv4
</layer-protocol>
</ext-cpd>
<df>
<id>
gold
</id>
<vdu-profile>
<id>
control-plane-active
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
1
</max-number-of-instances>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
</affinity-or-anti-affinity-group>
</vdu-profile>
<vdu-profile>
<id>
control-plane-standby
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
1
</max-number-of-instances>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
</affinity-or-anti-affinity-group>
</vdu-profile>
<vdu-profile>
<id>
data-plane
</id>
<min-number-of-instances>
2
</min-number-of-instances>
<max-number-of-instances>
8
</max-number-of-instances>
</vdu-profile>
<instantiation-level>
<id>
il-1
</id>
<vdu-level>
<vdu-id>
control-plane-active
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
control-plane-standby
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
data-plane
</vdu-id>
<number-of-instances>
2
</number-of-instances>
</vdu-level>
</instantiation-level>
<instantiation-level>
<id>
il-2
</id>
<vdu-level>
<vdu-id>
control-plane-active
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
control-plane-standby
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
data-plane
</vdu-id>
<number-of-instances>
4
</number-of-instances>
</vdu-level>
</instantiation-level>
<default-instantiation-level>
il-1
</default-instantiation-level>
<lcm-operations-configuration>
<scale-vnf-to-level-op-config>
<arbitrary-target-levels-supported>
true
</arbitrary-target-levels-supported>
</scale-vnf-to-level-op-config>
<terminate-vnf-op-config>
<min-graceful-termination>
1
</min-graceful-termination>
</terminate-vnf-op-config>
<operate-vnf-op-config>
<min-graceful-stop-timeout>
1
</min-graceful-stop-timeout>
</operate-vnf-op-config>
</lcm-operations-configuration>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
<type>
anti-affinity
</type>
<scope>
nfvi-node
</scope>
</affinity-or-anti-affinity-group>
</df>
<df>
<id>
silver
</id>
<vdu-profile>
<id>
control-plane-active
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
1
</max-number-of-instances>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
</affinity-or-anti-affinity-group>
</vdu-profile>
<vdu-profile>
<id>
control-plane-standby
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
1
</max-number-of-instances>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
</affinity-or-anti-affinity-group>
</vdu-profile>
<vdu-profile>
<id>
data-plane
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
4
</max-number-of-instances>
</vdu-profile>
<instantiation-level>
<id>
il-1
</id>
<vdu-level>
<vdu-id>
control-plane-active
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
control-plane-standby
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
data-plane
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
</instantiation-level>
<instantiation-level>
<id>
il-2
</id>
<vdu-level>
<vdu-id>
control-plane-active
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
control-plane-standby
</vdu-id>
<number-of-instances>
1
</number-of-instances>
</vdu-level>
<vdu-level>
<vdu-id>
data-plane
</vdu-id>
<number-of-instances>
2
</number-of-instances>
</vdu-level>
</instantiation-level>
<default-instantiation-level>
il-1
</default-instantiation-level>
<lcm-operations-configuration>
<scale-vnf-to-level-op-config>
<arbitrary-target-levels-supported>
true
</arbitrary-target-levels-supported>
</scale-vnf-to-level-op-config>
<terminate-vnf-op-config>
<min-graceful-termination>
1
</min-graceful-termination>
</terminate-vnf-op-config>
<operate-vnf-op-config>
<min-graceful-stop-timeout>
1
</min-graceful-stop-timeout>
</operate-vnf-op-config>
</lcm-operations-configuration>
<affinity-or-anti-affinity-group>
<id>
control-plane
</id>
<type>
anti-affinity
</type>
<scope>
nfvi-node
</scope>
</affinity-or-anti-affinity-group>
</df>
</vnfd>
</nfv>
example-data/nfv.xml
View file @
f20483aa
...
...
@@ -49,9 +49,10 @@
</checksum>
<container-format>
bare
</container-format>
<disk-format>
qcow2
</disk-format>
<min-disk>
1
</min-disk>
<min-ram>
2.0
</min-ram>
<size>
1
</size>
<image>
http://
www.cisco
.com/asa.qcow2
</image>
<image>
http://
mycompany.images
.com/asa.qcow2
</image>
</sw-image-desc>
<ext-cpd>
<id>
inside
</id>
...
...
@@ -99,6 +100,17 @@
</vdu-level>
</instantiation-level>
<default-instantiation-level>
single
</default-instantiation-level>
<lcm-operations-configuration>
<scale-vnf-to-level-op-config>
<arbitrary-target-levels-supported>
true
</arbitrary-target-levels-supported>
</scale-vnf-to-level-op-config>
<terminate-vnf-op-config>
<min-graceful-termination>
1
</min-graceful-termination>
</terminate-vnf-op-config>
<operate-vnf-op-config>
<min-graceful-stop-timeout>
1
</min-graceful-stop-timeout>
</operate-vnf-op-config>
</lcm-operations-configuration>
</df>
</vnfd>
<vnfd>
...
...
@@ -151,9 +163,10 @@
</checksum>
<container-format>
bare
</container-format>
<disk-format>
qcow2
</disk-format>
<min-disk>
1
</min-disk>
<min-ram>
2.0
</min-ram>
<size>
1
</size>
<image>
http://
www.cisco
.com/csr.qcow2
</image>
<image>
http://
mycompany.images
.com/csr.qcow2
</image>
</sw-image-desc>
<ext-cpd>
<id>
left
</id>
...
...
@@ -201,6 +214,17 @@
</vdu-level>
</instantiation-level>
<default-instantiation-level>
single
</default-instantiation-level>
<lcm-operations-configuration>
<scale-vnf-to-level-op-config>
<arbitrary-target-levels-supported>
true
</arbitrary-target-levels-supported>
</scale-vnf-to-level-op-config>
<terminate-vnf-op-config>
<min-graceful-termination>
1
</min-graceful-termination>
</terminate-vnf-op-config>
<operate-vnf-op-config>
<min-graceful-stop-timeout>
1
</min-graceful-stop-timeout>
</operate-vnf-op-config>
</lcm-operations-configuration>
</df>
</vnfd>
<nsd>
...
...
run-test.sh
View file @
f20483aa
...
...
@@ -33,6 +33,8 @@ confd_load -l -m nfv-nsd.xml
echo
"Loading Data for descriptors"
confd_load
-l
-m
nfv.xml
echo
"Loading data for the complex Vnfd example"
confd_load
-l
-m
complex-vnfd.xml
# Don't do this in the actual test, just waste of cycles
...
...
src/yang/etsi-nfv-common.yang
View file @
f20483aa
...
...
@@ -531,7 +531,7 @@ submodule etsi-nfv-common {
when
"../type='mac-address'"
;
leaf
mac-address-assignment
{
type
boolean
;
default
true
;
mandatory
true
;
description
"Specify if the MAC address assignment is the
responsibility of management and orchestration function
...
...
@@ -557,7 +557,7 @@ submodule etsi-nfv-common {
when
"../type='ip-address'"
;
leaf
ip-address-assignment
{
type
boolean
;
default
"
true
"
;
mandatory
true
;
description
"Specify if the address assignment is the responsibility
of management and orchestration function or not. If it
...
...
@@ -570,7 +570,7 @@ submodule etsi-nfv-common {
leaf
floating-ip-activated
{
type
boolean
;
default
"
true
"
;
mandatory
true
;
description
"Specify if the floating IP scheme is activated on the CP
or not."
;
...
...
src/yang/etsi-nfv-vnf.yang
View file @
f20483aa
...
...
@@ -1004,20 +1004,20 @@ submodule etsi-nfv-vnf {
the underlying disk image."
;
}
leaf
min-disk
{
type
uint64
;
units
"GB"
;
default
0
;
description
"The minimal disk size requirement for this software
image. The value of the 'size of storage' attribute
of the VirtualStorageDesc referencing this
SwImageDesc shall not be smaller than the value of
minDisk."
;
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."
;
}
leaf
min-disk
{
type
uint64
;
units
"GB"
;
mandatory
true
;
description
"The minimal disk size requirement for this software
image. The value of the 'size of storage' attribute
of the VirtualStorageDesc referencing this
SwImageDesc shall not be smaller than the value of
minDisk."
;
reference
"GS NFV IFA011: Section 7.1.6.5, SwImageDesc
information element."
;
}
leaf
min-ram
{
type
decimal64
{
...
...
@@ -2648,6 +2648,17 @@ submodule etsi-nfv-vnf {
leaf
key
{
type
string
;
description
"Includes a VNF LCM script (e.g. written in a DSL as
specified in requirement VNF_PACK.LCM.001) triggered to
react to one of the events listed in the event
attribute.
The string value specified here is a path to a file in
the VNF package."
;
reference
"GS NFV IFA011: Section 7.1.13 LifeCycleManagementScript
information element"
;
}
leaf
value
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment