F-Release Document Update
[o-du/l2.git] / docs / overview.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3
4
5 O-DU High Overview
6 *********************
7
8 O-DU High Architecture
9 -----------------------
10
11 O-DU implements the functional blocks of L2 layer of a 5G NR protocol stack in SA(StandAlone) mode.
12 These layers primarily include NR MAC, NR Scheduler and NR RLC layers.
13
14 O-DU modules are developed as shown in the below diagram.
15
16 .. figure:: ODUArch.jpg
17   :width: 600
18   :alt: Figure 1 O-DU High Architecture Diagram
19
20   Figure 1 - O-DU High Architecture Diagram
21
22 O-DU High Thread Architecture
23 ==============================
24
25 As shown in Figure 1, there are multiple entities within O-DU High. Modules sharing a
26 given color belong to one thread. O-DU architecture can be defined at a thread
27 level as follows:
28
29 - Thread 1: O-DU thread
30
31 - Thread 2: DU APP inclusive of Config Handler, DU Manager, UE Manager, and ASN.1 Codecs
32
33 - Thread 3: 5G NR RLC DL and MAC (inclusive of 5G NR SCH and Lower MAC)
34
35 - Thread 4: 5G NR RLC UL
36
37 - Thread 5: SCTP Handler
38
39 - Thread 6: Lower MAC Handler
40
41 - Thread 7: EGTP Handler
42
43 - Thread 8: O1
44
45 O-DU High Modules
46 =================
47
48 DU APP 
49 ^^^^^^^^^^^^^^^^^^
50 This module configures and manages all the operations of O-DU.
51 It interfaces with external entities as follows:
52
53 - OAM:  DU APP interacts with OAM on the O1 interface for configuration, alarms and performance management.
54
55 - O-CU: DU APP interacts with O-CU for RAN functionalities over the F1 interface which is built on SCTP. Control messages are exchanged on the F1-C interface and data messages on the F1-U interface.
56
57 - RIC: DU APP interacts with RIC on E2 interface over SCTP.
58
59
60 DU App submodules are as follows:
61
62 - Config Handler manages the configurations received on O1 interfaces and stores them within DU APP context.
63
64 - DU Manager handles all cell operations at the DU APP.
65
66 - UE Manager handles UE contexts at the DU APP.
67
68 - SCTP handler is responsible for establishing SCTP connections with O-CU, RIC on the F1AP and E2AP interfaces
69   respectively.
70
71 - EGTP handler is responsible for establishing EGTP connection with O-CU for data message exchange on the F1-U
72   interface.
73
74 - ASN.1 Codecs contain ASN.1 encode/decode functions which are used for System information, F1AP and E2AP messages.
75
76 5G NR RLC
77 ^^^^^^^^^^^^^^^^^^
78 This module provides services for transferring the control and data messages
79 between MAC layer and O-CU (via DU App).
80
81 5G NR RLC UL and 5G NR RLC DL are the sub modules of this module that implement
82 uplink and downlink functionality respectively. 
83
84 5G NR MAC
85 ^^^^^^^^^^^^^^^^^^
86 This module uses the services of the NR physical layer to send and receive data
87 on the various logical channels.
88 Functions of the 5G NR MAC module are as follows:
89
90 - 5G NR MAC is responsible for multiplexing and de-multiplexing of the data on various logical channels.
91
92 - 5G NR SCH schedules resources in UL and DL for cell and UE based procedures.
93   5G NR SCH is completely encapsulated within the 5G NR MAC i.e., all interactions of the 5G NR SCH is via the 5G NR MAC.
94
95 - Lower MAC interfaces between the MAC and the O-DU Low. It implements all the messages of FAPI
96   specification. It has a receiver thread to handle messages from L1.
97
98
99 O-DU Utility and Common Functions
100 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
101 These modules contain platform specific files and support O-DU High functionality and message exchanges.
102
103
104 O1 Module
105 ^^^^^^^^^^
106
107 .. figure:: ODU-O1-Arch.jpg
108   :width: 554
109   :alt: Figure 2 O1 Architecture
110
111   Figure 2 - O1 Architecture 
112
113 As shown in figure 2 the O1 module runs as a thread in O-DU High. Alarm communication happens over a Unix socket between the O1 and O-DU threads. O1 module uses API calls for interacting with the Netconf server(Netopeer) and datastore(sysrepo) for providing the Netconf interface. 
114
115 O1 architecture has following components:
116
117 - Netconf Session Handler: Subscribe to Netconf YANG modules and events. Register callback handler methods.
118
119 - VES Agent : Sends the VES events to SMO
120
121 - Alarm Manager: Stores and manages(add/updated/delete) alarms.
122
123 - Alarm Interface : Provides an interface to O-DU High threads for sending the alarm messages to O1 module over Unix socket.
124
125 - Config Interface : Interface to handle the configurations sent from SMO to the stack
126
127 - Netopeer server: Serves the northbound SMO/OAM Netconf requests.
128
129
130 O-DU-High Interfaces
131 --------------------
132
133 This section describes the other modules that O-DU High interfaces with, as shown in below diagram.
134
135 .. figure:: O-DUHighInterfaces.jpg
136   :width: 600
137   :alt: O-DU High Interfaces
138
139   Figure 3 - O-DU High Interfaces
140
141
142 As shown in Figure 3, O-DU High interfaces with the following modules:
143
144 - O-CU: O-DU High communicates with O-CU on the F1AP interface. The control message exchanges are on F1-C while
145   data message exchanges are on F1-U interfaces. The below F1AP messages on F1-C are implemented, as per
146   3GPP 38.473-f60 v15.3:
147
148   - Interface Management
149
150     - F1 Setup
151
152     - gNB-DU Configuration Update
153
154     - F1 Reset
155
156     - PAGING
157
158   - UE Context Management 
159
160     - UE Context Setup
161
162     - UE Context Modification
163
164     - UE Context Release
165
166   - RRC Message Transfer
167                 
168     - Initial UL RRC Message Transfer
169
170     - DL RRC Message Transfer
171
172     - UL RRC Message Transfer
173
174     - RRC Delivery Report
175
176 - Near RT RIC: O-DU High communicates with Near RT RIC on the E2 interface. The below E2AP messages are
177   implemented, as per ORAN WG3.E2AP v02.00:
178
179   - Global Procedures
180
181     - E2 Setup
182
183     - E2 Node Configuration Update 
184
185   - Near RT RIC Functional Procedures
186                 
187     - RIC Subscription
188
189     - RIC Indication
190
191 - O-DU Low: O-DU High communicates with O-DU Low on the FAPI interface. The below FAPI messages are supported, 
192   as per FAPI interface files shared by Intel:
193
194   - P5 messages - PHY mode control interface
195         
196     - PARAM.request/PARAM.response
197
198     - CONFIG.request/CONFIG.response
199
200     - START.request
201
202     - STOP.request
203
204     - STOP.indication
205
206   - P7 messages - Main data path interface
207
208     - DL_TTI.request
209
210     - UL_TTI.request
211
212     - SLOT.indication
213
214     - UL_DCI.request
215
216     - TX_Data.request
217
218     - RX_Data.indication
219
220     - CRC.indication
221
222     - UCI.indication
223
224     - RACH.indication
225
226 - OAM: O-DU High communicates with OAM on the O1 interface.
227
228
229
230 O-DU High functionality
231 -----------------------
232
233
234 Cell Up and Broadcast Procedure
235 ================================
236
237 This section describes the cell-up procedure within O-DU High.
238
239 .. figure:: CellUpAndBroadcast.png
240   :width: 720
241   :alt: Cell Up and Broadcast Procedure
242
243   Figure 4 - O-DU High Cell Up and Broadcast Procedure
244
245
246 As seen in the Figure 4,
247 - If O1 interface is enabled, SMO sends cell configuration to DU APP. DU APP stores the configurations in its local database.
248
249 - If O1 interface is disabled, DU APP module uses static configuration.
250
251 - The DU APP module of O-DU High sends F1 Setup Request to O-CU. This message contains a list of cells that the O-DU High has been configured with.
252
253 - The O-CU responds with F1 Setup Response. This message contains a list of cells which must be activated.
254
255 - The O-DU High scans the list of cells received and sends corresponding cell configurations to 5G NR MAC.
256
257 - 5G NR MAC, in-turn configures the 5G NR SCH. It also configures the O-DU Low via the Lower MAC module.
258
259 - On receiving the cell config response, DU APP sends a gNB DU Config Update towards the O-CU. The O-CU responds with
260   gNB DU Config Update ACK towards the O-DU High.
261
262 - The DU APP now exchanges F1 Reset message with the O-CU to initialize the UE contexts.
263
264 - DU APP sends Cell Start Req towards 5G NR MAC. This message is translated by the Lower MAC into the FAPI message START.request towards the O-DU
265   Low.
266
267 - On receiving START.request, O-DU Low begins to send slot indications towards 5G NR MAC via the lower MAC.
268   The frequency of these slot indications is determined by the numerology(Mu) supported.
269   5G NR MAC forwards these slot indications to the 5G NR SCH and DU APP modules.
270
271 - When the first slot indication reaches the DU APP, cell is marked as up. If O1 is enabled, DU APP triggers an alarm to SMO to indicate the CELL is UP.
272
273 - The 5G NR SCH, keeps tracking the SSB and SIB1 ocassions on receiving regular slot indications. 
274   On detecting the relevant ocassion, 5G NR SCH schedules SSB/SIB1 and forwards the DL Scheduling Information to 5G NR MAC.
275
276 - The 5G NR MAC mutiplexes the PDU and sends SSB/SIB1 packets towards the O-DU Low through the Lower MAC.
277
278
279
280 UE Related Procedure
281 ====================
282
283
284 The O-DU High supports 
285
286 - All physical channels - PBCH, PRACH, PDCCH, PDSCH, PUSCH, PUCCH
287
288 - All control logical channels - UL CCCH, DL CCCH, UL DCCH, DL DCCH
289
290 - All control transport channels - BCH, UL-SCH, DL-SCH, RACH
291
292 The above channels are used to achieve the below messages:
293
294 - Cell broadcast of System Information which includes SSB and SIB1.
295
296 - RACH Procedure
297
298   - RACH Indication
299
300   - Random Access Response
301
302   - RRC Setup Request
303
304   - RRC Setup
305
306 - UE attach signalling flow
307
308   - RRC Setup Complete
309
310   - Registraton Request
311
312   - Security Mode Command
313
314   - Security Mode Complete
315
316   - Registraton Accept
317
318   - Registraton Complete
319
320   - Several NAS Message Exchanges
321
322   - RRC Reconfiguration
323
324   - RRC Reconfiguration Complete
325
326 Figure 5 below depicts the above call flow, inclusive of all interfaces:
327
328 .. figure:: UeAttach.png
329   :width: 800
330   :alt: O-DU High UE Attach Flow
331
332   Figure 5 - UE Attach Flow
333
334 - UE Release Signalling flow
335
336   - RRC Release
337
338 Closed Loop Automation Procedure
339 ================================
340
341 This section describes the closed loop automation procedure within O-DU High.
342
343 .. figure:: CLA_call_flow.png
344   :width: 720
345   :alt: Closed Loop Automation Procedure
346
347   Figure 6 - O-DU High Closed Loop Automation Procedure
348
349
350 1. SMO commands ODU-High to bring the cell down via O1 interface.
351
352 2. DU-APP module of ODU-High sends GNB-DU configuration update message to O-CU. It contains the details of cell to be deleted. O-CU acknowledges this message by sending GNB-DU configuration update acknowledgment.
353
354 3. For each UE, DU APP sends UE Context Release Request to O-CU with information about the to be released. O-CU responds with UE Context Release request. It contains the RRC release message. O-DU high sends this RRC Release message to UE.
355    
356 4. DU APP then sends UE delete request to MAC and RLC. Once a confirmation is received from both MAC and RLC, DU APP deletes UE from its own database as well.
357
358 5. Once all UEs are released, O-DU High sends STOP.Request to L1. L1 responds with stop indication.
359
360 6. Once cell has stopped, DU APP sends cell delete request to MAC. On receiving confimation from MAC, DU APP deletes cell information from its own database as well and sends UE Context Release Complete.
361
362 7. On receiving cell bring up command from SMO, the complete Cell bring up and UE attach procedure will be repeated (as explained in above sections)
363
364
365 O1 Netconf get-alarm list procedure
366 ===================================
367
368 This section describes the *Health Status Retrieval* scenario of O-DU High health-check. It enables a northbound client(SMO) to retrieve the health of the O-DU High based on the last self-check performed. The alarm-list is provided as the response to the request via O1 Netconf interface.
369
370
371 .. figure:: ODU-O1-GetAlarmListFlow.jpg
372   :width: 869
373   :alt: Figure 6 O1 get alarm-list flow  
374
375   Figure 7 - O1 get alarm-list flow
376
377 As seen in the Figure 7,
378
379 - On the cell state change from de-active to activate, DU APP module raises a cell up alarm message and sends it over the Unix socket using the Alarm Interface API.
380
381 - On other side a Unix socket server, running as a thread, in O1 module receives the cell up alarm message and it passes on the alarm information to the Alarm Manager.
382
383 - Alarm Manager stores the alarm data in a list.
384
385 - Whenever SMO/OAM requires the current alarm list, it sends a Netconf get request. The request is received by the Netopeer Server and a callback method, registered with the Session Handler, is invoked.
386
387 - The callback function fetches the alarm list from Alarm Manager and sends it back to the client (SMO/OAM) via  Netconf interface. 
388
389
390 Network Slicing procedure
391 =========================
392
393 This section describes the Network Slicing feature within O-DU High.
394
395
396 .. figure:: Network_Slicing.png 
397   :width: 869
398   :alt: Network Slicing flow
399
400   Figure 8 -  Network Slicing flow
401
402 As seen in the Figure 8,
403
404 - Once the Cell is UP, Slice Configuration received from O1 to O-DU is processed. DU APP forwards the Slice Configuration Request towards MAC which is further forwarded to Scheduler.
405
406 - Scheduler stores the Slice Configuration in DB and sends the Slice Configuration Response for each Slice to MAC and further towards DU APP. Slice Configuration Procedure completes.
407
408 - Once a UE attaches and PDU session is established then RLC will periodically calculate the Slice Performance Metrics(UL and DL Throughput) for slices configured during UE Context Setup/Modification procedure.
409
410 - RLC sends the Consolidated Slice Metrics to DU APP at every 60 sec duration. This is further forwarded towards SMO/Non-RT RIC.
411
412 - SMO/Non-RT RIC analyses these metrics and may optimize the slice configuration(RRM Policies) for dedicated slice. This is received at MAC and Scheduler as Slice Reconfiguration Request from DU APP.
413
414 - Scheduler updates the received Slice Configuration in its DB and sends back the Slice Reconfiguration Response to MAC and further MAC forwards it to DU APP. Scheduler applies the optimized RRM policies for the dedicated slice.
415
416
417 Idle Mode Paging procedure
418 ===========================
419
420 This section describes the Idle Mode Paging procedure within O-DU High.
421
422
423 .. figure:: IDLE_mode_Paging.jpg
424   :width: 869
425   :alt: Idle Mode Paging flow
426
427   Figure 9 -  Idle Mode Paging flow
428
429 As seen in the Figure 9,
430
431 - When a Paging is received from O-CU and the Cell to be Paged is UP then DU APP will calculate Paging Frame(PF) and i_s(Index of Paging Ocassion/Slot) and groups the Paging of UEs falling on same PF/SFN together and stores in its Cell's Databse.
432
433 - When a Slot Indication for SFN is received then DU APP extracts the Paging of all UEs whose PF is ahead by PAGING_DELTA and builds Paging RRC PDU. DU APP sends the same via DL PCCH Indication to MAC.
434
435 - MAC forwards to SCH as PAGING INDICATION.
436
437 - SCH stores the Page Message in its DB and when the SLOT_INDICATION for that SFN arrives, SCH performs scheduling and resource allocation for PDCCH (alongwith DCI 1_0 format) and PDSCH channels and sends to MAC through DL PAGING ALLOCATION message.
438
439 - MAC forwards the PAGE to PHY in TX_Data.Request.
440
441 Inter-DU Handover within O-CU
442 =============================
443
444 This section describes the handling of inter-DU handover of a UE within O-DU High.
445
446 .. figure:: Inter_DU_Handover_Within_OCU.png
447    :width: 600
448    :alt: Inter-DU Handover withing O-CU
449  
450    Figure 9 -  Inter_DU Handover call flow
451
452 Assumption: UE is RRC connected with DU and PDU data session is active.
453
454 - The UE sends Measurement Report message to the source O-DU. This message is sent from O-DU to O-CU in the UL RRC MESSAGE TRANSFER message over F1AP interface.
455
456 - Based on UE Measurement Report, O-CU makes a handover decision to another cell belonging to the target O-DU.
457
458 - The O-CU sends a UE CONTEXT MODIFICATION REQUEST message to source O-DU to query the latest configuration.
459
460 - The DU APP in source O-DU responds with a UE CONTEXT MODIFICATION RESPONSE message that includes latest full configuration information.
461
462 - The O-CU sends a UE CONTEXT SETUP REQUEST message to the target O-DU to create an UE context and setup one or more data bearers. The UE CONTEXT SETUP REQUEST message includes Hand-overPreparationInformation. At target O-DU, DU APP sends UE Create Request to MAC and RLC layers to create the UE context with radio resources and receives UE Create Response from the respective protocol layers.
463
464 - The target O-DU responds with a UE CONTEXT SETUP RESPONSE message if the target O-DU can admit resources for the handover.
465
466 - The O-CU sends a UE CONTEXT MODIFICATION REQUEST message to the source O-DU, which includes RRCReconfiguration message towards the UE. The O-CU also indicates the source O-DU to stop the data transmission for the UE.
467
468 - The source O-DU forwards the received RRCReconfiguration message to the UE and then sends the UE Reconfiguration Request to MAC/Scheduler and RLC layer and get the UE Reconfiguration Response from the respective protocol layers.
469
470 - The source O-DU responds to the O-CU with UE CONTEXT MODIFICATION RESPONSE message.
471
472 - UE triggers Random Access procedure at the target O-DU. This is a contention free random access if UE was informed about its dedicated RACH resources in RRC Reconfiguration message.
473
474 - Once Random Access procedure with target O-DU is complete, the UE responds to the target O-DU with a RRCReconfigurationComplete message.
475
476 - The target O-DU sends UL RRC MESSAGE TRANSFER message to O-CU to convey the received RRCReconfigurationComplete message.
477
478 - The downlink and uplink data packets are sent to/from the UE through the target O-DU.
479
480 - The O-CU sends UE CONTEXT RELEASE COMMAND message to the source O-DU.
481
482 - The source O-DU sends UE DELETE REQUEST to MAC/RLC layers to release the UE context and receives UE DELETE RESPONSE message.
483
484 - The source O-DU responds to O-CU with UE CONTEXT RELEASE COMPLETE message.
485
486
487 OSC Testcases Supported
488 -----------------------
489
490 The O-DU High partially supports below use-cases:
491
492 - Traffic Steering
493
494 - Health Check
495
496