1 module o-ran-hardware {
3 namespace "urn:o-ran:hardware:1.0";
13 organization "O-RAN Alliance";
19 "This module defines the YANG definitions for managng the O-RAN hardware.
21 Copyright 2020 the O-RAN Alliance.
23 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
24 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 POSSIBILITY OF SUCH DAMAGE.
35 Redistribution and use in source and binary forms, with or without
36 modification, are permitted provided that the following conditions are met:
38 * Redistributions of source code must retain the above copyright notice,
39 this list of conditions and the above disclaimer.
40 * Redistributions in binary form must reproduce the above copyright notice,
41 this list of conditions and the above disclaimer in the documentation
42 and/or other materials provided with the distribution.
43 * Neither the Members of the O-RAN Alliance nor the names of its
44 contributors may be used to endorse or promote products derived from
45 this software without specific prior written permission.";
47 revision "2020-04-17" {
51 1) added new leaf to indicate whether O-RU supports dying gasp
52 2) added new identities for PA and FPGA";
54 reference "ORAN-WG4.M.0-v03.00";
57 revision "2019-07-03" {
61 1) added new identities to accommodate cross working group use of
62 o-ran-hardware and assoicated set of augmentations that are backwards
63 compatible to version 1.0.0";
65 reference "ORAN-WG4.M.0-v01.00";
68 revision "2019-02-04" {
72 1) imported model from xRAN
73 2) changed namespace and reference from xran to o-ran";
75 reference "ORAN-WG4.M.0-v01.00";
78 feature ENERGYSAVING {
80 "Indicates that the Radio Unit supports energy saving state.";
83 // identity statements
84 identity O-RAN-RADIO {
87 "Module used as it represents a self-contained sub-system
88 used in /hw:/hardware/hw:component/hw:class to represent
92 identity O-RAN-HW-COMPONENT {
95 "Module used as it represents a self-contained sub-system
96 used in /hw:/hardware/hw:component/hw:class to represent
97 any O-RAN hardware component";
100 identity O-DU-COMPONENT {
101 base O-RAN-HW-COMPONENT;
103 "Used in /hw:/hardware/hw:component/hw:class to represent
104 any O-RAN defined O-DU hardware component";
107 identity O-RU-COMPONENT {
108 base O-RAN-HW-COMPONENT;
110 "Used in /hw:/hardware/hw:component/hw:class to represent
111 any O-RAN defined O-RU hardware component, including a stand-alone
112 O-RU or an O-RU component integrated into a multi-module system.";
115 identity O-RU-POWER-AMPLIFIER {
118 "Used in /hw:/hardware/hw:component/hw:class to represent
119 an O-RU's power amplifier, and may be used for reporting
120 measurements on a per class basis";
126 "Used in /hw:/hardware/hw:component/hw:class to represent
127 an FPGA in an O-RU, and may be used for reporting
128 measurements on a per class basis";
131 // typedef statements
132 typedef energysaving-state {
135 description "The Radio Unit is unable to report energy saving state.";
139 "The Radio Unit is in a sleep state. The NETCONF management plane
140 connection is functioning. Other functions and hardware which are
141 not needed for management plane may be in energy saving mode.";
145 "The Radio Unit is not in an energy saving state.";
149 "new typedef since ietf-hardware only covers pwer-state
150 for redundancy purposes and not power saving operations.";
153 typedef availability-type {
156 description "The Radio Unit is unable to report its availability state.";
160 "The equipment is functioning correctly.";
164 "The equipment may be reporting a major alarm or may be reporting a critical
165 alarm that is only impacting one or more subcomponent, but where the
166 equipment's implementation permit it to continue operation (server traffic)
169 Used for example, when the equipment has M identical sub-components and
170 when a critical alarm is imapcting only N subcomponents, where N<M.";
174 "The (sub-)components impacted by the critical alarm(s) impact the
175 ability of the equipment to continue operation (serve traffic).";
179 "Equipment's availability-state is derived by matching active faults
180 and their impact to module's operation and enables an equipment to indicate
181 that even though it may have one or more critical alarms, it can continue
185 // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
187 augment "/hw:hardware/hw:component" {
188 when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
189 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
190 description "New O-RAN parameters for o-ran hardware";
192 container label-content {
195 "Which set of attributes are printed on the Radio Unit's label";
199 "indicates whether model-name is included on the equipment's label";
204 "indicates whether serial number is included on the equipment's label";
212 "O-RAN term that is distinct from model-name in ietf-hardware.";
214 leaf energy-saving-enabled {
215 if-feature "ENERGYSAVING";
220 "This parameter can enable O-RAN unit to be switched to energy
222 TRUE indicates to switch the energy saving mode.
223 FALSE indicates to cancel the energy saving mode.
224 At the energy saving mode, all power of whole O-RAN unit becomes
225 lowest level whereas M-plane is still available";
227 leaf dying-gasp-support {
232 "indicates whether the O-RU supports the dying gasp
238 augment "/hw:hardware/hw:component" {
239 when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
240 (derived-from-or-self(hw:class, 'ianahw:port')) or
241 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
242 description "New O-RAN parameters for o-ran naming";
245 path "/hw:hardware/hw:component/hw:name";
247 must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
248 error-message "Name must match pattern and length.";
252 "O-RAN name needed to bind and match with the name of hw element,
253 to be compliant with O-RAN naming convention.";
257 augment "/hw:hardware/hw:component/hw:state" {
258 when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
259 (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
261 "new O-RAN defined state";
263 if-feature "ENERGYSAVING";
264 type energysaving-state;
267 "The current power saving state for this component.
268 Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
269 used for redundancy purposes and not power saving operations.";
271 leaf availability-state {
272 type availability-type;
275 "Equipment's availability-state is derived by matching active faults
276 and their impact to module's operation and enables an equipment to indicate
277 that even though it may have one or more critical alarms, it can continue
283 // augmentations to Notifications
285 augment "/hw:hardware-state-oper-enabled" {
286 description "new availability state";
287 leaf availability-state {
289 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
292 "The availability-state of the O-RU.";
296 augment "/hw:hardware-state-oper-disabled" {
297 description "new availability state";
298 leaf availability-state {
300 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
303 "The availability-state of the O-RU.";