From e886caabd5b0d610778b2bc26c2560cb418b85ce Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Mon, 23 Sep 2019 14:39:43 -0700 Subject: [PATCH 1/4] Fix for bug#254 --- src/yang/etsi-nfv-vnf.yang | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 48cc233..165ea23 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2621,6 +2621,41 @@ submodule etsi-nfv-vnf { information element"; } + leaf vnfm-interface-info { + type string; + description + "Contains information enabling access to the NFV-MANO + interfaces produced by the VNFM (e.g. URIs and + credentials)."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + + leaf vnfm-oauth-server-info { + type string; + description + "Contains information to enable discovery of the + authorization server protecting access to + VNFM interfaces."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + + leaf vnf-oauth-server-info { + type string; + description + "Contains information to enable discovery of the + authorization server to validate the access tokens + provided by the VNFM when the VNFM accesses the VNF + interfaces, if that functionality (token introspection) is + supported by the authorization server."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + list additional-configurable-property { key "key"; -- GitLab From 6b8c64072430d9a976ef38e4d47dea3d78bbec07 Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Tue, 24 Sep 2019 16:35:27 +0200 Subject: [PATCH 2/4] Address a syntax error --- src/yang/etsi-nfv-descriptors.yang | 1 + src/yang/etsi-nfv-ns.yang | 44 ++++++++++++++++-------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/yang/etsi-nfv-descriptors.yang b/src/yang/etsi-nfv-descriptors.yang index afedb3b..ce3769f 100644 --- a/src/yang/etsi-nfv-descriptors.yang +++ b/src/yang/etsi-nfv-descriptors.yang @@ -24,6 +24,7 @@ module etsi-nfv-descriptors { container nfv { list vnfd { key "id"; + description "A VNF Descriptor (VNFD) is a deployment template which describes a VNF in terms of deployment and operational diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 2b12612..b95b489 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -418,7 +418,7 @@ submodule etsi-nfv-ns { list nfp-position-element { key "id"; - min-elements 1; + min-elements 1; leaf id { type string; @@ -443,6 +443,7 @@ submodule etsi-nfv-ns { } } } + container pnf-profile { leaf pnf-profile-id { must ". = deref(../../pnfd-profile-id)" { @@ -452,6 +453,7 @@ submodule etsi-nfv-ns { } } } + container ns-profile { leaf ns-profile-id { must ". = deref(../../ns-profile-id)" { @@ -468,41 +470,41 @@ submodule etsi-nfv-ns { CpdInConstituentElement information element"; } - choice constituent-cpd-id { - container vnf { - leaf vnfd-id { - must ". = deref(../../vnfd-profile-id)/../vnfd-id" { - } - type leafref { - path "/nfv:nfv/nfv:vnfd/nfv:id"; + choice constituent-cpd-id { + container vnf { + leaf vnfd-id { + must ". = deref(../../vnfd-profile-id)/../vnfd-id" { + } + type leafref { + path "/nfv:nfv/nfv:vnfd/nfv:id"; + } } - } - leaf cpd-id { - type leafref { - path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; + leaf cpd-id { + type leafref { + path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; + } } } + container pnf { leaf pnfd-id { must ". = deref(../../pnfd-profile-id)/../pnfd-id" { } type leafref { - path "../../../../../../pnfd/id"; + path "/nfv:nfv/nfv:pnfd/nfv:id"; } } - type leafref { - path "/nfv:nfv/nfv:pnfd/nfv:id"; - } - } - leaf pnf-cpd-id { - type leafref { - path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + leaf pnf-cpd-id { + type leafref { + path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + } } } + container ns { leaf nsd-id { must ". = deref(../../nested-ns-profile-id)/" + - "../nsd-id" { + "../nsd-id" { } type leafref { -- GitLab From ef351be0e67f08eb62ef8258479e44488e1c2abf Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Fri, 27 Sep 2019 18:51:09 -0700 Subject: [PATCH 3/4] Ported over VnfmInterfaceInfo definitions from SOL001 --- src/yang/etsi-nfv-vnf.yang | 126 +++++++++++++++++++++++++++++++++---- 1 file changed, 114 insertions(+), 12 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 165ea23..56fcafb 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2621,10 +2621,114 @@ submodule etsi-nfv-vnf { information element"; } - leaf vnfm-interface-info { - type string; - description - "Contains information enabling access to the NFV-MANO + container vnfm-interface-info { + leaf interface-name { + type string { + pattern 'vnf-[lcm|pm|fm]'; + } + description + "Identifies an interface produced by the VNFM."; + } + + container details { + container uri-components { + leaf scheme { + type yang:uri; + description + "Corresponds to the scheme component of a URI, as + per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + container authority { + leaf userinfo { + type string; + description + "Corresponds to the userinfo field of the authority + component of a URI, as per IETF RFC 3986. + + For HTTP and HTTPS URIs, the provisions in + sections 2.7.1 and 2.7.2 of IETF RFC 7230 apply, + respectively."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf host { + type yang:host; + description + "Corresponds to the host field of the authority + component of a URI, as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf port { + type yang:port-number; + description + "Corresponds to the port field of the authority + component of a URI, as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + description + "Corresponds to the authority component of a URI, + as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf path { + type string; + description + "Corresponds to the path component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf query { + type string; + description + "Corresponds to the query component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf fragment { + type string; + description + "Corresponds to the fragment component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + description + "Provides components to build a Uniform Resource + Identifier (URI) where to access the interface end + point."; + } + + leaf-list interface-specific-data { + type string; + description + "Provides additional details that are specific to the + type of interface considered."; + } + description + "Provide additional data to access the interface + endpoint (e.g. API URI prefix)."; + } + + leaf credentials { + type string; + description + "Provides credential enabling access to the interface."; + } + description + "Contains information enabling access to the NFV-MANO interfaces produced by the VNFM (e.g. URIs and credentials)."; reference @@ -2632,10 +2736,9 @@ submodule etsi-nfv-vnf { information element"; } - leaf vnfm-oauth-server-info { - type string; - description - "Contains information to enable discovery of the + container vnfm-oauth-server-info { + description + "Contains information to enable discovery of the authorization server protecting access to VNFM interfaces."; reference @@ -2643,10 +2746,9 @@ submodule etsi-nfv-vnf { information element"; } - leaf vnf-oauth-server-info { - type string; - description - "Contains information to enable discovery of the + container vnf-oauth-server-info { + description + "Contains information to enable discovery of the authorization server to validate the access tokens provided by the VNFM when the VNFM accesses the VNF interfaces, if that functionality (token introspection) is -- GitLab From 7f08c82a60fe507df8f26246db67c386ce01dbd0 Mon Sep 17 00:00:00 2001 From: Mahesh Jethanandani Date: Fri, 27 Sep 2019 18:54:13 -0700 Subject: [PATCH 4/4] Fixed prefixes for some of the typedefs. --- src/yang/etsi-nfv-vnf.yang | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 56fcafb..e4d737b 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2633,7 +2633,7 @@ submodule etsi-nfv-vnf { container details { container uri-components { leaf scheme { - type yang:uri; + type inet:uri; description "Corresponds to the scheme component of a URI, as per IETF RFC 3986."; @@ -2656,7 +2656,7 @@ submodule etsi-nfv-vnf { } leaf host { - type yang:host; + type inet:host; description "Corresponds to the host field of the authority component of a URI, as per IETF RFC 3986."; @@ -2665,7 +2665,7 @@ submodule etsi-nfv-vnf { } leaf port { - type yang:port-number; + type inet:port-number; description "Corresponds to the port field of the authority component of a URI, as per IETF RFC 3986."; -- GitLab