Update YANG models for topology service. 27/8527/1
authorAlex Stancu <alexandru.stancu@highstreet-technologies.com>
Thu, 9 Jun 2022 09:00:12 +0000 (12:00 +0300)
committerAlex Stancu <alexandru.stancu@highstreet-technologies.com>
Thu, 9 Jun 2022 09:00:32 +0000 (12:00 +0300)
Issue-ID: SIM-94
Change-Id: I19ec419742d21e083f763509318b2f71e93a6c8c
Signed-off-by: Alex Stancu <alexandru.stancu@highstreet-technologies.com>
ntsimulator/deploy/blank/container-tag.yaml
ntsimulator/deploy/nts-manager/container-tag.yaml
ntsimulator/deploy/o-ran-du/container-tag.yaml
ntsimulator/deploy/o-ran-ru-fh/container-tag.yaml
ntsimulator/deploy/o-ran/container-tag.yaml
ntsimulator/deploy/smo-nts-ng-topology-server/container-tag.yaml
ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-additional-information.yang [new file with mode: 0644]
ntsimulator/deploy/smo-nts-ng-topology-server/yang/o-ran-sc-topology-common.yang
ntsimulator/deploy/x-ran/container-tag.yaml

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 (file)
index 0000000..7936d59
--- /dev/null
@@ -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.";
+  }
+}
index 931257e..fd1cfcf 100644 (file)
@@ -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";
+  }
 }