--- /dev/null
+module o-ran-sc-topology-common {
+ yang-version 1.1;
+ namespace "urn:o-ran-sc:yang:o-ran-sc-topology-common:1.0";
+ prefix osctc;
+
+ import ietf-interfaces {
+ prefix if;
+ }
+
+ organization
+ "O-RAN Software Community";
+ contact
+ "www.o-ran.org";
+ description
+ "This module contains YANG definitions for the O-RAN Topology augmentation
+ of TAPI Topology used as network model.
+
+ 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-02-05 {
+ description
+ "Initial revision";
+ reference
+ "O-RAN-SC: https://jira.o-ran-sc.org/browse/OAM-248
+ O-RAN.WG1.O-RAN-Architecture-Description
+ Chapter: 1.3.1 Definitions";
+ }
+
+ // O-RAN functional identity types
+
+ identity function-type {
+ description
+ "Base identity as abstract function type for by O-RAN Alliance and others
+ entities.
+ An unique identification of a (network) function.
+
+ This identity is abstract and MUST NOT be used for alarms.";
+
+ reference
+ "O-RAN.WG1.O-RAN-Architecture-Description
+ Chapter: 1.3.1 Definitions
+ https://jira.o-ran-sc.org/browse/OAM-248";
+ }
+
+ identity smo {
+ base function-type;
+ description
+ "An identity corresponding to an
+ O-RAN Service Management and Orchestration Function (SMO).";
+ }
+
+ identity non-rt-ric {
+ base function-type;
+ description
+ "An identity corresponding to an
+ O-RAN Service Management and Orchestration SMO component corresponding to
+ a Non-real-time RAN Intelligent Controller Function (Near-RT-RIC).";
+ }
+
+ identity oam-controller {
+ base function-type;
+ description
+ "An identity corresponding to an
+ O-RAN Service Management and Orchestration SMO component corresponding to
+ an Operation and Maintenance Controller Controller Function
+ (OAM Controller).";
+ }
+
+ identity ves-collector {
+ base function-type;
+ description
+ "An identity corresponding to an
+ O-RAN Service Management and Orchestration SMO component corresponding to
+ an (Virtual) Event Streaming Collector Function
+ (VES Collector).";
+ }
+
+ identity message-router {
+ base function-type;
+ description
+ "An identity corresponding to an
+ O-RAN Service Management and Orchestration SMO component corresponding to
+ Message Router Function (MR).";
+ }
+
+ identity transport-node {
+ base function-type;
+ description
+ "An identity corresponding to a Transport Node Function
+ (such as Transponders, Muxponders, ROADM, Wavelength Selected Switch,
+ Optical Amplifier, Optical Terminal, Optical Repeater, Optical Filter,
+ Optical Multiplexer, Microwave Terminal, Carrier Ethernet Routers, ... .";
+ }
+
+ identity fronthaul-gateway {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Fronthaul Gateway Function.";
+ }
+
+ identity fronthaul-multiplexer {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Fronthaul Multiplexer Function.";
+ }
+
+ 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).";
+ }
+
+ identity managed-application {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Managed Application Function (MA),
+ also called 'xApp'.";
+ }
+
+ identity o-cu {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Central Unit Functions.";
+ }
+
+ identity o-cu-up {
+ base o-cu-function-type;
+ description
+ "An identity corresponding to an O-RAN Central Unit User Plane Function.";
+ }
+
+ identity o-cu-cp {
+ base o-cu-function-type;
+ description
+ "An identity corresponding to an O-RAN Central Unit Control Plane
+ Function.";
+ }
+
+ identity o-du {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Distributed Unit Function.";
+ }
+
+ identity o-ru {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN Radio Unit Function.";
+ }
+
+ identity o-enb {
+ base function-type;
+ description
+ "An identity corresponding to an O-RAN E-UTRAN Node B Function.
+ E-UTRAN: evolved UMTS Terrestrial Radio Access";
+ }
+
+ identity user-equipment {
+ base function-type;
+ description
+ "An identity corresponding to an User Equipment Function.";
+ }
+
+ identity o-cloud-ims {
+ base function-type;
+ description
+ "An identity corresponding to an Infrastructure Management Service
+ Function (IMS).";
+ }
+
+ identity o-cloud-dms {
+ base function-type;
+ description
+ "An identity corresponding to a
+ Deployment Management Service Function (DMS).";
+ }
+
+ // O-RAN interface types
+
+ identity interface-type {
+ base if:interface-type
+ description
+ "Base identity for interface types used in RAN, Transport and Core.
+ A unique identification of the management interface.
+ This identity is abstract and MUST NOT be used as a value.";
+ }
+
+ identity a1 {
+ base interface-type;
+ description
+ "An identity for the a1 interface between Non-RT-RIC and Near-RT-RIC.";
+ }
+
+ identity e1 {
+ base interface-type;
+ description
+ "An identity for the e1 interface defined by 3GPP.";
+ }
+
+ identity e2 {
+ base interface-type;
+ description
+ "An identity for the e2 interface as defined by O-RAN Alliance.";
+ }
+
+ identity o1 {
+ base interface-type;
+ description
+ "An identity for the operation and maintenance management interface
+ for network functions as defined by the O-RAN-Alliance as extension
+ to 3GPP NG NRM.";
+ }
+
+ identity o2 {
+ base interface-type;
+ description
+ "An identity for the operation and maintenance management interface
+ for a cloud infrastructure service and a could deployment service
+ (O-Cloud).";
+ }
+
+ identity open-fronthaul-management-plane {
+ base interface-type;
+ description
+ "An identity for the operation and maintenance management interface for
+ O-RU functions.";
+ }
+
+ identity transport-management-interface {
+ base interface-type;
+ description
+ "An identity for a yang based management interface for transport nodes.";
+ }
+}
--- /dev/null
+module o-ran-sc-topology {
+ yang-version 1.1;
+ namespace "urn:o-ran-sc:yang:o-ran-sc-topology:1.0";
+ prefix osct;
+
+ import tapi-common {
+ prefix tapi-common;
+ }
+ import tapi-topology {
+ prefix tapi-topology;
+ }
+ import o-ran-sc-topology-common {
+ prefix osctc;
+ }
+
+ organization
+ "O-RAN Software Community";
+ contact
+ "www.o-ran.org";
+ description
+ "This module contains YANG definitions for the O-RAN Topology augmentation
+ of TAPI Topology.
+
+ 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-02-05 {
+ description
+ "Initial revision";
+ reference
+ "O-RAN-SC: https://jira.o-ran-sc.org/browse/OAM-248";
+ }
+
+ typedef geographic-coordinate-degree {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "Decimal degree (DD) used to express latitude and longitude
+ geographic coordinates.
+ Copied from ietf-te-topology@2020-08-06.yang";
+ }
+
+ // geographic-coordinate-degree
+
+ grouping geolocation-container {
+ description
+ "Contains a GPS location.
+ Copied from ietf-te-topology@2020-08-06.yang";
+ container geolocation {
+ description
+ "Contains a GPS location.";
+ leaf altitude {
+ type int64;
+ units "millimeters";
+ description
+ "Distance above sea level.";
+ }
+ leaf latitude {
+ type geographic-coordinate-degree {
+ range "-90..90";
+ }
+ description
+ "Relative position north or south on the Earth's surface.";
+ }
+ leaf longitude {
+ type geographic-coordinate-degree {
+ range "-180..180";
+ }
+ description
+ "Angular distance east or west on the Earth's surface.";
+ }
+ }
+ // geolocation
+ }
+
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node" {
+ description
+ "Augments the TAPI Topology node Context with geolocation information.";
+ uses geolocation-container;
+ }
+
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node" {
+ description
+ "Augments the TAPI Topology node Context with the (network) function type";
+ leaf function {
+ type identityref {
+ base osctc:function-type ;
+ }
+ description
+ "The type of the (Network) Function.";
+ }
+ }
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
+ description
+ "Augments the TAPI Topology Owned Node Edge Points with the (network) function type";
+ leaf function {
+ type identityref {
+ base osctc:interface-type ;
+ }
+ description
+ "The type of the Node Edge Point interface type.";
+ }
+ }
+}