1 module o-ran-hardware {
3 namespace "urn:o-ran:hardware:1.0";
12 import ietf-yang-types {
15 import o-ran-wg4-features {
19 organization "O-RAN Alliance";
25 "This module defines the YANG definitions for managng the O-RAN hardware.
27 Copyright 2020 the O-RAN Alliance.
29 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
30 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
33 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
34 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
35 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
36 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39 POSSIBILITY OF SUCH DAMAGE.
41 Redistribution and use in source and binary forms, with or without
42 modification, are permitted provided that the following conditions are met:
44 * Redistributions of source code must retain the above copyright notice,
45 this list of conditions and the above disclaimer.
46 * Redistributions in binary form must reproduce the above copyright notice,
47 this list of conditions and the above disclaimer in the documentation
48 and/or other materials provided with the distribution.
49 * Neither the Members of the O-RAN Alliance nor the names of its
50 contributors may be used to endorse or promote products derived from
51 this software without specific prior written permission.";
53 revision "2020-12-10" {
57 1) added date-last-service leaf used in pnfRegistration";
59 reference "ORAN-WG4.O1.0-v05.00";
63 revision "2020-04-17" {
67 1) added new leaf to indicate whether O-RU supports dying gasp
68 2) added new identities for PA and FPGA";
70 reference "ORAN-WG4.M.0-v03.00";
73 revision "2019-07-03" {
77 1) added new identities to accommodate cross working group use of
78 o-ran-hardware and assoicated set of augmentations that are backwards
79 compatible to version 1.0.0";
81 reference "ORAN-WG4.M.0-v01.00";
84 revision "2019-02-04" {
88 1) imported model from xRAN
89 2) changed namespace and reference from xran to o-ran";
91 reference "ORAN-WG4.M.0-v01.00";
94 feature ENERGYSAVING {
96 "Indicates that the Radio Unit supports energy saving state.";
99 // identity statements
100 identity O-RAN-RADIO {
103 "Module used as it represents a self-contained sub-system
104 used in /hw:/hardware/hw:component/hw:class to represent
108 identity O-RAN-HW-COMPONENT {
111 "Module used as it represents a self-contained sub-system
112 used in /hw:/hardware/hw:component/hw:class to represent
113 any O-RAN hardware component";
116 identity O-DU-COMPONENT {
117 base O-RAN-HW-COMPONENT;
119 "Used in /hw:/hardware/hw:component/hw:class to represent
120 any O-RAN defined O-DU hardware component";
123 identity O-RU-COMPONENT {
124 base O-RAN-HW-COMPONENT;
126 "Used in /hw:/hardware/hw:component/hw:class to represent
127 any O-RAN defined O-RU hardware component, including a stand-alone
128 O-RU or an O-RU component integrated into a multi-module system.";
131 identity O-RU-POWER-AMPLIFIER {
134 "Used in /hw:/hardware/hw:component/hw:class to represent
135 an O-RU's power amplifier, and may be used for reporting
136 measurements on a per class basis";
142 "Used in /hw:/hardware/hw:component/hw:class to represent
143 an FPGA in an O-RU, and may be used for reporting
144 measurements on a per class basis";
147 // typedef statements
148 typedef energysaving-state {
151 description "The Radio Unit is unable to report energy saving state.";
155 "The Radio Unit is in a sleep state. The NETCONF management plane
156 connection is functioning. Other functions and hardware which are
157 not needed for management plane may be in energy saving mode.";
161 "The Radio Unit is not in an energy saving state.";
165 "new typedef since ietf-hardware only covers pwer-state
166 for redundancy purposes and not power saving operations.";
169 typedef availability-type {
172 description "The Radio Unit is unable to report its availability state.";
176 "The equipment is functioning correctly.";
180 "The equipment may be reporting a major alarm or may be reporting a critical
181 alarm that is only impacting one or more subcomponent, but where the
182 equipment's implementation permit it to continue operation (server traffic)
185 Used for example, when the equipment has M identical sub-components and
186 when a critical alarm is imapcting only N subcomponents, where N<M.";
190 "The (sub-)components impacted by the critical alarm(s) impact the
191 ability of the equipment to continue operation (serve traffic).";
195 "Equipment's availability-state is derived by matching active faults
196 and their impact to module's operation and enables an equipment to indicate
197 that even though it may have one or more critical alarms, it can continue
201 // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
203 augment "/hw:hardware/hw:component" {
204 when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
205 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
206 description "New O-RAN parameters for o-ran hardware";
208 container label-content {
211 "Which set of attributes are printed on the Radio Unit's label";
215 "indicates whether model-name is included on the equipment's label";
220 "indicates whether serial number is included on the equipment's label";
228 "O-RAN term that is distinct from model-name in ietf-hardware.";
230 leaf energy-saving-enabled {
231 if-feature "ENERGYSAVING";
236 "This parameter can enable O-RAN unit to be switched to energy
238 TRUE indicates to switch the energy saving mode.
239 FALSE indicates to cancel the energy saving mode.
240 At the energy saving mode, all power of whole O-RAN unit becomes
241 lowest level whereas M-plane is still available";
243 leaf dying-gasp-support {
248 "indicates whether the O-RU supports the dying gasp
251 leaf last-service-date {
252 if-feature "or-feat:NON-PERSISTENT-MPLANE";
253 type yang:date-and-time;
255 "Date of last service or repair of hardware component. How this gets
256 populated is a vendor specific issue.";
262 augment "/hw:hardware/hw:component" {
263 when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
264 (derived-from-or-self(hw:class, 'ianahw:port')) or
265 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
266 description "New O-RAN parameters for o-ran naming";
269 path "/hw:hardware/hw:component/hw:name";
271 must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
272 error-message "Name must match pattern and length.";
276 "O-RAN name needed to bind and match with the name of hw element,
277 to be compliant with O-RAN naming convention.";
281 augment "/hw:hardware/hw:component/hw:state" {
282 when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
283 (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
285 "new O-RAN defined state";
287 if-feature "ENERGYSAVING";
288 type energysaving-state;
291 "The current power saving state for this component.
292 Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
293 used for redundancy purposes and not power saving operations.";
295 leaf availability-state {
296 type availability-type;
299 "Equipment's availability-state is derived by matching active faults
300 and their impact to module's operation and enables an equipment to indicate
301 that even though it may have one or more critical alarms, it can continue
307 // augmentations to Notifications
309 augment "/hw:hardware-state-oper-enabled" {
310 description "new availability state";
311 leaf availability-state {
313 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
316 "The availability-state of the O-RU.";
320 augment "/hw:hardware-state-oper-disabled" {
321 description "new availability state";
322 leaf availability-state {
324 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
327 "The availability-state of the O-RU.";