Files
openairinterface5g/radio/fhi_72/mplane/yang/models/o-ran-hardware.yang
T
Teodora 0ad393f28e Update yang models to the O-RAN.WG4.MP-YANGs-R004-v16.01
It is backwards compatible with the O-RAN.WG4.MP-YANGs-v04.00, previous supported version.
2025-10-30 17:22:40 +01:00

462 lines
14 KiB
YANG

module o-ran-hardware {
yang-version 1.1;
namespace "urn:o-ran:hardware:1.0";
prefix "o-ran-hw";
import ietf-hardware {
prefix hw;
}
import iana-hardware {
prefix ianahw;
}
import ietf-yang-types {
prefix yang;
}
import o-ran-wg4-features {
prefix or-feat;
}
organization "O-RAN Alliance";
contact
"www.o-ran.org";
description
"This module defines the YANG definitions for managing the O-RAN hardware.
Copyright 2024 the O-RAN Alliance.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the above disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the above disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the Members of the O-RAN Alliance nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.";
revision "2024-04-15" {
description
"version 15.0.0
1) Added support for new fan tray component.";
reference "ORAN-WG4.M.0-v15.00";
}
revision "2023-08-14" {
description
"version 13.0.0
1) New connector types for RS485 and external IO";
reference "ORAN-WG4.M.0-v13.00";
}
revision "2022-12-05" {
description
"version 10.1.0
1) Clarifications for Network Energy Saving";
reference "ORAN-WG4.M.0-v10.00";
}
revision "2022-08-15" {
description
"version 10.0.0
1) introduction of O-RU connector functionality.
2) fixing constraints";
reference "ORAN-WG4.M.0-v10.00";
}
revision "2021-12-01" {
description
"version 5.2.0
1) typographical corrections in descriptions.";
reference "ORAN-WG4.M.0-v05.00";
}
revision "2021-03-22" {
description
"version 5.1.0
1) typographical corrections in descriptions.";
reference "ORAN-WG4.M.0-v05.00";
}
revision "2020-12-10" {
description
"version 5.0.0
1) added date-last-service leaf used in pnfRegistration";
reference "ORAN-WG4.M.0-v05.00";
}
revision "2020-04-17" {
description
"version 3.0.0
1) added new leaf to indicate whether O-RU supports dying gasp
2) added new identities for PA and FPGA";
reference "ORAN-WG4.M.0-v03.00";
}
revision "2019-07-03" {
description
"version 1.1.0
1) added new identities to accommodate cross working group use of
o-ran-hardware and associated set of augmentations that are backwards
compatible to version 1.0.0";
reference "ORAN-WG4.M.0-v01.00";
}
revision "2019-02-04" {
description
"version 1.0.0
1) imported model from xRAN
2) changed namespace and reference from xran to o-ran";
reference "ORAN-WG4.M.0-v01.00";
}
feature ENERGYSAVING {
description
"Indicates that the Radio Unit supports energy saving state.";
}
// identity statements
identity O-RAN-RADIO {
base ianahw:module;
description
"Module used as it represents a self-contained sub-system
used in /hw:/hardware/hw:component/hw:class to represent
an O-RAN RU";
}
identity O-RAN-HW-COMPONENT {
base ianahw:module;
description
"Module used as it represents a self-contained sub-system
used in /hw:/hardware/hw:component/hw:class to represent
any O-RAN hardware component";
}
identity O-DU-COMPONENT {
base O-RAN-HW-COMPONENT;
description
"Used in /hw:/hardware/hw:component/hw:class to represent
any O-RAN defined O-DU hardware component";
}
identity O-RAN-FAN-TRAY {
base O-RAN-HW-COMPONENT;
description
"Used in /hw:/hardware/hw:component/hw:class to represent
any O-RAN defined fan tray hardware component.";
}
identity O-RU-COMPONENT {
base O-RAN-HW-COMPONENT;
description
"Used in /hw:/hardware/hw:component/hw:class to represent
any O-RAN defined O-RU hardware component, including a stand-alone
O-RU or an O-RU component integrated into a multi-module system.";
}
identity O-RU-POWER-AMPLIFIER {
base O-RU-COMPONENT;
description
"Used in /hw:/hardware/hw:component/hw:class to represent
an O-RU's power amplifier, and may be used for reporting
measurements on a per class basis";
}
identity O-RU-FPGA {
base O-RU-COMPONENT;
description
"Used in /hw:/hardware/hw:component/hw:class to represent
an FPGA in an O-RU, and may be used for reporting
measurements on a per class basis";
}
identity O-RU-CONNECTOR {
base ianahw:hardware-class;
description
"This identity is applicable if the hardware class is some sort
of O-RU connector.";
}
identity O-RU-ANTENNA-CONNECTOR {
base O-RU-CONNECTOR;
description
"This identity is applicable if the hardware class is some sort
of connector capable of interfacing between an O-RU and some
antenna function.";
}
identity O-RU-FEEDER {
base O-RU-ANTENNA-CONNECTOR;
description
"This identity is applicable if the hardware class is an
antenna feeder.";
}
identity O-RU-BF-CAL {
base O-RU-ANTENNA-CONNECTOR;
description
"This identity is applicable if the hardware class is for
beamforming calibration.";
}
identity O-RU-RS485 {
base O-RU-CONNECTOR;
description
"This identity is applicable if the hardware class is some sort
of connector capable of interfacing between an O-RU and Antenna
Line Devices using RS-485 electrical standard.";
}
identity O-RU-EXTIO {
base O-RU-CONNECTOR;
description
"This identity is applicable if the hardware class is some sort
of connector capable of interfacing between an O-RU external I/O lines.";
}
// typedef statements
typedef energysaving-state {
type enumeration {
enum UNKNOWN {
description
"The O-RU is unable to report its energy saving state.";
}
enum SLEEPING {
description
"The O-RU is in energy saving state. In this mode M-Plane connection is active. Depending
on the O-RU's design - other planes, functions and hardware components which are not needed
by the O-RU in energy saving state can be disabled or switched off by the O-RU autonomously.";
}
enum AWAKE {
description
"The O-RU is not in an energy saving state.";
}
}
description
"New typedef since ietf-hardware only covers power-state
for redundancy purposes, not to indicate energy saving operations.
For details please see O-RAN WG4 M-Plane specification, clause 9.1.3 'Modify state'";
}
typedef availability-type {
type enumeration {
enum UNKNOWN {
description "The Radio Unit is unable to report its availability state.";
}
enum NORMAL {
description
"The equipment is functioning correctly.";
}
enum DEGRADED {
description
"The equipment may be reporting a major alarm or may be reporting a critical
alarm that is only impacting one or more subcomponent, but where the
equipment's implementation permit it to continue operation (server traffic)
in a degraded state.
Used for example, when the equipment has M identical sub-components and
when a critical alarm is impacting only N subcomponents, where N<M.";
}
enum FAULTY {
description
"The (sub-)components impacted by the critical alarm(s) impact the
ability of the equipment to continue operation (serve traffic).";
}
}
description
"Equipment's availability-state is derived by matching active faults
and their impact to module's operation and enables an equipment to indicate
that even though it may have one or more critical alarms, it can continue
to serve traffic.";
}
// common WG4 and cross-WG augmentations using O-RAN-RADIO identity
augment "/hw:hardware/hw:component" {
when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
description "New O-RAN parameters for o-ran hardware";
container label-content {
config false;
description
"Which set of attributes are printed on the Radio Unit's label";
leaf model-name {
type boolean;
description
"indicates whether model-name is included on the equipment's label";
}
leaf serial-number {
type boolean;
description
"indicates whether serial number is included on the equipment's label";
}
}
leaf product-code {
type string;
config false;
mandatory true;
description
"O-RAN term that is distinct from model-name in ietf-hardware.";
}
leaf energy-saving-enabled {
if-feature "ENERGYSAVING";
type boolean;
default false;
description
"This parameter enables the O-RU to enter into energy saving state if there is no need to keep processing
paths working.
TRUE is used to permit the O-RU to enter energy saving state. If there is still need keep any
processing path, functions or HW components working.
The O-RU shall keep necessary processing paths working if there is any [tr]x-array-carrier with
'state' != DISABLED.
There may be also additional implementation-specific conditions which may require keeping processing paths,
functions or HW components working.
FALSE is used to prohibit the O-RU to enter or to stay in energy saving state. This value is also used
to awake the O-RU from sleeping when the O-RU is already in energy saving state. Setting this value has
no effect on [tr]x-array-carrier::active.
When the O-RU enters energy saving state, the O-RU shall reduce its power consumption to the lowest level
whilst M-plane remains available. Ongoing Netconf session(s) shall not be affected when the O-RU enters
energy saving state.
The O-RU uses RO node power-state to inform if the O-RU is in energy saving state.
NETCONF client should set energy-saving-enabled to FALSE to ensure O-RU is ready to immediately activate a
carrier.";
}
leaf dying-gasp-support {
type boolean;
default false;
config false;
description
"indicates whether the O-RU supports the dying gasp
capability";
}
leaf last-service-date {
if-feature "or-feat:NON-PERSISTENT-MPLANE";
type yang:date-and-time;
description
"Date of last service or repair of hardware component. How this gets
populated is a vendor specific issue.";
reference
"3GPP 32.692";
}
}
augment "/hw:hardware/hw:component" {
when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
(derived-from-or-self(hw:class, 'ianahw:port')) or
(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
description "New O-RAN parameters for o-ran naming";
leaf o-ran-name {
type leafref {
path "/hw:hardware/hw:component/hw:name";
}
must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
error-message "Name must match pattern and length.";
}
mandatory true;
description
"O-RAN name needed to bind and match with the name of hw element,
to be compliant with O-RAN naming convention.";
}
}
augment "/hw:hardware/hw:component/hw:state" {
when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
description
"new O-RAN defined state";
leaf power-state {
if-feature "ENERGYSAVING";
type energysaving-state;
config false;
description
"The current power saving state for this component.
Note - hw:/hardware/component/state/standby-state defined in RFC 4268 is
used for redundancy purposes but not for power saving operations.";
}
leaf availability-state {
type availability-type;
config false;
description
"Equipment's availability-state is derived by matching active faults
and their impact to module's operation and enables an equipment to indicate
that even though it may have one or more critical alarms, it can continue
to serve traffic.";
}
}
augment "/hw:hardware/hw:component" {
when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RU-ANTENNA-CONNECTOR'))";
description "New O-RAN parameters for O-RAN Antenna connectors";
leaf connector-label {
type string;
config false;
description
"the label used to identify the connector on an O-RU ";
}
}
// augmentations to Notifications
augment "/hw:hardware-state-oper-enabled" {
description "new availability state";
leaf availability-state {
if-feature hw:hardware-state;
type leafref {
path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
}
description
"The availability-state of the O-RU.";
}
}
augment "/hw:hardware-state-oper-disabled" {
description "new availability state";
leaf availability-state {
if-feature hw:hardware-state;
type leafref {
path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
}
description
"The availability-state of the O-RU.";
}
}
}