1 module xran-interfaces {
3 namespace "urn:xran:interfaces:1.0";
7 import ietf-inet-types {
15 import ietf-interfaces {
23 import ietf-hardware {
27 import ietf-yang-types {
31 organization "xRAN Forum";
37 "This module defines the YANG definitions for managng the xRAN Radio Unit
40 Copyright 2018 the xRAN Forum.
42 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
43 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
46 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
47 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
48 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
49 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
50 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
51 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
52 POSSIBILITY OF SUCH DAMAGE.
54 Redistribution and use in source and binary forms, with or without
55 modification, are permitted provided that the following conditions are met:
57 * Redistributions of source code must retain the above copyright notice,
58 this list of conditions and the above disclaimer.
59 * Redistributions in binary form must reproduce the above copyright notice,
60 this list of conditions and the above disclaimer in the documentation
61 and/or other materials provided with the distribution.
62 * Neither the Members of the xRAN Forum nor the names of its
63 contributors may be used to endorse or promote products derived from
64 this software without specific prior written permission.";
66 revision "2018-07-20" {
68 "version 1.0.0 - First release of the xRAN YANG M-Plane models.
70 This version of the model supports v01.00 of the corrsponding xRAN
71 M-Plane Specification.";
72 reference "XRAN-FH.MP.0-v01.00";
75 identity XRAN-INTERFACE-TYPE {
76 base if:interface-type;
78 "This identity is used as a base for all interface types
82 identity ALIASMAC-INTERFACE {
83 base XRAN-INTERFACE-TYPE;
85 "Identity type for alias MAC based CU plane interface,
86 whwere multiple MAC addresses are used on the same Ethernet interface. ";
89 identity ETH-INTERFACE {
90 base XRAN-INTERFACE-TYPE;
92 "identity type for ethernet plus vlan based CU plane interface. ";
95 identity UDPIP-INTERFACE {
96 base XRAN-INTERFACE-TYPE;
98 "identity type for UDP/IP based CU plane interface. ";
101 feature UDPIP-BASED-CU-PLANE {
103 "This feature indicates that the RU supports the UDP/IP based transport
107 feature ALIASMAC-BASED-CU-PLANE {
109 "This feature indicates that the RU supports the alias MAC address
110 based transport for the CU plane.";
119 "Priority Code Point. PCP is a 3-bit field that refers to the
120 class of service applied to a VLAN tagged frame. The
121 field specifies a priority value between 0 and 7, these values
122 can be used by quality of service (QoS) to prioritize
123 different classes of traffic.";
125 "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks";
128 grouping cos-marking {
130 "Configuration data for CU Plane ethernet CoS marking";
131 leaf u-plane-marking {
134 description "7 represents highest priority for u-plane marking";
136 leaf c-plane-marking {
139 description "7 represents highest priority for c-plane marking";
141 leaf m-plane-marking {
144 description "2 represents highest excellent effort for m-plane marking";
146 leaf s-plane-marking {
149 description "7 represents highest priority for s-plane marking";
154 description "1 represents best effort for other marking";
158 grouping xran-dscp-marking {
160 "Configuration data for CU Plane DSCP CoS marking";
161 leaf u-plane-marking {
164 description "46 represents expedited forwarding";
166 leaf c-plane-marking {
169 description "46 represents expedited forwarding";
171 leaf m-plane-marking {
174 description "18 represents AF21 or 'immediate traffic'";
176 leaf s-plane-marking {
179 description "46 represents expedited forwarding";
184 description "0 represents best effort forwarding";
189 augment '/if:interfaces/if:interface' {
190 when "derived-from-or-self(if:type, 'xran-int:XRAN-INTERFACE-TYPE')";
192 "Applicable for xran interfaces which use references to a port
195 container port-reference {
197 "a port reference used by other xRAN modules";
198 leaf xran-port-name {
200 path '/hw:hardware/hw:component/hw:name';
203 "xRAN interfaces use a reference to a physical port component";
205 leaf xran-port-number {
208 "A number allocated by the server which identifies a port.
209 Port number value is 0 to N-1 where N is number of ports
212 This value is fixed for the lifetime of the RU, i.e., cannot be
213 changed suring RU reboots.";
217 type yang:date-and-time;
220 "Timestamp of the last time the interface counters were
225 // Augmentation for lower layer definition
227 augment '/if:interfaces/if:interface' {
228 when "derived-from-or-self(if:type, 'xran-int:XRAN-INTERFACE-TYPE') and
229 not(if:lower-layer-if)" {
231 "Data specific for an xRAN bottom level interface, i.e.,
232 use relative path to check the current interface does not have any
233 lower-layer-if defined";
236 "Augments interfaces/interface with xRAN information .";
237 container physical-int {
238 description "container for physical interface";
245 description "2.5GbE";
263 description "100GbE";
267 description "maximum speed of physical interface";
272 description "twisted pair";
275 description "fiber optic";
279 description "type of cable";
284 // Augmentation for basic Ethernet leafs
286 augment "/if:interfaces/if:interface" {
287 when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or
288 derived-from-or-self(if:type, 'ianaift:l2vlan')" {
289 description "Applies to Ethernet interfaces";
292 "Augment the interface model with parameters for all
293 Ethernet-like interfaces
295 Contains parameters for interfaces that use Ethernet framing
296 and expose an Ethernet MAC layer";
304 "The maximum size of layer 2 frames that may be transmitted
305 or received on the interface (excluding any FCS overhead).
306 For Ethernet interfaces it also excludes the
307 4-8 byte overhead of any known (i.e. explicitly matched by
308 a child sub-interface) 801.1Q VLAN tags.";
311 type yang:mac-address;
313 "The MAC address of the interface.";
315 leaf bia-mac-address {
316 type yang:mac-address;
319 "The 'burnt-in' MAC address. I.e the default MAC address
320 assigned to the interface if no MAC address has been
321 explicitly configured on it.";
323 leaf-list alias-macs {
324 when "derived-from-or-self(../if:type, 'xran-int:ALIASMAC-INTERFACE')";
325 if-feature ALIASMAC-BASED-CU-PLANE;
326 type yang:mac-address;
329 "Augments interfaces with range of alias MAC addresses.";
335 "Indicates if VLAN tagging is used.
336 Default true is used to enable an RU to auonomously discover that it is
337 connected to a trunk port.";
342 // augmentation for VLAN definition
344 augment "/if:interfaces/if:interface" {
345 when "derived-from-or-self (if:type, 'ianaift:l2vlan')";
346 description "augments for VLAN definition";
347 leaf base-interface {
348 type if:interface-ref;
349 must "/if:interfaces/if:interface[if:name = current()]"
350 + "/xran-int:vlan-tagging = 'true'" {
352 "The base interface must have VLAN tagging enabled.";
355 "The base interface for the VLAN sub-interafce.";
366 // Augmention to ietf-ip covering DSCP
368 augment "/if:interfaces/if:interface/ip:ipv4" {
369 when "derived-from-or-self(../if:type, 'xran-int:UDPIP-INTERFACE')";
370 if-feature UDPIP-BASED-CU-PLANE;
371 description "augments for IPv4 based transport";
372 uses xran-dscp-marking;
374 augment "/if:interfaces/if:interface/ip:ipv6" {
375 when "derived-from-or-self(../if:type, 'xran-int:UDPIP-INTERFACE')";
376 if-feature UDPIP-BASED-CU-PLANE;
377 description "augments for IPv6 based transport";
378 uses xran-dscp-marking;
381 rpc reset-interface-counters {
383 "Management plane triggered restart of the interface counters.";