From 608d5948e260cd8b9b7c6cd33856d2db4ccb3530 Mon Sep 17 00:00:00 2001 From: David Garcia Date: Tue, 28 Sep 2021 10:28:03 +0200 Subject: [PATCH] Update vnfc-relations Renamed `vnfc-relations` to `relations` Change entities content: - Replace ambiguous `id` with `vnf-profile-id`, `kdu-resource-profile-id` and `vdu-profile-id` - Add `execution-environment-ref` to select the ee from the potential list - Change `entities` from a two-element list to a `provider` and `requirer` containers. This makes the IM more robust and avoids unexpected list of endpoints with more than two elements. Related feature: 10887 (https://osm.etsi.org/gitlab/osm/features/-/issues/10887) Change-Id: I327764adc5366427d6366e1609f7aebad878c4a6 Signed-off-by: David Garcia --- models/augments/common-augments.yang | 108 ++++++++++++++++++++------ models/augments/day1-2.yang | 2 +- models/augments/ns-configuration.yang | 2 +- 3 files changed, 88 insertions(+), 24 deletions(-) diff --git a/models/augments/common-augments.yang b/models/augments/common-augments.yang index 912199c..c365424 100644 --- a/models/augments/common-augments.yang +++ b/models/augments/common-augments.yang @@ -20,6 +20,13 @@ module common-augments { namespace "urn:etsi:osm:yang:augments"; prefix "common"; + import etsi-nfv-vnfd { + prefix vnfd; + } + import etsi-nfv-nsd { + prefix nsd; + } + typedef parameter-data-type { type enumeration { enum STRING; @@ -102,10 +109,79 @@ module common-augments { } } - grouping vnfc-relations { + grouping relations-ee { + description + "Information about the execution environment and endpoint for a relation. + The execution environment can be associated to different objects: kdu, vdu, vnf, or ns. + To select the object, the profile-id of the object might be needed: + Reference to a kdu-level execution enviroment: + in the VNFd: the kdu-resource-profile-id is needed. + in the NSd: the kdu-resource-profile-id and vnf-profile-id are needed. + Reference to a vdu-level execution enviroment: + in the VNFd: the vdu-profile-id is needed. + in the NSd: the vdu-profile-id and vnf-profile-id are needed. + Reference to a vnf-level execution enviroment: + in the VNFd: nothing is needed, implicit. + in the NSd: the vnf-profile-id is needed. + Reference to an ns-level execution enviroment: + in the VNFd: cannot be done. + in the NSd: nothing is needed, implicit. + The reference to the execution environment is only mandatory if there is more than one execution environment + in the execution-environment-list of an object. + The endpoint is always needed"; + + leaf vdu-profile-id { + description + "If the execution environment is associated to a vdu object, + this parameter is the reference to the vdu-profile id."; + type leafref { + path "/vnfd:vnfd/vnfd:df/vnfd:vdu-profile/vnfd:id"; + } + } + + leaf kdu-resource-profile-id { + description + "If the execution environment is associated to a kdu resource object, + this parameter is the reference to the kdu-resource-profile id."; + type string; + } + + leaf vnf-profile-id { + description + "If the execution environment is associated to a vnf object, + this parameter is the reference to the vnf-profile id. + Only valid in the NSd. The value is implicit in a VNFd. + To reference an execution environment associated to a vnf object + from the VNFd, none of the profile ids need to be specified."; + type leafref { + path "/nsd:nsd/nsd:nsd/nsd:df/nsd:vnf-profile/nsd:id"; + } + } + leaf execution-environment-ref { + description + "Optional reference to the execution environment id. + Only needed if there is more than one execution environment + in the execution-environment-list of an object."; + type string; + default ""; + } + leaf endpoint { + description + "Endpoint name of the execution environment."; + type string; + } + } + + grouping relations { list relation { description - "List of relations between elements in this descriptor."; + "List of relations between elements in this descriptor. + The relations are used to integrate pairs of execution environments, + that are in charge of the configuration and lifecycle management + of VDUs, VNFs, KDUs, or NSs. + Each relation is formed by a provider and a requirer. + The provider is the execution environment that provides a particular service. + The requirer is the execution environment that requires the service provided by the provider"; key "name"; leaf name { @@ -114,27 +190,15 @@ module common-augments { type string; } - - list entities { + container provider { description - "List of two elements to be related. - Elements to be related are identified by a pair (id, endpoint). - The relation will relate (id1, endpoint1) to (id2, endpoint2)."; - key "id"; - - leaf id { - description - "A string, reference to the element id in the descriptor. - It could be a vnfd-id or a vdu-id in a VNFD, - or a nsd-id or member-vnf-index in a NSD."; - type string; - } - - leaf endpoint { - description - "Endpoint name defining the relation."; - type string; - } + "Execution environment that offers an endpoint for a particular service"; + uses relations-ee; + } + container requirer { + description + "Execution environment that uses the service provided by the provider"; + uses relations-ee; } } } diff --git a/models/augments/day1-2.yang b/models/augments/day1-2.yang index cf3b841..a29a3bc 100644 --- a/models/augments/day1-2.yang +++ b/models/augments/day1-2.yang @@ -37,7 +37,7 @@ module day1-2 { type string; } uses common:vnfc-configuration; - uses common:vnfc-relations; + uses common:relations; uses common:vdu-config-access; leaf-list blacklist-config-primitive { diff --git a/models/augments/ns-configuration.yang b/models/augments/ns-configuration.yang index a4effd2..89df261 100644 --- a/models/augments/ns-configuration.yang +++ b/models/augments/ns-configuration.yang @@ -34,7 +34,7 @@ module ns-configuration { "Information about NS configuration."; uses common:vnfc-configuration; - uses common:vnfc-relations; + uses common:relations; } } -- 2.25.1