[ Jira id - ODUHIGH-593 ] Pack and unpack function nomenclature correction
[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 **********************
9 O-DU High Architecture
10 **********************
11
12 O-DU implements the functional blocks of L2 layer of a 5G NR protocol stack in SA(StandAlone) mode.
13 These layers primarily include NR MAC, NR Scheduler and NR RLC layers.
14
15 O-DU modules are developed as shown in the below diagram.
16
17 .. figure:: ODUArch.jpg
18   :width: 600
19   :alt: Figure 1 O-DU High Architecture Diagram
20
21   Figure 1 - O-DU High Architecture Diagram
22
23 ******************************
24 O-DU High Thread Architecture
25 ******************************
26
27 As shown in Figure 1, there are multiple entities within O-DU High. Modules sharing a
28 given color belong to one thread. O-DU architecture can be defined at a thread
29 level as follows:
30
31 - Thread 1: O-DU thread
32
33 - Thread 2: DU APP inclusive of Config Handler, DU Manager, UE Manager, and ASN.1 Codecs
34
35 - Thread 3: 5G NR RLC DL and MAC (inclusive of 5G NR SCH and Lower MAC)
36
37 - Thread 4: 5G NR RLC UL
38
39 - Thread 5: SCTP Handler
40
41 - Thread 6: Lower MAC Handler
42
43 - Thread 7: EGTP Handler
44
45 - Thread 8: O1
46
47 *****************
48 O-DU High Modules
49 *****************
50
51 DU APP 
52 ------
53
54 This module configures and manages all the operations of O-DU.
55 It interfaces with external entities as follows:
56
57 - OAM:  DU APP interacts with OAM on the O1 interface for configuration, alarms and performance management.
58
59 - 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.
60
61 - RIC: DU APP interacts with RIC on E2 interface over SCTP.
62
63
64 DU App submodules are as follows:
65
66 - Config Handler manages the configurations received on O1 interfaces and stores them within DU APP context.
67
68 - DU Manager handles all cell operations at the DU APP.
69
70 - UE Manager handles UE contexts at the DU APP.
71
72 - SCTP handler is responsible for establishing SCTP connections with O-CU, RIC on the F1AP and E2AP interfaces
73   respectively.
74
75 - EGTP handler is responsible for establishing EGTP connection with O-CU for data message exchange on the F1-U
76   interface.
77
78 - ASN.1 Codecs contain ASN.1 encode/decode functions which are used for System information, F1AP and E2AP messages.
79
80 5G NR RLC
81 ---------
82
83 This module provides services for transferring the control and data messages
84 between MAC layer and O-CU (via DU App).
85
86 5G NR RLC UL and 5G NR RLC DL are the sub modules of this module that implement
87 uplink and downlink functionality respectively. 
88
89 5G NR MAC
90 ------------
91
92 This module uses the services of the NR physical layer to send and receive data
93 on the various logical channels.
94 Functions of the 5G NR MAC module are as follows:
95
96 - 5G NR MAC is responsible for multiplexing and de-multiplexing of the data on various logical channels.
97 - Lower MAC interfaces between the MAC and the O-DU Low. It implements all the messages of FAPI
98   specification. It has a receiver thread to handle messages from L1.
99
100 5G NR SCH
101 ----------
102
103 - This module is completely encapuslated withing 5G NR MAC i.e. all interactions of the 5G NR SCH is via the 5G NR MAC.
104 - Schedules resources in UL and DL for cell and UE based procedures.
105 - SCH framework design supports plugging-in new scheduling algorithm easily. Refer to section "Scheduler Framework with plug-in support" in Developer-Guide document for details.
106
107 O-DU Utility and Common Functions
108 ---------------------------------
109
110 These modules contain platform specific files and support O-DU High functionality and message exchanges.
111
112
113 O1 Module
114 ---------
115
116 .. figure:: ODU-O1-Arch.jpg
117   :width: 554
118   :alt: Figure 2 O1 Architecture
119
120   Figure 2 - O1 Architecture 
121
122 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. 
123
124 O1 architecture has following components:
125
126 - Netconf Session Handler: Subscribe to Netconf YANG modules and events. Register callback handler methods.
127
128 - VES Agent : Sends the VES events to SMO
129
130 - Alarm Manager: Stores and manages(add/updated/delete) alarms.
131
132 - Alarm Interface : Provides an interface to O-DU High threads for sending the alarm messages to O1 module over Unix socket.
133
134 - Config Interface : Interface to handle the configurations sent from SMO to the stack
135
136 - Netopeer server: Serves the northbound SMO/OAM Netconf requests.
137
138 **********************
139 O-DU High Interfaces
140 **********************
141
142 This section describes the other modules that O-DU High interfaces with, as shown in below diagram.
143
144 .. figure:: O-DUHighInterfaces.jpg
145   :width: 600
146   :alt: O-DU High Interfaces
147
148   Figure 3 - O-DU High Interfaces
149
150
151 As shown in Figure 3, O-DU High interfaces with the following modules:
152
153 - O-CU: O-DU High communicates with O-CU on the F1AP interface. The control message exchanges are on F1-C while
154   data message exchanges are on F1-U interfaces. The below F1AP messages on F1-C are implemented, as per
155   3GPP 38.473-f60 v15.3:
156
157   - Interface Management
158
159       - F1 Setup
160        
161       - gNB-DU Configuration Update
162        
163       - F1 Reset
164        
165       - PAGING
166
167   - UE Context Management 
168
169       - UE Context Setup
170
171       - UE Context Modification
172
173       - UE Context Release
174
175   - RRC Message Transfer
176                 
177       - Initial UL RRC Message Transfer
178
179       - DL RRC Message Transfer
180
181       - UL RRC Message Transfer
182
183       - RRC Delivery Report
184
185 - Near RT RIC: O-DU High communicates with Near RT RIC on the E2 interface. The below E2AP messages are
186   implemented, as per O-RAN.WG3.E2GAP-R003-v03.00 and O-RAN.WG3.E2AP-R003-v03.00.
187
188   - Global Procedures
189
190       - E2 Setup
191
192       - E2 Node Configuration Update 
193     
194       - RIC Service Update 
195
196       - E2 Connection Update
197
198       - E2 Removal
199     
200       - E2 Reset
201
202       - Error Indication
203       
204   - Near RT RIC Functional Procedures
205                 
206       - RIC Subscription
207
208       - RIC Subscription Modification
209
210       - RIC Subscription Modification Required
211
212       - RIC Subscription Delete
213
214       - RIC Subscription Delete Required
215
216       - RIC Indication
217
218 - O-DU Low: O-DU High communicates with O-DU Low on the FAPI interface. The below FAPI messages are supported, 
219   as per FAPI interface files shared by Intel:
220
221   - P5 messages - PHY mode control interface
222            
223       - PARAM.request/PARAM.response
224
225       - CONFIG.request/CONFIG.response
226
227       - START.request
228
229       - STOP.request
230
231       - STOP.indication
232
233   - P7 messages - Main data path interface
234
235       - DL_TTI.request
236
237       - UL_TTI.request
238
239       - SLOT.indication
240
241       - UL_DCI.request
242
243       - TX_Data.request
244
245       - RX_Data.indication
246
247       - CRC.indication
248
249       - UCI.indication
250
251       - RACH.indication
252
253 - OAM: O-DU High communicates with OAM on the O1 interface.
254
255
256
257 ***********************
258 O-DU High functionality
259 ***********************
260
261 Cell Up and Broadcast Procedure
262 -------------------------------
263
264 This section describes the cell-up procedure within O-DU High.
265
266 .. figure:: CellUpAndBroadcast.png
267   :width: 720
268   :alt: Cell Up and Broadcast Procedure
269
270   Figure 4 - O-DU High Cell Up and Broadcast Procedure
271
272
273 As seen in the Figure 4,
274 - If O1 interface is enabled, SMO sends cell configuration to DU APP. DU APP stores the configurations in its local database.
275
276 - If O1 interface is disabled, DU APP module uses static configuration.
277
278 - 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.
279
280 - The O-CU responds with F1 Setup Response. This message contains a list of cells which must be activated.
281
282 - The O-DU High scans the list of cells received and sends corresponding cell configurations to 5G NR MAC.
283
284 - 5G NR MAC, in-turn configures the 5G NR SCH. It also configures the O-DU Low via the Lower MAC module.
285
286 - On receiving the cell config response, DU APP sends a gNB DU Config Update towards the O-CU. The O-CU responds with
287   gNB DU Config Update ACK towards the O-DU High.
288
289 - The DU APP now exchanges F1 Reset message with the O-CU to initialize the UE contexts.
290
291 - 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
292   Low.
293
294 - On receiving START.request, O-DU Low begins to send slot indications towards 5G NR MAC via the lower MAC.
295   The frequency of these slot indications is determined by the numerology(Mu) supported.
296   5G NR MAC forwards these slot indications to the 5G NR SCH and DU APP modules.
297
298 - 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.
299
300 - The 5G NR SCH, keeps tracking the SSB and SIB1 ocassions on receiving regular slot indications. 
301   On detecting the relevant ocassion, 5G NR SCH schedules SSB/SIB1 and forwards the DL Scheduling Information to 5G NR MAC.
302
303 - The 5G NR MAC mutiplexes the PDU and sends SSB/SIB1 packets towards the O-DU Low through the Lower MAC.
304
305
306 UE Related Procedure
307 ---------------------
308
309 The O-DU High supports 
310
311 - All physical channels - PBCH, PRACH, PDCCH, PDSCH, PUSCH, PUCCH
312
313 - All control logical channels - UL CCCH, DL CCCH, UL DCCH, DL DCCH
314
315 - All control transport channels - BCH, UL-SCH, DL-SCH, RACH
316
317 The above channels are used to achieve the below messages:
318
319 - Cell broadcast of System Information which includes SSB and SIB1.
320
321 - RACH Procedure
322
323   - RACH Indication
324
325   - Random Access Response
326
327   - RRC Setup Request
328
329   - RRC Setup
330
331 - UE attach signalling flow
332
333   - RRC Setup Complete
334
335   - Registraton Request
336
337   - NAS Authentication Request
338
339   - NAS Authentication Response
340
341   - NAS Security Mode Command
342
343   - NAS Security Mode Complete
344
345   - RRC Security Mode Command
346
347   - RRC Security Mode Complete
348
349   - Registraton Accept
350
351   - Registraton Complete
352
353   - RRC Reconfiguration
354
355   - RRC Reconfiguration Complete
356
357 Figure 5 below depicts the above call flow, inclusive of all interfaces:
358
359 .. figure:: UeAttach.png
360   :width: 800
361   :alt: O-DU High UE Attach Flow
362
363   Figure 5 - UE Attach Flow
364
365 - UE Release Signalling flow
366
367   - RRC Release
368
369 Closed Loop Automation Procedure
370 --------------------------------
371
372 This section describes the closed loop automation procedure within O-DU High.
373
374 .. figure:: CLA_call_flow.png
375   :width: 720
376   :alt: Closed Loop Automation Procedure
377
378   Figure 6 - O-DU High Closed Loop Automation Procedure
379
380
381 1. SMO commands ODU-High to bring the cell down via O1 interface.
382
383 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.
384
385 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.
386    
387 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.
388
389 5. Once all UEs are released, O-DU High sends STOP.Request to L1. L1 responds with stop indication.
390
391 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.
392
393 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)
394
395 O1 Netconf get-alarm list procedure
396 -----------------------------------
397
398 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.
399
400
401 .. figure:: ODU-O1-GetAlarmListFlow.jpg
402   :width: 869
403   :alt: Figure 7 O1 get alarm-list flow  
404
405   Figure 7 - O1 get alarm-list flow
406
407 As seen in the Figure 7,
408
409 - 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.
410
411 - 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.
412
413 - Alarm Manager stores the alarm data in a list.
414
415 - 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.
416
417 - The callback function fetches the alarm list from Alarm Manager and sends it back to the client (SMO/OAM) via  Netconf interface. 
418
419 Network Slicing procedure
420 --------------------------
421
422 This section describes the Network Slicing feature within O-DU High.
423
424
425 .. figure:: Network_Slicing.png 
426   :width: 869
427   :alt: Network Slicing flow
428
429   Figure 8 -  Network Slicing flow
430
431 As seen in the Figure 8,
432
433 - 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.
434
435 - 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.
436
437 - 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.
438
439 - RLC sends the Consolidated Slice Metrics to DU APP at every 60 sec duration. This is further forwarded towards SMO/Non-RT RIC.
440
441 - 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.
442
443 - 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.
444
445 Idle Mode Paging procedure
446 --------------------------
447
448 This section describes the Idle Mode Paging procedure within O-DU High.
449
450
451 .. figure:: IDLE_mode_Paging.jpg
452   :width: 869
453   :alt: Idle Mode Paging flow
454
455   Figure 9 -  Idle Mode Paging flow
456
457 As seen in the Figure 9,
458
459 - 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.
460
461 - 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.
462
463 - MAC forwards to SCH as PAGING INDICATION.
464
465 - 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.
466
467 - MAC forwards the PAGE to PHY in TX_Data.Request.
468
469 Inter-DU Handover within O-CU
470 ------------------------------
471
472 This section describes the handling of inter-DU handover of a UE within O-DU High.
473
474 .. figure:: Inter_DU_Handover_Within_OCU.png
475    :width: 600
476    :alt: Inter-DU Handover withing O-CU
477  
478    Figure 10 -  Inter_DU Handover call flow
479
480 Assumption: UE is RRC connected with DU and PDU data session is active.
481
482 - 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.
483
484 - Based on UE Measurement Report, O-CU makes a handover decision to another cell belonging to the target O-DU.
485
486 - The O-CU sends a UE CONTEXT MODIFICATION REQUEST message to source O-DU to query the latest configuration.
487
488 - The DU APP in source O-DU responds with a UE CONTEXT MODIFICATION RESPONSE message that includes latest full configuration information.
489
490 - 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.
491
492 - The target O-DU responds with a UE CONTEXT SETUP RESPONSE message if the target O-DU can admit resources for the handover.
493
494 - 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.
495
496 - 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.
497
498 - The source O-DU responds to the O-CU with UE CONTEXT MODIFICATION RESPONSE message.
499
500 - 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.
501
502 - Once Random Access procedure with target O-DU is complete, the UE responds to the target O-DU with a RRCReconfigurationComplete message.
503
504 - The target O-DU sends UL RRC MESSAGE TRANSFER message to O-CU to convey the received RRCReconfigurationComplete message.
505
506 - The downlink and uplink data packets are sent to/from the UE through the target O-DU.
507
508 - The O-CU sends UE CONTEXT RELEASE COMMAND message to the source O-DU.
509
510 - The source O-DU sends UE DELETE REQUEST to MAC/RLC layers to release the UE context and receives UE DELETE RESPONSE message.
511
512 - The source O-DU responds to O-CU with UE CONTEXT RELEASE COMPLETE message.
513
514 Inter-CU Handover (Xn-Based)
515 ------------------------------
516
517 This section describes the handling of inter-CU handover of a UE over Xn interface.
518
519 .. figure:: Xn_Based_Inter_CU_Handover.png
520    :width: 600
521    :alt: Xn-Based Inter-CU Handover
522  
523    Figure 11 -  Xn-Based Inter-CU Handover call flow
524
525 Terminology:
526
527 - Source GNB : GNB to which UE is connected and will be handed over from .
528 - Source GNB DU : O-DU in source GNB
529 - Source GNB CU : O-CU in source GNB
530 - Target GNB : GNB to which UE will be handed over to.
531 - Target GNB DU : O-DU in target GNB
532 - Target GNB CU : O-CU in target GNB
533 - Xn Inteface : Interface between Source GNB CU and Target GNB CU
534 - UE : UE in handover from source GNB to target GNB
535
536 Assumptions: 
537
538 - Xn setup is established between the two GNB 
539 - UE is RRC connected with DU 
540 - PDU data session is active.
541
542 Call Flow :
543
544 - UE sends Measurement Report message to source GNB. This message is sent from O-DU to O-CU in the UL RRC MESSAGE TRANSFER message over F1AP interface.
545
546 - Based on UE Measurement Report, O-CU makes handover decision to a cell belonging to another GNB. Hereafter, this GNB will be referred to as target GNB.
547
548 - Before initiating the handover procedure, source GNB CU sends a UE CONTEXT MODIFICATION REQUEST message to source GNB DU to query the latest configurations.
549
550 - The source GNB DU responds with UE CONTEXT MODIFICATION RESPONSE message that includes latest full configuration information.
551
552 - To start the handover, source GNB CU sends HANDOVER REQUEST to target GNB CU with UE configuration received from source GNB DU.
553
554 - Target GNB CU sends a UE CONTEXT SETUP REQUEST message to target GNB DU to create a UE context and setup one or more data bearers. The UE CONTEXT SETUP REQUEST message includes Hand-overPreparationInformation. At 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.
555
556 - The target GNB DU responds with UE CONTEXT SETUP RESPONSE message if it can admit resources for the handover.
557
558 - Consequetively, target GNB CU sends HANDOVER REQUEST ACKNOWLEDGE message to source GNB CU to proceed with handover.
559
560 - Now source GNB CU sends UE CONTEXT MODIFICATION REQUEST message to source GNB DU, which includes RRCReconfiguration message towards the UE. The CU also indicates the DU to stop the data transmission for the UE.
561
562 - Source GNB DU forwards received RRCReconfiguration message to the UE and then sends DOWNLINK DATA DELIVERY STATUS message to CU to inform about successful delivery of message to UE.
563
564 - Source GNB DU also sends UE Reconfiguration Request to MAC/Scheduler and RLC layers to stop data scheduling as requested by CU. Once all layers have responded with UE reconfiguration response, source GNB DU send UE CONTEXT MODIFICATION RESPONSE message to source GNB CU.
565
566 - Using the information received in RRC Reconfiguration message, UE triggers Random Access procedure towards target GNB DU. This is a contention free random access if UE receives dedicated RACH resources information in RRC Reconfiguration message.
567
568 - Once Random Access procedure with target GNB is complete, UE responds to target GNB DU with a RRCReconfigurationComplete message.
569
570 - The target GNB DU sends UL RRC MESSAGE TRANSFER message to CU to convey the received RRCReconfigurationComplete message. This completes the UE attach to target GNB.
571
572 - The downlink and uplink data packets are now sent to/from the UE through target GNB.
573
574 - Once UE is successfully handed over to target GNB, its CU sends UE CONTEXT RELEASE message to source GNB CU.
575
576 - Hence, source GNB CU sends UE CONTEXT RELEASE COMMAND message to the source GNB DU. 
577
578 - DU releases UE context at all layers and responds to source GNB CU with UE CONTEXT RELEASE COMPLETE message.
579
580 Discontinuous reception (DRX)
581 -----------------------------
582
583 This section describes the Discontinuous reception (DRX) feature within O-DU High.
584
585
586 .. figure:: Discontinuous_reception.PNG
587   :width: 600
588   :alt: Discontinuous reception flow
589
590   Figure 12 -  Discontinuous reception flow
591
592 - The connected mode DRX is used to improve UE's battery power consumption. This allows UE to be active for a certain amount of time to monitor PDCCH. UE shall become active or inactive based on the DRX timers. 
593
594 - When UE is created at O-DU during RRC connection setup procedure, DU APP forwards the default DRX configurationĀ to MAC, who then passes it to SCH as part of UE configuration request. SCH stores these configuration and will use it to calculate the start time and expiry time of various DRX timers. But these timers will only start after UE is RRC connected.
595
596 - O-DU may receive modified DRX-configuration in UE CONTEXT SETUP REQUEST from O-CU. DU APP forwards it to MAC who forwards it to SCH as part of UE reconfiguration request. In this case, SCH will stop all DRX timers, re-calculate the start time and expiry time of various timers based on  updated configuration and restart the drx-onDurationTimer. 
597
598 - Along with long cycle, DRX in O-DU high also supports short cycle which is enabled if short cycle configuration is recived in UE CONTEXT SETUP REQUEST. 
599
600 - DRX timers supported in ODU-High are drx-onDurationTimer, drx-InactivityTimer, drx-ShortCycleTimer, drx-HARQ-RTT-TimerDL, drx-RetransmissionTimerDL, drx-HARQ-RTT-TimerUL and drx-RetransmissionTimerUL. 
601
602 - UE is active when any of the following timers is running: drx-onDurationTimer, drx-InactivityTimer, drx-RetransmissionTimerDL or drx-RetransmissionTimerUL, else the UE is considered as inactive.
603
604 - Initially, drx-onDurationTimer is started based on long cycle length. While drx-onDurationTimer or drx-InactivityTimer are running, UE becomes active to monitor PDCCH and send data in UL/DL. When drx-InactivityTimer expires, drx-ShortCycleTimer starts. While drx-ShortCycleTimer is running, drx-onDurationTimer is started based on short cycle length. Once drx-ShortCycleTimer expires, long cycle length is used again. Refer to figure 12 below for detailed working of these timers.
605
606 .. figure:: Drx_Onduration_Inactive_ShortCycle_Timer.png
607   :width: 600
608   :alt: onDurationTimer,InactivityTimer,ShortCycleTimer flow
609
610   Figure 13 -  onDurationTimer,InactivityTimer,ShortCycleTimer flow
611
612 - If HARQ is received/sent, drx-HARQ-RTT-TimerDL or drx-HARQ-RTT-TimerUL is started. On its expiry drx-RetransmissionTimerDL or drx-RetransmissionTimerUL will start. While it is running, UE becomes active for retransmission of data in DL/UL. Refer to figure 13 and 14 below for detailed working of these timers.
613
614 .. figure:: Drx_Dl_Harq_Retransmission_Timer.png
615   :width: 600
616   :alt: HARQ-RTT-TimerDL, RetransmissionTimerDL flow
617
618   Figure 14 - DL Harq Retransmission Timers flow
619
620 .. figure:: Drx_Ul_Harq_Retransmission_Timer.png
621   :width: 600
622   :alt: HARQ-RTT-TimerUL, RetransmissionTimerUL flow
623
624   Figure 15 - UL Harq Retransmission Timers flow
625
626 - If O-DU receives DRX configuration release indicator IE as a part of UE CONTEXT MODIFICATION REQUEST from O-CU, DU APP will forward this indicator to MAC which forwards it to SCH as part of UE reconfiguration request. In this case SCH stops all DRX timers, deletes DRX configuration and marks UE as active by default. 
627
628
629 E2AP Functionality
630 ------------------
631
632 O-DU High communicates with Near RT RIC on the E2 interface using various Global Procedures and Near-RT RIC Functional Procedures.
633 The implementation of these procedures are strictly compliant to O-RAN.WG3.E2GAP-R003-v03.00, O-RAN.WG3.E2AP-R003-v03.00.
634
635 ODU-High supports E2 Service Model-Key Performance Measurement, compliant to O-RAN.WG3.E2SM-KPM-R003-v03.00.
636 Following KPIs are implemented in ODU-High as part of E2SM-KPM. These comply with 3GPP 28.552 v15.6.0 section 5.1.1.2 Radio resource utilization.
637
638 +--------------------------------+-----------+-----------------------------------------+
639 |    KPI                         | Section   | Remark                                  |
640 +================================+===========+=========================================+
641 |DL Total PRB Usage(RRU.PrbTotDl)| 5.1.1.2.1 | Calulates the total usage of PRBs on DL |
642 +--------------------------------+-----------+-----------------------------------------+
643 |UL Total PRB Usage(RRU.PrbTotUl)| 5.1.1.2.2 | Calulates the total usage of PRBs on UL |
644 +--------------------------------+-----------+-----------------------------------------+
645
646 E2 API Flow Triggered in ODU-High's stub-based test framework 
647 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
648
649 This section describes the E2AP messages triggered when executing O-DU High in stub-based test framework.
650
651
652 .. figure:: E2AP_Flow_Triggered_In_Code.PNG
653   :width: 600
654   :alt: E2AP Flow Triggered In Code 
655
656   Figure 16 - E2AP Flow Triggered In Code
657
658 E2AP Procedures Supported in ODU-High
659 ++++++++++++++++++++++++++++++++++++++
660
661 This section contains flow diagrams for E2AP procedures that may/may not be triggered in ODU-High, however the code supports its working  as per O-RAN WG3 E2 specifications.
662
663
664 E2 Setup Procedure
665 ^^^^^^^^^^^^^^^^^^
666
667
668 This section describes the E2 Setup Procedure within O-DU High and Near-RT RIC. 
669
670
671 .. figure:: E2_Setup_Procedure.PNG 
672    :width: 600
673    :alt: E2 Setup Procedure
674
675    Figure 17 - E2 Setup Procedure
676
677 E2 Node Configuration Update Procedure
678 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
679
680 This section describes the E2 Node Configuration Procedure within O-DU High and Near-RT RIC. 
681
682 .. figure:: E2_Node_Configuration_Update_Procedure.PNG
683    :width: 600
684    :alt: E2 Node Configuration Update Procedure
685
686    Figure 18 - E2 Node Configuration Update Procedure
687
688
689 RIC Service Update procedure
690 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
691
692 This section describes the RIC Service Update Procedure within O-DU High and Near-RT RIC.
693 Note - This API is not currently triggered by ODU-High.
694
695 .. figure:: RIC_Service_Update_Procedure.PNG 
696    :width: 600
697    :alt: RIC Service Update Procedure
698
699    Figure 19 - RIC Service Update Procedure
700
701
702 E2 Connection Update Procedure
703 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
704
705 This section describes the E2 Connection Update Procedure within O-DU High and Near-RT RIC.
706 Note - This API is not currently triggered by stub-based framework.
707
708 .. figure:: E2_Connection_Update_Procedure.PNG 
709    :width: 600
710    :alt: E2 Connection Update Procedure
711
712    Figure 20 - E2 Connection Update Procedure
713
714
715 E2 Removal Procedure
716 ^^^^^^^^^^^^^^^^^^^^
717
718 This section describes the E2 removal Procedure from both DU-initiated and RIC-initiated within O-DU High and Near-RT RIC.
719 Note - This API is not currently triggered by ODU-High or Stub-based test framework as of now.
720
721 .. figure:: E2_Removal_Procedure(DU-initiated).PNG 
722    :width: 600
723    :alt: E2 Removal Procedure(DU-initiated)
724
725    Figure 21 - E2 Removal Procedure(DU-initiated)
726
727 .. figure:: E2_Removal_Procedure(RIC-initiated).PNG 
728    :width: 600
729    :alt: E2 Removal Procedure(RIC-initiated)
730
731    Figure 22 - E2 Removal Procedure(RIC-initiated)
732
733
734 Reset Procedure
735 ^^^^^^^^^^^^^^^
736
737 This section describes the Reset Procedure from both DU-initiated and RIC-initiated within O-DU High and Near-RT RIC.
738 Note - This API is not currently triggered by ODU-High or Stub-based test framework as of now.
739
740 .. figure:: Reset_Procedure(DU-initiated).PNG 
741    :width: 600
742    :alt: Reset Procedure(DU-initiated)
743
744    Figure 23 - Reset Procedure(DU-initiated)
745
746 .. figure:: Reset_Procedure(RIC-initiated).PNG 
747    :width: 600
748    :alt: Reset Procedure(RIC-initiated)
749
750    Figure 24 - Reset Procedure(RIC-initiated)
751
752
753
754
755 Error Indication Procedure
756 ^^^^^^^^^^^^^^^^^^^^^^^^^^
757
758 This procedure can be triggered from either O-DU or Near-RT RIC. It informs that an error has been found in DU or Near-RT RIC.
759 Note - This API is not currently triggered by ODU-High or Stub-based test framework as of now.
760
761 RIC Subscription Procedure / RIC Indication
762 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
763
764 This section describes the RIC Subscription Procedure within O-DU High and Near-RT RIC. In addition to this procedure, the RIC indication procedure has been described.
765
766 .. figure:: RIC_Subscription_Procedure.PNG 
767    :width: 600
768    :alt: RIC Subscription Procedure
769
770    Figure 25 - RIC Subscription Procedure
771
772
773 RIC Subscription Modification Required
774 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
775
776 Only framework is added as part of this procedure. The complete handling and flow will be added once use-case is determined.
777
778
779 RIC Subscription Modification Procedure
780 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
781
782 This section describes the RIC Subscription Modification Procedure within O-DU High and Near-RT RIC.
783 Note - This API is not currently triggered by stub-based framework.
784
785 .. figure:: RIC_Subscription_Modification_Procedure.png
786    :width: 600
787    :alt: RIC Subscription Modification Procedure
788
789    Figure 26 - RIC Subscription Modification Procedure
790
791
792 RIC Subscription Delete Procedure
793 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
794
795 This section describes the RIC Subscription Delete Procedure within O-DU High and Near-RT RIC.
796 Note - This API is not currently triggered by stub-based framework.
797
798 .. figure:: RIC_Subscription_Delete_Procedure.PNG
799    :width: 600
800    :alt: RIC Subscription Delete Procedure
801
802    Figure 27 - RIC Subscription Delete Procedure
803
804
805 OSC Testcases Supported
806 -----------------------
807
808 The O-DU High partially supports below use-cases:
809
810 - Traffic Steering
811
812 - Health Check
813
814