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 2020 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 "2020-04-17" {
68 1) added new enum SHARED-CELL-ETH-INTERFACE in
69 transport-session-type and new containers north-eth-flow and
70 south-eth-flow to enable Shared cell scenario.";
72 reference "ORAN-WG4.M.0-v03.00";
75 revision "2019-07-03" {
79 1) added new leaf to enable O-RU to report the maximum number of
80 transport flows it can support, e.g., due to restrictions on number
81 of VLAN-IDs when ethernet type transport is used.";
83 reference "ORAN-WG4.M.0-v01.00";
85 revision "2019-02-04" {
89 1) imported model from xRAN
90 2) changed namespace and reference from xran to o-ran";
92 reference "ORAN-WG4.M.0-v01.00";
97 "Presence of feature indicates that this O-RU is capable to support
103 leaf maximum-number-of-transport-flows {
110 "The maximum number of transport flows that can be supported by an O-RU";
112 leaf transport-session-type {
115 description "VLAN based CUS Transport ";
117 enum UDPIP-INTERFACE {
118 description "UDP/IP based CUS Transport ";
120 enum ALIASMAC-INTERFACE{
121 description "Alias MAC address based CUS Transport ";
123 enum SHARED-CELL-ETH-INTERFACE {
124 if-feature "SHARED_CELL";
125 description "VLAN based CUS Transport used for Shared Cell scenario";
128 default ETH-INTERFACE;
130 "the type of transport session used for identifying different processing
133 container enhanced-uplane-mapping {
134 presence "indicates that enhanced uplane mapping is used";
135 description "a mapping table for enhanced user plane marking";
136 list uplane-mapping {
137 key "up-marking-name";
139 "a mapping between up-link name and o-ran-interfaces:up-marking-name";
140 leaf up-marking-name {
142 description "a unique up marking name that is used for enhanced up marking";
148 when "(../../transport-session-type = 'ALIASMAC-INTERFACE') or
149 (../../transport-session-type = 'ETH-INTERFACE') or
150 (../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE')";
153 path "/if:interfaces/if:interface/o-ran-int:class-of-service/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
155 description "the Ethernet U-plane transport marking as defined in o-ran-interfaces";
159 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
160 leaf upv4-dscp-name {
162 path "/if:interfaces/if:interface/ip:ipv4/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
164 description "the IPv4 U-plane transport marking as defined in o-ran-interfaces";
168 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
169 leaf upv6-dscp-name {
171 path "/if:interfaces/if:interface/ip:ipv6/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
173 description "the IPv6 U-plane transport marking as defined in o-ran-interfaces";
182 "the list of transport definitions for each processing element";
188 "A name that is unique across the O-RU that identifies a processing
191 This name may be used in fault management to refer to a fault source
194 container transport-flow {
196 "container for the transport-flow used for CU plane";
197 leaf interface-name {
199 path "/if:interfaces/if:interface/if:name";
201 description "the interface name ";
203 container aliasmac-flow {
204 when "../../../transport-session-type = 'ALIASMAC-INTERFACE'";
205 if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE;
206 description "leafs for virtual mac type data flows";
207 leaf ru-aliasmac-address {
209 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:alias-macs";
213 "O-RU's alias MAC address used for alias MAC based flow";
217 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
220 "O-RU's VLAN-ID used for alias MAC based flow";
222 leaf o-du-mac-address {
223 type yang:mac-address;
226 "O-DU's MAC address used for alias MAC based flow";
230 when "../../../transport-session-type = 'ETH-INTERFACE'";
231 description "leafs for mac + vlan-id type data flows";
232 leaf ru-mac-address {
234 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address";
238 "O-RU's MAC address used for Ethernet based flow";
242 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
246 "O-RU's VLAN-ID used for Ethernet based flow";
248 leaf o-du-mac-address {
249 type yang:mac-address;
252 "O-DU's MAC address used for Ethernet based flow";
255 container udpip-flow {
256 when "../../../transport-session-type = 'UDPIP-INTERFACE'";
257 description "leafs for UDP/IP type data flows";
259 leaf ru-ipv4-address {
261 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip";
263 description "O-RU's IPv4 address";
265 leaf ru-ipv6-address {
267 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip";
269 description "O-RU's IPv6 address";
272 description "choice of O-RU IPv4 or IPv6 address";
274 leaf o-du-ip-address {
275 type inet:ip-address;
277 description "O-DU's IPv address";
279 leaf ru-ephemeral-udp-port {
280 type inet:port-number;
283 "ephemeral port used by O-RU";
285 leaf o-du-ephemeral-udp-port {
286 type inet:port-number;
289 "ephemeral port used by O-DU";
291 leaf ecpri-destination-udp {
292 type inet:port-number;
294 description "the well known UDP port number used by eCPRI";
295 // fixme - add in a default when allocated by IANA
298 container north-eth-flow {
299 when "../../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE'";
300 if-feature "SHARED_CELL";
301 description "leafs for mac + vlan-id type data flows";
302 leaf ru-mac-address {
304 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address";
307 "O-RU's MAC address used for Ethernet based flow";
311 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
314 "O-RU's VLAN-ID used for Ethernet based flow";
316 leaf north-node-mac-address {
317 type yang:mac-address;
319 "North-node's MAC address used for Ethernet based flow";
322 container south-eth-flow {
323 when "../../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE'";
324 if-feature "SHARED_CELL";
325 description "leafs for mac + vlan-id type data flows";
326 leaf ru-mac-address {
328 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address";
331 "O-RU's MAC address used for Ethernet based flow";
335 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
338 "O-RU's VLAN-ID used for Ethernet based flow";
340 leaf south-node-mac-address {
341 type yang:mac-address;
343 "south-node's MAC address used for Ethernet based flow";
350 // top level container
352 container processing-elements {
354 "a model defining the mapping between transport flows and arbitrary
355 O-RAN processing elements. A processing element may be then defined for
356 handling connectivity or delay procedures, or defined with a corresponding
357 eaxcid for CU plane operations";