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-02-04" {
68 1) imported model from xRAN
69 2) changed namespace and reference from xran to o-ran";
71 reference "ORAN-WG4.M.0-v01.00";
77 leaf transport-session-type {
80 description "VLAN based CUS Transport ";
82 enum UDPIP-INTERFACE {
83 description "UDP/IP based CUS Transport ";
85 enum ALIASMAC-INTERFACE{
86 description "Alias MAC address based CUS Transport ";
89 default ETH-INTERFACE;
91 "the type of transport session used for identifying different processing
94 container enhanced-uplane-mapping {
95 presence "indicates that enhanced uplane mapping is used";
96 description "a mapping table for enhanced user plane marking";
98 key "up-marking-name";
100 "a mapping between up-link name and o-ran-interfaces:up-marking-name";
101 leaf up-marking-name {
103 description "a unique up marking name that is used for enhanced up marking";
109 when "(../../transport-session-type = 'ALIASMAC-INTERFACE') or
110 (../../transport-session-type = 'ETH-INTERFACE')";
113 path "/if:interfaces/if:interface/o-ran-int:class-of-service/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
115 description "the Ethernet U-plane transport marking as defined in o-ran-interfaces";
119 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
120 leaf upv4-dscp-name {
122 path "/if:interfaces/if:interface/ip:ipv4/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
124 description "the IPv4 U-plane transport marking as defined in o-ran-interfaces";
128 when "(../../transport-session-type = 'UDPIP-INTERFACE')";
129 leaf upv6-dscp-name {
131 path "/if:interfaces/if:interface/ip:ipv6/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name";
133 description "the IPv6 U-plane transport marking as defined in o-ran-interfaces";
142 "the list of transport definitions for each processing element";
148 "A name that is unique across the O-RU that identifies a processing
151 This name may be used in fault management to refer to a fault source
154 container transport-flow {
156 "container for the transport-flow used for CU plane";
157 leaf interface-name {
159 path "/if:interfaces/if:interface/if:name";
161 description "the interface name ";
163 container aliasmac-flow {
164 when "../../../transport-session-type = 'ALIASMAC-INTERFACE'";
165 if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE;
166 description "leafs for virtual mac type data flows";
167 leaf ru-aliasmac-address {
169 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:alias-macs";
173 "O-RU's alias MAC address used for alias MAC based flow";
177 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
180 "O-RU's VLAN-ID used for alias MAC based flow";
182 leaf o-du-mac-address {
183 type yang:mac-address;
186 "O-DU's MAC address used for alias MAC based flow";
190 when "../../../transport-session-type = 'ETH-INTERFACE'";
191 description "leafs for mac + vlan-id type data flows";
192 leaf ru-mac-address {
194 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address";
198 "O-RU's MAC address used for Ethernet based flow";
202 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id";
206 "O-RU's VLAN-ID used for Ethernet based flow";
208 leaf o-du-mac-address {
209 type yang:mac-address;
212 "O-DU's MAC address used for Ethernet based flow";
215 container udpip-flow {
216 when "../../../transport-session-type = 'UDPIP-INTERFACE'";
217 description "leafs for UDP/IP type data flows";
219 leaf ru-ipv4-address {
221 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip";
223 description "O-RU's IPv4 address";
225 leaf ru-ipv6-address {
227 path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip";
229 description "O-RU's IPv6 address";
232 description "choice of O-RU IPv4 or IPv6 address";
234 leaf o-du-ip-address {
235 type inet:ip-address;
237 description "O-DU's IPv address";
239 leaf ru-ephemeral-udp-port {
240 type inet:port-number;
243 "ephemeral port used by O-RU";
245 leaf o-du-ephemeral-udp-port {
246 type inet:port-number;
249 "ephemeral port used by O-DU";
251 leaf ecpri-destination-udp {
252 type inet:port-number;
254 description "the well known UDP port number used by eCPRI";
255 // fixme - add in a default when allocated by IANA
262 // top level container
264 container processing-elements {
266 "a model defining the mapping between transport flows and arbitrary
267 O-RAN processing elements. A processing element may be then defined for
268 handling connectivity or delay procedures, or defined with a corresponding
269 eaxcid for CU plane operations";