1 module o-ran-interfaces {
3 namespace "urn:o-ran:interfaces:1.0";
7 import ietf-inet-types {
15 import ietf-interfaces {
23 import ietf-hardware {
27 import ietf-yang-types {
31 import iana-hardware {
35 organization "O-RAN Alliance";
41 "This module defines the YANG definitions for managing the O-RAN
44 Copyright 2021 the O-RAN Alliance.
46 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
47 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
48 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
49 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
50 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
51 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
52 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
53 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
54 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
55 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
56 POSSIBILITY OF SUCH DAMAGE.
58 Redistribution and use in source and binary forms, with or without
59 modification, are permitted provided that the following conditions are met:
61 * Redistributions of source code must retain the above copyright notice,
62 this list of conditions and the above disclaimer.
63 * Redistributions in binary form must reproduce the above copyright notice,
64 this list of conditions and the above disclaimer in the documentation
65 and/or other materials provided with the distribution.
66 * Neither the Members of the O-RAN Alliance nor the names of its
67 contributors may be used to endorse or promote products derived from
68 this software without specific prior written permission.";
70 revision "2021-12-01" {
74 1) typographical corrections in descriptions.";
76 reference "ORAN-WG4.M.0-v05.00";
79 revision "2021-03-22" {
83 1) typographical corrections in descriptions.";
85 reference "ORAN-WG4.M.0-v05.00";
88 revision "2020-12-10" {
92 1) new functionality to describe over subscribed resources";
94 reference "ORAN-WG4.M.0-v05.00";
97 revision "2020-04-17" {
101 1) updated descriptions to clarify operation when vlan-tagging is false";
103 reference "ORAN-WG4.M.0-v03.00";
105 revision "2019-07-03" {
109 1) increasing max elements for user plane DSCP markings to 64
110 2) re-organizing layout to facilitate cross-WG adoption, whilst ensuring
111 nodes are syntactically and semantically equivalent";
113 reference "ORAN-WG4.M.0-v01.00";
116 revision "2019-02-04" {
120 1) imported model from xRAN
121 2) changed namespace and reference from xran to o-ran";
123 reference "ORAN-WG4.M.0-v01.00";
126 feature UDPIP-BASED-CU-PLANE {
128 "This feature indicates that the RU supports the UDP/IP based transport
132 feature ALIASMAC-BASED-CU-PLANE {
134 "This feature indicates that the RU supports the alias MAC address
135 based transport for the CU plane.";
143 "Priority Code Point. PCP is a 3-bit field that refers to the
144 class of service applied to a VLAN tagged frame. The
145 field specifies a priority value between 0 and 7, these values
146 can be used by quality of service (QoS) to prioritize
147 different classes of traffic.";
149 "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
152 grouping cos-marking {
154 "Configuration data for CU Plane ethernet CoS marking.
155 This grouping is only applicable to an interface when vlan-tagging is
156 set to TRUE for that interface. In other cases, it may be ignored.";
157 container class-of-service {
160 leaf u-plane-marking {
164 "Marking used for default u-plane flows.
165 7 represents highest priority for u-plane marking";
167 leaf c-plane-marking {
170 description "7 represents highest priority for c-plane marking";
172 leaf m-plane-marking {
175 description "2 represents highest excellent effort for m-plane marking";
177 leaf s-plane-marking {
180 description "7 represents highest priority for s-plane marking";
185 description "1 represents best effort for other marking";
187 list enhanced-uplane-markings{
188 key "up-marking-name";
191 "list of mappings for enhanced (non-default) u-plane markings";
192 leaf up-marking-name {
194 description "The name of the marking";
196 leaf enhanced-marking {
198 description "the enhanced u-plane marking";
204 grouping dscp-marking {
206 "Configuration data for CU Plane DSCP marking";
207 container diffserv-markings {
209 "DSCP Configuration";
210 leaf u-plane-marking {
214 "Marking used for default u-plane flows.
215 46 represents expedited forwarding";
217 leaf c-plane-marking {
220 description "46 represents expedited forwarding";
222 leaf s-plane-marking {
225 description "46 represents expedited forwarding";
230 description "0 represents best effort forwarding";
232 list enhanced-uplane-markings{
236 "list of mappings for enhanced (non-default) u-plane markings";
237 leaf up-marking-name {
239 description "The name of the marking";
241 leaf enhanced-marking {
243 description "the enhanced u-plane marking";
249 rpc reset-interface-counters {
251 "Management plane triggered restart of the interface counters.";
254 // Cross Working Group Augmentations Follow
256 // Cross Working Group augmentations for basic Ethernet leafs
258 augment "/if:interfaces/if:interface" {
259 when "if:type = 'ianaift:ethernetCsmacd'" {
260 description "Applies to Ethernet interfaces";
263 "Augment the interface model with parameters for
264 base Ethernet interface";
273 "The maximum size of layer 2 frames that may be transmitted
274 or received on the interface (excluding any FCS overhead).
275 For Ethernet interfaces it also excludes the
276 4-8 byte overhead of any known (i.e. explicitly matched by
277 a child sub-interface) 801.1Q VLAN tags.";
283 "Indicates if VLAN tagging is used.
284 Default true is used to enable equipment to autonomously discover that
285 it is connected to a trunk port.
287 This may be set to false, for example, when the O-RU is directly
288 connected to the O-DU. In such cases, native Ethernet frames may be
289 used across the O-RAN interface, i.e., any PCP markings defined
290 in the cos-markings grouping are NOT used by the O-RU and any default
291 value or configured value using those leafs may be ignored by the O-RAN
296 // interface-grouping insert - begin;
298 leaf-list interface-groups-id {
300 path "/if:interfaces/o-ran-int:interface-grouping/o-ran-int:interfaces-groups/o-ran-int:interface-group-id";
304 "an optional leaf used when the sustained rate able to be supported by an interface
305 is less than nominal bit rate indicated by o-ran-transceiver.yang
307 Identifies interface grouping particular physical hardware MAC address belongs to.";
310 // interface-grouping insert - end;
314 // Cross Working Group augmentation for l2vlan interfaces for VLAN definition
316 augment "/if:interfaces/if:interface" {
317 when "if:type = 'ianaift:l2vlan'";
318 description "augments for VLAN definition";
319 leaf base-interface {
320 type if:interface-ref;
321 must "/if:interfaces/if:interface[if:name = current()]"
322 + "/o-ran-int:vlan-tagging = 'true'" {
324 "The base interface must have VLAN tagging enabled.";
327 "The base interface for the VLAN sub-interface.";
338 // Cross Working Group augmentation for both ethernetCsmacd and l2vlan interfaces
340 augment "/if:interfaces/if:interface" {
341 when "(if:type = 'ianaift:ethernetCsmacd') or
342 (if:type = 'ianaift:l2vlan')" {
343 description "Applies to ethernetCsmacd and l2vlan interfaces";
346 "Augment the interface model with parameters for all
347 both ethernetCsmacd and l2vlan interfaces.";
349 type yang:date-and-time;
352 "Timestamp of the last time the interface counters were
357 // Cross Working Group augmentation to ietf-ip covering DSCP for M-Plane
359 augment "/if:interfaces/if:interface/ip:ipv4" {
360 description "augments for IPv4 based M-Plane transport";
361 leaf m-plane-marking {
364 description "18 represents AF21 or 'immediate traffic'";
367 augment "/if:interfaces/if:interface/ip:ipv6" {
368 description "augments for IPv6 based M-Plane transport";
369 leaf m-plane-marking {
372 description "18 represents AF21 or 'immediate traffic'";
376 // WG4 Specific Augmentations Follow
378 // WG4 Augmentation for basic Ethernet leafs
380 augment "/if:interfaces/if:interface" {
381 when "if:type = 'ianaift:ethernetCsmacd'" {
383 "Applies to WG4 Ethernet interfaces for alias MAC based CU-Plane";
385 if-feature ALIASMAC-BASED-CU-PLANE;
387 "Augment the interface model with parameters for
388 base Ethernet interface";
390 leaf-list alias-macs {
391 type yang:mac-address;
394 "Augments interfaces with range of alias MAC addresses.";
399 // WG4 Augmentation for both ethernetCsmacd and l2vlan interfaces
401 augment "/if:interfaces/if:interface" {
402 when "(if:type = 'ianaift:ethernetCsmacd') or
403 (if:type = 'ianaift:l2vlan')" {
404 description "Applies to ethernetCsmacd and l2vlan interfaces";
407 "Augment the interface model with parameters for all
408 both ethernetCsmacd and l2vlan interfaces.";
410 type yang:mac-address;
413 "The MAC address of the interface.";
416 container port-reference {
418 "a port reference used by other O-RAN modules";
421 path '/hw:hardware/hw:component/hw:name';
423 must "derived-from-or-self(deref(current())/../hw:class, 'ianahw:port')";
424 // TAKE NOTE - depending on version of pyang, this may generate various
425 // warnings, e.g., warning: XPath for "port-name" does not exist
427 "O-RAN interfaces use a reference to a physical port component.
429 In this case, the component name referenced must be of class type
430 port, i.e., when /hw:hardware/hw:component/hw:class is derived from
436 "A number allocated by the server which identifies a port.
437 Port number value is 0 to N-1 where N is number of ports
440 This value is fixed for the lifetime of the equipment, i.e., cannot be
441 changed during equipment reboots.";
446 // WG4 specific augmentation to ietf-ip covering DSCP for CUS Plane
448 augment "/if:interfaces/if:interface/ip:ipv4" {
449 if-feature UDPIP-BASED-CU-PLANE;
450 description "augments for IPv4 based CUS transport";
453 augment "/if:interfaces/if:interface/ip:ipv6" {
454 if-feature UDPIP-BASED-CU-PLANE;
455 description "augments for IPv6 based CUS transport";
459 // Other Working Group Specific Augmentations Follow Here
461 // interface-grouping insert - begin;
463 augment "/if:interfaces" {
464 description "augments interfaces for groupings of physical hardware addresses that can be used to group Ethernet ports";
466 container interface-grouping {
469 "indicates maximum sustained throughput of an O-RU is less than the combined bandwidth of all physical ports";
474 "A container used by an O-RU where the maximum sustained throughput
475 of an O-RU is less than the combined bandwidth of all physical ports";
477 list interfaces-groups {
478 key interface-group-id;
479 description "List of interface groups.";
481 leaf interface-group-id {
483 description "interface group identifier.";
486 leaf max-sustainable-ingress-bandwidth {
490 "Maximum sustainable ingress bandwidth the interface group can handle. The sustainable bandwidth is calculated
491 over one radio frame.
493 The peak ingress bandwidth may exceed the sustainable bandwidth for periods shorter than a radio frame period.";
496 leaf max-sustainable-egress-bandwidth {
500 "Maximum sustainable egress bandwidth the interface group can handle. The sustainable bandwidth is calculated
501 over one radio frame.";
506 // interface-grouping insert - end;