Equipment

../_images/equipment.svg ../_images/equipment-relationships.svg
module o-ran-smo-teiv-equipment {
    yang-version 1.1;
    namespace "urn:o-ran:smo-teiv-equipment";
    prefix or-teiv-equip;

    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }

    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }

    import ietf-geo-location {
        prefix geo;
        reference "RFC 9179: A YANG Grouping for Geographic Locations";
    }

    organization "ORAN";
    contact "The Authors";
    description
    "RAN Equipment topology model.

    This model contains the topology entities and relations in the
    RAN Equipment domain, which is modelled to understand the physical
    location of equipment such as antennas associated with a cell/carrier
    and their relevant properties e.g. tilt, max power etc.

    Copyright (C) 2024 Ericsson
    Modifications Copyright (C) 2024 OpenInfra Foundation Europe

    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.

    SPDX-License-Identifier: Apache-2.0";

    revision "2024-05-02" {
        description "Initial revision.";
        or-teiv-yext:label 0.3.0;
    }

    or-teiv-yext:domain EQUIPMENT;

    list AntennaModule {
        description "An Antenna Module represents the
                    physical aspect of an antenna.";

        uses or-teiv-types:Top_Grp_Type;
        key id;

        container attributes {
            leaf fdn {
                description "This Full Distinguished Name (FDN) identifies
                            an instance of the AntennaSubUnit MO. It contains
                            the full path from the Subnetwork to the
                            AntennaSubUnit.";
                type or-teiv-types:_3GPP_FDN_Type;
            }

            leaf antennaModelNumber {
                description "Vendor-specific antenna model
                            identifier. This attribute is part of
                            AISG v3 ADB Standard and has
                            no operational impact.";
                type string;
            }

            leaf mechanicalAntennaBearing {
                description "Antenna bearing on antenna subunit
                            where antenna unit is installed.";
                type uint32;
            }

            leaf mechanicalAntennaTilt {
                description "The fixed antenna tilt of the installation,
                            defined as the inclination of the antenna
                            element respect to the vertical plane.
                            It is a signed value. Positive indicates
                            downtilt, and negative indicates uptilt.";
                type uint32;
            }

            leaf positionWithinSector {
                description "Antenna unit position within sector.
                            This attribute is part of AISG v3 ADB
                            Standard and has no operational impact.";
                type string;
            }

            leaf totalTilt {
                description "Total antenna elevation including the
                            installed tilt and the tilt applied by
                            the Remote Electrical Tilt (RET).";
                type uint32;
            }

            leaf electricalAntennaTilt {
                description "Electrically-controlled tilt of main beam maximum
                            with respect to direction orthogonal to antenna
                            element axis (see 3GPP TS 25.466). Value is signed;
                            tilt down is positive, tilt up is negative.";
                type uint32;
            }

            leaf-list antennaBeamWidth {
                description "The angular span of the main lobe of the antenna radiation
                              pattern in the horizontal plane. Measured in degrees.";
                type uint32;
            }

            uses geo:geo-location;

            container cmId {
                uses or-teiv-types:CM_ID;
            }
        }
    }

    list Site {
        description "A site is a physical location where an Antenna or
                    Physical NF can be installed.";

        uses or-teiv-types:Top_Grp_Type;
        key id;

        container attributes {
            leaf name {
                description "Name of Site";
                type string;
            }

            uses geo:geo-location;

            container cmId {
                uses or-teiv-types:CM_ID;
            }
        }
    }

    list PhysicalNF {
        description "Represents a Physical NF,
                    which is used to realise Network Functions.";

        uses or-teiv-types:Top_Grp_Type;
        key id;

        container attributes {
            leaf name {
                description "Name of Physical NF.";
                type string;
            }

            leaf type {
                description "Type of Physical NF.";
                type string;
            }

            uses geo:geo-location;

            container cmId {
                uses or-teiv-types:CM_ID;
            }
        }
    }

    or-teiv-yext:biDirectionalTopologyRelationship ANTENNAMODULE_INSTALLED_AT_SITE { // 0..n to 0..1

        uses or-teiv-types:Top_Grp_Type;
        key id;

        leaf installed-at-site {
            description "Antenna Module installed at Site.";
            or-teiv-yext:aSide AntennaModule;
            type instance-identifier;
        }

        leaf-list installed-antennaModule {
            description "Site where Antenna Module is installed.";
            or-teiv-yext:bSide Site;
            type instance-identifier;
        }
    }

    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_INSTALLED_AT_SITE { // 1..n to 0..1

        uses or-teiv-types:Top_Grp_Type;
        key id;

        leaf installed-at-site {
            description "Physical NF installed at Site.";
            or-teiv-yext:aSide PhysicalNF;
            type instance-identifier;
        }

        leaf-list installed-physicalNF {
            description "Site where Physical NF is installed.";
            or-teiv-yext:bSide Site;
            type instance-identifier;
            min-elements 1;
        }
    }
}