1 module o-ran-processing-element {
3 namespace "urn:o-ran:processing-element:1.0";
4 prefix "o-ran-elements";
6 import ietf-yang-types {
10 import ietf-inet-types {
14 import ietf-interfaces {
22 import o-ran-interfaces {
26 organization "O-RAN Alliance";
32 "This module defines the YANG definitions for mapping of transport flows to
33 processing elements. Three options are supported:
34 i) virtual MAC based mapping
35 ii) MAC addrress + VLAN-ID based mapping
36 iii) UDP/IP based mapping
38 Copyright 2019 the O-RAN Alliance.
40 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
41 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
44 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
45 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
46 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
47 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50 POSSIBILITY OF SUCH DAMAGE.
52 Redistribution and use in source and binary forms, with or without
53 modification, are permitted provided that the following conditions are met:
55 * Redistributions of source code must retain the above copyright notice,
56 this list of conditions and the above disclaimer.
57 * Redistributions in binary form must reproduce the above copyright notice,
58 this list of conditions and the above disclaimer in the documentation
59 and/or other materials provided with the distribution.
60 * Neither the Members of the O-RAN Alliance nor the names of its
61 contributors may be used to endorse or promote products derived from
62 this software without specific prior written permission.";
64 revision "2019-07-03" {
68 1) added new leaf to enable O-RU to report the maximum number of
69 transport flows it can support, e.g., due to restrictions on number
70 of VLAN-IDs when ethernet type transport is used.";
72 reference "ORAN-WG4.M.0-v01.00";
74 revision "2019-02-04" {
78 1) imported model from xRAN
79 2) changed namespace and reference from xran to o-ran";
81 reference "ORAN-WG4.M.0-v01.00";
87 leaf maximum-number-of-transport-flows {
94 "The maximum number of transport flows that can be supported by an O-RU";
96 leaf transport-session-type {
99 description "VLAN based CUS Transport ";
101 enum UDPIP-INTERFACE {
102 description "UDP/IP based CUS Transport ";
104 enum ALIASMAC-INTERFACE{
105 description "Alias MAC address based CUS Transport ";
108 default ETH-INTERFACE;
110 "the type of transport session used for identifying different processing
113 container enhanced-uplane-mapping {
114 presence "indicates that enhanced uplane mapping is used";
115 description "a mapping table for enhanced user plane marking";
116 list uplane-mapping {
117 key "up-marking-name";
119 "a mapping between up-link name and o-ran-interfaces:up-marking-name";
120 leaf up-marking-name {
122 description "a unique up marking name that is used for enhanced up marking";
128 when "(../../transport-session-type = 'ALIASMAC-INTERFACE') or
129 (../../transport-session-type = 'ETH-INTERFACE')";
132 path "/if:interfaces/if:interface/o-ran-int:class-of-service/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
134 description "the Ethernet U-plane transport marking as defined in o-ran-interfaces";
138 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
139 leaf upv4-dscp-name {
141 path "/if:interfaces/if:interface/ip:ipv4/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
143 description "the IPv4 U-plane transport marking as defined in o-ran-interfaces";
147 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
148 leaf upv6-dscp-name {
150 path "/if:interfaces/if:interface/ip:ipv6/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
152 description "the IPv6 U-plane transport marking as defined in o-ran-interfaces";
161 "the list of transport definitions for each processing element";
167 "A name that is unique across the O-RU that identifies a processing
170 This name may be used in fault management to refer to a fault source
173 container transport-flow {
175 "container for the transport-flow used for CU plane";
176 leaf interface-name {
178 path "/if:interfaces/if:interface/if:name";
180 description "the interface name ";
182 container aliasmac-flow {
183 when "../../../transport-session-type = 'ALIASMAC-INTERFACE'";
184 if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE;
185 description "leafs for virtual mac type data flows";
186 leaf ru-aliasmac-address {
188 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:alias-macs";
192 "O-RU's alias MAC address used for alias MAC based flow";
196 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
199 "O-RU's VLAN-ID used for alias MAC based flow";
201 leaf o-du-mac-address {
202 type yang:mac-address;
205 "O-DU's MAC address used for alias MAC based flow";
209 when "../../../transport-session-type = 'ETH-INTERFACE'";
210 description "leafs for mac + vlan-id type data flows";
211 leaf ru-mac-address {
213 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address";
217 "O-RU's MAC address used for Ethernet based flow";
221 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
225 "O-RU's VLAN-ID used for Ethernet based flow";
227 leaf o-du-mac-address {
228 type yang:mac-address;
231 "O-DU's MAC address used for Ethernet based flow";
234 container udpip-flow {
235 when "../../../transport-session-type = 'UDPIP-INTERFACE'";
236 description "leafs for UDP/IP type data flows";
238 leaf ru-ipv4-address {
240 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip";
242 description "O-RU's IPv4 address";
244 leaf ru-ipv6-address {
246 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip";
248 description "O-RU's IPv6 address";
251 description "choice of O-RU IPv4 or IPv6 address";
253 leaf o-du-ip-address {
254 type inet:ip-address;
256 description "O-DU's IPv address";
258 leaf ru-ephemeral-udp-port {
259 type inet:port-number;
262 "ephemeral port used by O-RU";
264 leaf o-du-ephemeral-udp-port {
265 type inet:port-number;
268 "ephemeral port used by O-DU";
270 leaf ecpri-destination-udp {
271 type inet:port-number;
273 description "the well known UDP port number used by eCPRI";
274 // fixme - add in a default when allocated by IANA
281 // top level container
283 container processing-elements {
285 "a model defining the mapping between transport flows and arbitrary
286 O-RAN processing elements. A processing element may be then defined for
287 handling connectivity or delay procedures, or defined with a corresponding
288 eaxcid for CU plane operations";