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
022fede6
Commit
022fede6
authored
Jul 18, 2019
by
jethanandani
Browse files
Merge branch 'bug#244' into 'v2.7.1'
Address bug#244 See merge request
!47
parents
5e261d31
f433737c
Pipeline
#1288
passed with stage
in 0 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
example-data/nfv-nsd.xml
View file @
022fede6
<nsd
xmlns=
"urn:etsi:nfv:yang:etsi-nfv-nsd"
>
<?xml version="1.0" encoding="UTF-8"?>
<vnfd>
<config
xmlns=
"urn:ietf:params:xml:ns:netconf:base:1.0"
>
<id>
ASA
</id>
<nfv
xmlns=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
<provider>
My Company
</provider>
<vnfd>
<product-name>
My Company ASAv
</product-name>
<id>
ASA
</id>
<software-version>
9.8
</software-version>
<provider>
My Company
</provider>
<version>
9.8
</version>
<product-name>
My Company ASAv
</product-name>
<vnfm-info>
My Company Vnfm
</vnfm-info>
<software-version>
9.8
</software-version>
<vdu>
<version>
9.8
</version>
<id>
firewall
</id>
<vnfm-info>
My Company Vnfm
</vnfm-info>
<name>
Firewall VDU
</name>
<vdu>
<int-cpd>
<id>
firewall
</id>
<id>
inside
</id>
<name>
Firewall VDU
</name>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<int-cpd>
</int-cpd>
<id>
inside
</id>
<int-cpd>
<layer-protocol>
ethernet
</layer-protocol>
<id>
management
</id>
</int-cpd>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<int-cpd>
</int-cpd>
<id>
management
</id>
<int-cpd>
<layer-protocol>
ethernet
</layer-protocol>
<id>
outside
</id>
</int-cpd>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<int-cpd>
</int-cpd>
<id>
outside
</id>
<virtual-compute-desc>
asa-vcd
</virtual-compute-desc>
<layer-protocol>
ethernet
</layer-protocol>
<virtual-storage-desc>
asa-vsd
</virtual-storage-desc>
</int-cpd>
<sw-image-desc>
asa-image
</sw-image-desc>
<virtual-compute-desc>
asa-vcd
</virtual-compute-desc>
</vdu>
<virtual-storage-desc>
asa-vsd
</virtual-storage-desc>
<virtual-compute-desc>
<sw-image-desc>
asa-image
</sw-image-desc>
<id>
asa-vcd
</id>
</vdu>
<virtual-memory>
<virtual-compute-desc>
<size>
4.0
</size>
<id>
asa-vcd
</id>
</virtual-memory>
<virtual-memory>
<virtual-cpu>
<size>
4.0
</size>
<num-virtual-cpu>
2
</num-virtual-cpu>
</virtual-memory>
</virtual-cpu>
<virtual-cpu>
</virtual-compute-desc>
<num-virtual-cpu>
2
</num-virtual-cpu>
<virtual-storage-desc>
</virtual-cpu>
<id>
asa-vsd
</id>
</virtual-compute-desc>
<type-of-storage
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:root-storage
</type-of-storage>
<virtual-storage-desc>
<size-of-storage>
0
</size-of-storage>
<id>
asa-vsd
</id>
</virtual-storage-desc>
<type-of-storage>
root-storage
</type-of-storage>
<sw-image-desc>
<size-of-storage>
0
</size-of-storage>
<id>
asa-image
</id>
</virtual-storage-desc>
<name>
ASA image
</name>
<sw-image-desc>
<version>
1.1
</version>
<id>
asa-image
</id>
<checksum>
<name>
ASA image
</name>
<algorithm
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:sha-224
</algorithm>
<version>
1.1
</version>
<hash>
deadbeef
</hash>
<checksum>
</checksum>
<algorithm>
sha-224
</algorithm>
<container-format>
bare
</container-format>
<hash>
deadbeef
</hash>
<disk-format>
qcow2
</disk-format>
</checksum>
<min-disk>
1
</min-disk>
<container-format>
bare
</container-format>
<min-ram>
2.0
</min-ram>
<disk-format>
qcow2
</disk-format>
<size>
1
</size>
<min-disk>
1
</min-disk>
<image>
http://www.cisco.com/asa.qcow2
</image>
<min-ram>
2.0
</min-ram>
</sw-image-desc>
<size>
1
</size>
<ext-cpd>
<image>
http://mycompany.images.com/asa.qcow2
</image>
<id>
inside
</id>
</sw-image-desc>
<int-cpd>
<ext-cpd>
<vdu-id>
firewall
</vdu-id>
<id>
inside
</id>
<cpd>
inside
</cpd>
<int-cpd>
</int-cpd>
<vdu-id>
firewall
</vdu-id>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<cpd>
inside
</cpd>
</ext-cpd>
</int-cpd>
<ext-cpd>
<layer-protocol>
ethernet
</layer-protocol>
<id>
management
</id>
</ext-cpd>
<int-cpd>
<ext-cpd>
<vdu-id>
firewall
</vdu-id>
<id>
management
</id>
<cpd>
management
</cpd>
<int-cpd>
</int-cpd>
<vdu-id>
firewall
</vdu-id>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<cpd>
management
</cpd>
</ext-cpd>
</int-cpd>
<ext-cpd>
<layer-protocol>
ethernet
</layer-protocol>
<id>
outside
</id>
</ext-cpd>
<int-cpd>
<ext-cpd>
<vdu-id>
firewall
</vdu-id>
<id>
outside
</id>
<cpd>
outside
</cpd>
<int-cpd>
</int-cpd>
<vdu-id>
firewall
</vdu-id>
<layer-protocol
xmlns:nfv=
"urn:etsi:nfv:yang:etsi-nfv-descriptors"
>
nfv:ethernet
</layer-protocol>
<cpd>
outside
</cpd>
</ext-cpd>
</int-cpd>
<df>
<layer-protocol>
ethernet
</layer-protocol>
<id>
normal
</id>
</ext-cpd>
<vdu-profile>
<df>
<id>
firewall
</id>
<id>
normal
</id>
<min-number-of-instances>
1
</min-number-of-instances>
<vdu-profile>
<max-number-of-instances>
2
</max-number-of-instances>
<id>
firewall
</id>
</vdu-profile>
<min-number-of-instances>
1
</min-number-of-instances>
<instantiation-level>
<max-number-of-instances>
2
</max-number-of-instances>
<id>
double
</id>
</vdu-profile>
<vdu-level>
<instantiation-level>
<vdu-id>
firewall
</vdu-id>
<id>
double
</id>
<number-of-instances>
2
</number-of-instances>
<vdu-level>
</vdu-level>
<vdu-id>
firewall
</vdu-id>
</instantiation-level>
<number-of-instances>
2
</number-of-instances>
<instantiation-level>
</vdu-level>
<id>
single
</id>
</instantiation-level>
<vdu-level>
<instantiation-level>
<vdu-id>
firewall
</vdu-id>
<id>
single
</id>
<number-of-instances>
1
</number-of-instances>
<vdu-level>
</vdu-level>
<vdu-id>
firewall
</vdu-id>
</instantiation-level>
<number-of-instances>
1
</number-of-instances>
<default-instantiation-level>
single
</default-instantiation-level>
</vdu-level>
</df>
</instantiation-level>
</vnfd>
<default-instantiation-level>
single
</default-instantiation-level>
<nsd>
<lcm-operations-configuration>
<id>
firewall-nsd
</id>
<scale-vnf-to-level-op-config>
<vnfd-id>
ASA
</vnfd-id>
<arbitrary-target-levels-supported>
true
</arbitrary-target-levels-supported>
<sapd>
</scale-vnf-to-level-op-config>
<id>
inside
</id>
<terminate-vnf-op-config>
</sapd>
<min-graceful-termination>
1
</min-graceful-termination>
<sapd>
</terminate-vnf-op-config>
<id>
management
</id>
<operate-vnf-op-config>
</sapd>
<min-graceful-stop-timeout>
1
</min-graceful-stop-timeout>
<sapd>
</operate-vnf-op-config>
<id>
outside
</id>
</lcm-operations-configuration>
</sapd>
</df>
<df>
</vnfd>
<id>
firewall
</id>
</nfv>
<vnf-profile>
<nsd
xmlns=
"urn:etsi:nfv:yang:etsi-nfv-nsd"
>
<id>
firewall
</id>
<nsd>
<vnfd-id>
ASA
</vnfd-id>
<id>
firewall-nsd
</id>
<flavour-id>
normal
</flavour-id>
<vnfd-id>
ASA
</vnfd-id>
<instantiation-level>
single
</instantiation-level>
<sapd>
<min-number-of-instances>
1
</min-number-of-instances>
<id>
inside
</id>
<max-number-of-instances>
1
</max-number-of-instances>
</sapd>
</vnf-profile>
<sapd>
<ns-instantiation-level>
<id>
management
</id>
<id>
single
</id>
</sapd>
<vnf-to-level-mapping>
<sapd>
<vnf-profile-id>
firewall
</vnf-profile-id>
<id>
outside
</id>
<number-of-instances>
1
</number-of-instances>
</sapd>
</vnf-to-level-mapping>
<df>
</ns-instantiation-level>
<id>
firewall
</id>
</df>
<vnf-profile>
<id>
firewall
</id>
<vnfd-id>
ASA
</vnfd-id>
<flavour-id>
normal
</flavour-id>
<instantiation-level>
single
</instantiation-level>
<min-number-of-instances>
1
</min-number-of-instances>
<max-number-of-instances>
1
</max-number-of-instances>
</vnf-profile>
<ns-instantiation-level>
<id>
single
</id>
<vnf-to-level-mapping>
<vnf-profile-id>
firewall
</vnf-profile-id>
<number-of-instances>
1
</number-of-instances>
</vnf-to-level-mapping>
</ns-instantiation-level>
</df>
</nsd>
</nsd>
</nsd>
</
nsd
>
</
config
>
src/yang/etsi-nfv-ns.yang
View file @
022fede6
...
@@ -97,7 +97,7 @@ submodule etsi-nfv-ns {
...
@@ -97,7 +97,7 @@ submodule etsi-nfv-ns {
leaf-list
vnfd-id
{
leaf-list
vnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
description
description
"References the VNFD of a constituent VNF."
;
"References the VNFD of a constituent VNF."
;
...
@@ -108,7 +108,7 @@ submodule etsi-nfv-ns {
...
@@ -108,7 +108,7 @@ submodule etsi-nfv-ns {
leaf-list
pnfd-id
{
leaf-list
pnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../
pnfd/id"
;
path
"
/nfv:nfv/nfv:
pnfd/
nfv:
id"
;
}
}
description
description
"References the PNFD of a constituent PNF."
;
"References the PNFD of a constituent PNF."
;
...
@@ -164,7 +164,7 @@ submodule etsi-nfv-ns {
...
@@ -164,7 +164,7 @@ submodule etsi-nfv-ns {
leaf
vnfd-id
{
leaf
vnfd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"
../../../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
must
"boolean(../../../vnfd-id[.=current()])"
;
must
"boolean(../../../vnfd-id[.=current()])"
;
}
}
...
@@ -172,7 +172,7 @@ submodule etsi-nfv-ns {
...
@@ -172,7 +172,7 @@ submodule etsi-nfv-ns {
leaf
ext-cpd-id
{
leaf
ext-cpd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../vnfd-id)/../ext-cpd/id"
;
path
"deref(../vnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
}
}
}
}
...
@@ -181,7 +181,7 @@ submodule etsi-nfv-ns {
...
@@ -181,7 +181,7 @@ submodule etsi-nfv-ns {
leaf
pnfd-id
{
leaf
pnfd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"
../../../../
pnfd/id"
;
path
"
/nfv:nfv/nfv:
pnfd/
nfv:
id"
;
}
}
must
"boolean(../pnfd-id[.=current()])"
;
must
"boolean(../pnfd-id[.=current()])"
;
}
}
...
@@ -189,7 +189,7 @@ submodule etsi-nfv-ns {
...
@@ -189,7 +189,7 @@ submodule etsi-nfv-ns {
leaf
ext-cpd-id
{
leaf
ext-cpd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../pnfd-id)/../ext-cpd/id"
;
path
"deref(../pnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
}
}
}
}
...
@@ -466,19 +466,18 @@ submodule etsi-nfv-ns {
...
@@ -466,19 +466,18 @@ submodule etsi-nfv-ns {
CpdInConstituentElement information element"
;
CpdInConstituentElement information element"
;
}
}
choice
constituent-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"
{
}
type
leafref
{
path
"../../../../../../vnfd/id"
;
}
}
}
leaf
cpd-id
{
type
leafref
{
type
leafref
{
path
"/nfv:nfv/nfv:vnfd/nfv:id"
;
path
"deref(../vnfd-id)/../ext-cpd/id"
;
}
}
}
leaf
cpd-id
{
type
leafref
{
path
"deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"
;
}
}
}
}
container
pnf
{
container
pnf
{
...
@@ -489,10 +488,13 @@ submodule etsi-nfv-ns {
...
@@ -489,10 +488,13 @@ submodule etsi-nfv-ns {
path
"../../../../../../pnfd/id"
;
path
"../../../../../../pnfd/id"
;
}
}
}
}
leaf
pnf-cpd-id
{
type
leafref
{
type
leafref
{
path
"/nfv:nfv/nfv:pnfd/nfv:id"
;
path
"deref(../pnfd-id)/../ext-cpd/id"
;
}
}
}
leaf
pnf-cpd-id
{
type
leafref
{
path
"deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"
;
}
}
}
}
container
ns
{
container
ns
{
...
@@ -637,6 +639,7 @@ submodule etsi-nfv-ns {
...
@@ -637,6 +639,7 @@ submodule etsi-nfv-ns {
leaf-list
autoscale-rule
{
leaf-list
autoscale-rule
{
type
string
;
type
string
;
}
}
list
lifecycle-management-script
{
list
lifecycle-management-script
{
key
"event"
;
key
"event"
;
leaf
event
{
leaf
event
{
...
@@ -716,7 +719,7 @@ submodule etsi-nfv-ns {
...
@@ -716,7 +719,7 @@ submodule etsi-nfv-ns {
leaf
vnfd-id
{
leaf
vnfd-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"
../../../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
description
description
"References a VNFD."
;
"References a VNFD."
;
...
@@ -728,7 +731,7 @@ submodule etsi-nfv-ns {
...
@@ -728,7 +731,7 @@ submodule etsi-nfv-ns {
leaf
flavour-id
{
leaf
flavour-id
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../vnfd-id)/../
df/
id"
;
path
"deref(../vnfd-id)/../
nfv:df/nfv:
id"
;
}
}
description
description
"Identifies a flavour within the VNFD."
;
"Identifies a flavour within the VNFD."
;
...
@@ -740,7 +743,8 @@ submodule etsi-nfv-ns {
...
@@ -740,7 +743,8 @@ submodule etsi-nfv-ns {
leaf
instantiation-level
{
leaf
instantiation-level
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../flavour-id)/../instantiation-level/id"
;
path
"deref(../flavour-id)/../nfv:instantiation-level/"
+
"nfv:id"
;
}
}
description
description
"Identifier of the instantiation level of the VNF DF
"Identifier of the instantiation level of the VNF DF
...
@@ -840,7 +844,7 @@ submodule etsi-nfv-ns {
...
@@ -840,7 +844,7 @@ submodule etsi-nfv-ns {
leaf
constituent-cpd-id
{
leaf
constituent-cpd-id
{
type
leafref
{
type
leafref
{
path
"deref(../../../vnfd-id)/../ext-cpd/id"
;
path
"deref(../../../vnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
description
description
"A reference to the descriptor of a connection point
"A reference to the descriptor of a connection point
...
@@ -874,7 +878,7 @@ submodule etsi-nfv-ns {
...
@@ -874,7 +878,7 @@ submodule etsi-nfv-ns {
leaf
pnfd-id
{
leaf
pnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../../../
pnfd/id"
;
path
"
/nfv:nfv/nfv:
pnfd/
nfv:
id"
;
}
}
description
description
"References a PNFD."
;
"References a PNFD."
;
...
@@ -930,7 +934,7 @@ submodule etsi-nfv-ns {
...
@@ -930,7 +934,7 @@ submodule etsi-nfv-ns {
leaf
constituent-cpd-id
{
leaf
constituent-cpd-id
{
type
leafref
{
type
leafref
{
path
"deref(../../../pnfd-id)/../ext-cpd/id"
;
path
"deref(../../../pnfd-id)/../
nfv:
ext-cpd/
nfv:
id"
;
}
}
description
description
"A reference to the descriptor of a connection point
"A reference to the descriptor of a connection point
...
@@ -1501,7 +1505,7 @@ submodule etsi-nfv-ns {
...
@@ -1501,7 +1505,7 @@ submodule etsi-nfv-ns {
container
vnf-indicator-info
{
container
vnf-indicator-info
{
leaf
vnfd-id
{
leaf
vnfd-id
{
type
leafref
{
type
leafref
{
path
"
../../../../../
vnfd/id"
;
path
"
/nfv:nfv/nfv:
vnfd/
nfv:
id"
;
}
}
description
description
"Identifies a VNFD."
;
"Identifies a VNFD."
;
...
@@ -1513,7 +1517,7 @@ submodule etsi-nfv-ns {
...
@@ -1513,7 +1517,7 @@ submodule etsi-nfv-ns {
leaf
vnf-indicator
{
leaf
vnf-indicator
{
mandatory
true
;
mandatory
true
;
type
leafref
{
type
leafref
{
path
"deref(../vnfd-id)/../indicator/id"
;
path
"deref(../vnfd-id)/../
nfv:
indicator/
nfv:
id"
;
}
}
description
description
"Identifies a VNF indicator within the VNFD."
;
"Identifies a VNF indicator within the VNFD."
;
...
...
src/yang/etsi-nfv-nsd.yang
View file @
022fede6
...
@@ -20,19 +20,6 @@ module etsi-nfv-nsd {
...
@@ -20,19 +20,6 @@ module etsi-nfv-nsd {
}
}
container
nsd
{
container
nsd
{
list
vnfd
{
key
"id"
;
description
"A VNF Descriptor (VNFD) is a deployment template which
describes a VNF in terms of deployment and operational
behaviour requirements. It also contains connectivity,
interface and virtualised resource requirements"
;
reference
"GS NFV-IFA011: Section 7.1.2, VNFD information element"
;
uses
vnf
:
vnfd
;
}
list
nsd
{
list
nsd
{
key
"id"
;
key
"id"
;
max-elements
1
;
max-elements
1
;
...
@@ -45,18 +32,5 @@ module etsi-nfv-nsd {
...
@@ -45,18 +32,5 @@ module etsi-nfv-nsd {
"GS NFV-IFA014: Section 6.2.2, Network Service Descriptor
"GS NFV-IFA014: Section 6.2.2, Network Service Descriptor
information element"
;
information element"
;
}
}
list
pnfd
{
key
"id"
;
description
"The Pnfd information element is a deployment template
enabling on-boarding PNFs and referencing them from an
NSD. It focuses on connectivity aspects only."
;
reference
"GS NFV-IFA014: Section 6.6.2, Pnfd information element."
;
uses
vnf
:
pnfd
;
}
}
}
}
}
src/yang/etsi-nfv-vnf.yang
View file @
022fede6
...
@@ -237,7 +237,7 @@ submodule etsi-nfv-vnf {
...
@@ -237,7 +237,7 @@ submodule etsi-nfv-vnf {
leaf
int-virtual-link-desc
{
leaf
int-virtual-link-desc
{
type
leafref
{
type
leafref
{
path
"
../../../
int-virtual-link-desc/id"
;
path
"
/nfv:nfv/nfv:vnfd/nfv:
int-virtual-link-desc/
nfv:
id"
;
}
}
description
description
"Reference of the internal VLD which this internal CPD
"Reference of the internal VLD which this internal CPD
...
@@ -260,7 +260,7 @@ submodule etsi-nfv-vnf {
...
@@ -260,7 +260,7 @@ submodule etsi-nfv-vnf {
leaf
nicio-requirements
{
leaf
nicio-requirements
{
type
leafref
{
type
leafref
{
path
"
../../../
virtual-compute-desc/id"
;
path
"
/nfv:nfv/nfv:vnfd/nfv:
virtual-compute-desc/
nfv:
id"
;
}
}
description
description
"This references (couples) the CPD with any logical node I/O
"This references (couples) the CPD with any logical node I/O
...
@@ -1254,7 +1254,7 @@ submodule etsi-nfv-vnf {
...
@@ -1254,7 +1254,7 @@ submodule etsi-nfv-vnf {
Descriptor (CPD) connect. Either intVirtualLinkDesc or
Descriptor (CPD) connect. Either intVirtualLinkDesc or
intCpd shall be present."
;
intCpd shall be present."
;
type
leafref
{
type
leafref
{
path
"
../../
int-virtual-link-desc/id"
;
path
"
/nfv:nfv/nfv:vnfd/nfv:
int-virtual-link-desc/
nfv:
id"
;
}
}
}
}
...
@@ -1292,7 +1292,7 @@ submodule etsi-nfv-vnf {
...
@@ -1292,7 +1292,7 @@ submodule etsi-nfv-vnf {
leaf
nicio-requirements
{
leaf
nicio-requirements
{
type
leafref
{
type
leafref
{
path
"
../../
virtual-compute-desc/id"
;
path
"
/nfv:nfv/nfv:vnfd/nfv:
virtual-compute-desc/
nfv:
id"
;
}
}
description
description
"This references (couples) the CPD with any logical node I/O
"This references (couples) the CPD with any logical node I/O
...
@@ -1472,7 +1472,7 @@ submodule etsi-nfv-vnf {
...
@@ -1472,7 +1472,7 @@ submodule etsi-nfv-vnf {
leaf
id
{
leaf
id
{
type
leafref
{
type
leafref
{
path
"
../../../
int-virtual-link-desc/id"
;
path
"
/nfv:nfv/nfv:vnfd/nfv:
int-virtual-link-desc/
nfv:
id"
;
}
}
description