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 2019 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 "2019-07-03" {
51 1) added new identities to accommodate cross working group use of
52 o-ran-hardware and assoicated set of augmentations that are backwards
53 compatible to version 1.0.0";
55 reference "ORAN-WG4.M.0-v01.00";
58 revision "2019-02-04" {
62 1) imported model from xRAN
63 2) changed namespace and reference from xran to o-ran";
65 reference "ORAN-WG4.M.0-v01.00";
68 feature ENERGYSAVING {
70 "Indicates that the Radio Unit supports energy saving state.";
73 // identity statements
74 identity O-RAN-RADIO {
77 "Module used as it represents a self-contained sub-system
78 used in /hw:/hardware/hw:component/hw:class to represent
82 identity O-RAN-HW-COMPONENT {
85 "Module used as it represents a self-contained sub-system
86 used in /hw:/hardware/hw:component/hw:class to represent
87 any O-RAN hardware component";
90 identity O-DU-COMPONENT {
91 base O-RAN-HW-COMPONENT;
93 "Used in /hw:/hardware/hw:component/hw:class to represent
94 any O-RAN defined O-DU hardware component";
97 identity O-RU-COMPONENT {
98 base O-RAN-HW-COMPONENT;
100 "Used in /hw:/hardware/hw:component/hw:class to represent
101 any O-RAN defined O-RU hardware component, including a stand-alone
102 O-RU or an O-RU component integrated into a multi-module system.";
105 // typedef statements
106 typedef energysaving-state {
109 description "The Radio Unit is unable to report energy saving state.";
113 "The Radio Unit is in a sleep state. The NETCONF management plane
114 connection is functioning. Other functions and hardware which are
115 not needed for management plane may be in energy saving mode.";
119 "The Radio Unit is not in an energy saving state.";
123 "new typedef since ietf-hardware only covers pwer-state
124 for redundancy purposes and not power saving operations.";
127 typedef availability-type {
130 description "The Radio Unit is unable to report its availability state.";
134 "The equipment is functioning correctly.";
138 "The equipment may be reporting a major alarm or may be reporting a critical
139 alarm that is only impacting one or more subcomponent, but where the
140 equipment's implementation permit it to continue operation (server traffic)
143 Used for example, when the equipment has M identical sub-components and
144 when a critical alarm is imapcting only N subcomponents, where N<M.";
148 "The (sub-)components impacted by the critical alarm(s) impact the
149 ability of the equipment to continue operation (serve traffic).";
153 "Equipment's availability-state is derived by matching active faults
154 and their impact to module's operation and enables an equipment to indicate
155 that even though it may have one or more critical alarms, it can continue
159 // common WG4 and croos-WG augmentations using O-RAN-RADIO identity
161 augment "/hw:hardware/hw:component" {
162 when "(derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-RADIO')) or
163 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
164 description "New O-RAN parameters for o-ran hardware";
166 container label-content {
169 "Which set of attributes are printed on the Radio Unit's label";
173 "indicates whether model-name is included on the equipment's label";
178 "indicates whether serial number is included on the equipment's label";
186 "O-RAN term that is distinct from model-name in ietf-hardware.";
188 leaf energy-saving-enabled {
189 if-feature "ENERGYSAVING";
194 "This parameter can enable O-RAN unit to be switched to energy
196 TRUE indicates to switch the energy saving mode.
197 FALSE indicates to cancel the energy saving mode.
198 At the energy saving mode, all power of whole O-RAN unit becomes
199 lowest level whereas M-plane is still available";
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, 'ianahw:port')) or
206 (derived-from-or-self(hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
207 description "New O-RAN parameters for o-ran naming";
210 path "/hw:hardware/hw:component/hw:name";
212 must "re-match(current(),'[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{0,253}[a-zA-Z0-9]')" {
213 error-message "Name must match pattern and length.";
217 "O-RAN name needed to bind and match with the name of hw element,
218 to be compliant with O-RAN naming convention.";
222 augment "/hw:hardware/hw:component/hw:state" {
223 when "(derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-RADIO')) or
224 (derived-from-or-self(../hw:class, 'o-ran-hw:O-RAN-HW-COMPONENT'))";
226 "new O-RAN defined state";
228 if-feature "ENERGYSAVING";
229 type energysaving-state;
232 "The current power saving state for this component.
233 Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
234 used for redundancy purposes and not power saving operations.";
236 leaf availability-state {
237 type availability-type;
240 "Equipment's availability-state is derived by matching active faults
241 and their impact to module's operation and enables an equipment to indicate
242 that even though it may have one or more critical alarms, it can continue
248 // augmentations to Notifications
250 augment "/hw:hardware-state-oper-enabled" {
251 description "new availability state";
252 leaf availability-state {
254 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
257 "The availability-state of the O-RU.";
261 augment "/hw:hardware-state-oper-disabled" {
262 description "new availability state";
263 leaf availability-state {
265 path "/hw:hardware/hw:component/hw:state/o-ran-hw:availability-state";
268 "The availability-state of the O-RU.";