From: Alex Stancu Date: Thu, 9 Jun 2022 09:00:12 +0000 (+0300) Subject: Update YANG models for topology service. X-Git-Tag: 1.5.0~1 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=sim%2Fo1-interface.git;a=commitdiff_plain;h=43192799ac9751f44564da8cdb1814951050a5f5 Update YANG models for topology service. Issue-ID: SIM-94 Change-Id: I19ec419742d21e083f763509318b2f71e93a6c8c Signed-off-by: Alex Stancu --- diff --git a/ntsimulator/deploy/blank/container-tag.yaml b/ntsimulator/deploy/blank/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/blank/container-tag.yaml +++ b/ntsimulator/deploy/blank/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/nts-manager/container-tag.yaml b/ntsimulator/deploy/nts-manager/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/nts-manager/container-tag.yaml +++ b/ntsimulator/deploy/nts-manager/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/o-ran-du/container-tag.yaml b/ntsimulator/deploy/o-ran-du/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/o-ran-du/container-tag.yaml +++ b/ntsimulator/deploy/o-ran-du/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/o-ran-ru-fh/container-tag.yaml b/ntsimulator/deploy/o-ran-ru-fh/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/o-ran-ru-fh/container-tag.yaml +++ b/ntsimulator/deploy/o-ran-ru-fh/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/o-ran/container-tag.yaml b/ntsimulator/deploy/o-ran/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/o-ran/container-tag.yaml +++ b/ntsimulator/deploy/o-ran/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/smo-nts-ng-topology-server/container-tag.yaml b/ntsimulator/deploy/smo-nts-ng-topology-server/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/smo-nts-ng-topology-server/container-tag.yaml +++ b/ntsimulator/deploy/smo-nts-ng-topology-server/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0 diff --git a/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-additional-information.yang b/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-additional-information.yang new file mode 100644 index 0000000..7936d59 --- /dev/null +++ b/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-additional-information.yang @@ -0,0 +1,210 @@ +module o-ran-sc-topology-additional-information { + yang-version 1.1; + namespace "urn:o-ran-sc:yang:o-ran-sc-topology-additional-information:1.0"; + prefix osctai; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types."; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module contains YANG definitions for the O-RAN Topology and its + additional information exposed northbound of the Service Management and + Orchestration framework (SMO). + By intention this yang model has no strict dependencies to other yang + modules defining data structures. The dependencies are only to type + definitions. + In order to extend existing data tree the identifier of the data are + used. For example values of uuids or values of yang:instance-identifier are + used as references to the extended data tree. + + Copyright 2022 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2022-05-20 { + description + "Initial revision"; + reference + "O-RAN-SC: https://jira.o-ran-sc.org/browse/OAM-248"; + } + + /* Type Definitions */ + + typedef resource { + type union { + type instance-identifier { + require-instance false; + } + type yang:uuid; + type string; + } + description + "This is an identification of the referenced resource, such as an + interface or a network function. It should be as fine-grained as + possible to both guide the operator and guarantee uniqueness of the + additional information. + + If the extended resource is modeled in YANG, this type should + be an instance-identifier. + + If the extended object is identified by a Universally Unique + Identifier (UUID), use the uuid type. + + If the resource is anything else, for example, a distinguished + name or a Common Information Model (CIM) path, this type will + be a string. + + If the server supports several models, the precedence should + be in the order as given in the union definition."; + reference + "This type definition is inspired by + RFC 8632: A YANG Data Model for Alarm Management + type definition 'resource'"; + } + + /* Type definitions */ + + typedef label { + type string { + length "1..255"; + } + description + "A human readable string."; + } + + typedef slice-differentiator { + type string { + pattern '([0-9a-fA-F]{2}){3}'; + } + default "FFFFFF"; + description + "The slice-differentiator type represents an 3GPP TS 23.003 slice + differentiator. The canonical representation uses lowercase + characters."; + reference + "3GPP TS 28.003 V17.5.0 clause 28.4.2"; + } + + typedef tracking-area-code { + type string { + pattern '([0-9a-fA-F]{2}){3}'; + } + description + "The tracking-area-code type represents an 3GPP TS 38.413 tracking + area code. The canonical representation uses lowercase characters."; + reference + "3GPP TS 38.413 V17.0.0 clause 9.3.3.10"; + } + + /* Groupings (object classes) */ + + grouping area-label { + leaf tracking-area-code { + type tracking-area-code; + description + "An 3-octet string identifying a tracking area."; + } + leaf label { + type label; + mandatory true; + description + "A human readable label of the tracking area."; + } + description + "A mapping table for tracking-area-codes to human readable labels."; + } + + grouping slice-label { + leaf slice-differentiator { + type slice-differentiator; + description + "An 3-octet string identifying a slice."; + } + leaf label { + type label; + mandatory true; + description + "A human readable label of the slice."; + } + description + "A mapping table for slice-differentiator to human readable labels."; + } + + grouping node { + leaf resource { + type resource; + description + "A reference to an object instance. "; + } + leaf name { + type string; + description + "An human readable identifier of the resource."; + } + leaf tracking-area-code { + type tracking-area-code; + description + "An 3-octet string identifying a tracking area."; + } + leaf slice-differentiator { + type slice-differentiator; + description + "An 3-octet string identifying a network slice."; + } + leaf-list tag { + type label; + description + "A list of short group identifiers for grouping of resources on runtime, + even the group identifiers are unknown during compile time."; + } + description + "An abstract object class with additional information of a resource. + The extended resource object instance is referenced by the 'resource' + attribute."; + } + + /* Data tree */ + + container additional-information { + list node { + key "resource"; + uses node; + description + "A list for additional information where each row is identified by a + reference to the extended object instance."; + } + list area-label { + key "tracking-area-code"; + uses area-label; + description + "A list for additional information where each row is identified by a + tracking area code."; + } + list slice-label { + key "slice-differentiator"; + uses slice-label; + description + "A list for additional information where each row is identified by a + slice differentiator."; + } + description + "The root container of this module."; + } +} diff --git a/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-common.yang b/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-common.yang index 931257e..fd1cfcf 100644 --- a/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-common.yang +++ b/ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-common.yang @@ -6,7 +6,6 @@ module o-ran-sc-topology-common { import ietf-interfaces { prefix if; } - import tapi-common { prefix tapi-common; } @@ -33,6 +32,18 @@ module o-ran-sc-topology-common { See the License for the specific language governing permissions and limitations under the License."; + revision 2022-05-26 { + description + "SCTP protocol added for E2 interfaces"; + reference + "O-RAN-SC: https://jira.o-ran-sc.org/browse/OAM-269"; + } + revision 2022-03-06 { + description + "Initial revision"; + reference + "O-RAN-SC: https://jira.o-ran-sc.org/browse/OAM-255"; + } revision 2022-02-05 { description "Initial revision"; @@ -125,11 +136,23 @@ module o-ran-sc-topology-common { "An identity corresponding to an O-RAN Fronthaul Multiplexer Function."; } + identity access-and-mobility-management-function { + base function-type; + description + "An identity corresponding to a 3GPP 5G-Core Access and mobility Management Function (AMF)."; + } + + identity user-plane-function { + base function-type; + description + "An identity corresponding to a3GPP 5G-Core User Plane Function (UPF)."; + } + identity near-rt-ric { base function-type; description "An identity corresponding to an O-RAN Near real-time RAN intelligent - controller Function (NEar-RT-RIC)."; + controller Function (Near-RT-RIC)."; } identity managed-application { @@ -225,6 +248,30 @@ module o-ran-sc-topology-common { "An identity for the e2 interface as defined by O-RAN Alliance."; } + identity n1 { + base interface-type; + description + "An identity for the n1 interface as defined by 3GPP."; + reference + "3GPP TS 23.501 System architecture for the 5G System (5GS)"; + } + + identity n2 { + base interface-type; + description + "An identity for the n1 interface as defined by 3GPP."; + reference + "3GPP TS 23.501 System architecture for the 5G System (5GS)"; + } + + identity n3 { + base interface-type; + description + "An identity for the n1 interface as defined by 3GPP."; + reference + "3GPP TS 23.501 System architecture for the 5G System (5GS)"; + } + identity o1 { base interface-type; description @@ -255,13 +302,14 @@ module o-ran-sc-topology-common { } // O-RAN-SC LAYER_PROTOCOL_QUALIFIER + identity LAYER_PROTOCOL_QUALIFIER { base tapi-common:LAYER_PROTOCOL_QUALIFIER; description "Base identity for layer protocol qualifiers used in RAN, Transport and Core. - A unique identification of layer protocol qualifiers. - Typically the layer protocol qualifier is used to identify the interface - protocol, like VES or NETCONF. + A unique identification of layer protocol qualifiers. + Typically the layer protocol qualifier is used to identify the interface + protocol, like VES or NETCONF. This identity is abstract and MUST NOT be used as a value."; } @@ -270,7 +318,7 @@ module o-ran-sc-topology-common { description "An identity for an unknown qualifier."; } - + identity file { base LAYER_PROTOCOL_QUALIFIER; description @@ -283,12 +331,26 @@ module o-ran-sc-topology-common { "An identity for an generic remote procedure call (gRPC) protocol qualifier."; } + identity nas { + base LAYER_PROTOCOL_QUALIFIER; + description + "An identity for a Non-access stratum protocol qualifier."; + reference + "3GPP TS 24.301\tNon-Access-Stratum (NAS) protocol for Evolved Packet System (EPS); Stage 3"; + } + identity netconf { base LAYER_PROTOCOL_QUALIFIER; description "An identity for a NETCONF protocol qualifier."; } + identity radio { + base LAYER_PROTOCOL_QUALIFIER; + description + "An identity for a Radio protocol qualifier."; + } + identity rest { base LAYER_PROTOCOL_QUALIFIER; description @@ -313,4 +375,13 @@ module o-ran-sc-topology-common { "An identity for an O-RAN Fronthaul based protocol qualifier."; } + identity sctp { + base LAYER_PROTOCOL_QUALIFIER; + description + "An identity for an Stream Control Transmission Protocol (SCTP) based + protocol qualifier."; + reference + "RFC 8261, + RFC 4960"; + } } diff --git a/ntsimulator/deploy/x-ran/container-tag.yaml b/ntsimulator/deploy/x-ran/container-tag.yaml index ceda5b3..b6527e1 100644 --- a/ntsimulator/deploy/x-ran/container-tag.yaml +++ b/ntsimulator/deploy/x-ran/container-tag.yaml @@ -1,2 +1,2 @@ --- -tag: 1.4.5 \ No newline at end of file +tag: 1.5.0