k. Slice Reconfiguration Request : MAC receives Slice Reconfiguration request and forwards the request to SCH as per
Section 9.2.3.2.4 of the AAD Spec
+ l. Paging Indication : MAC receives Paging Indication and forwards the trigger to SCH as per Section 9.2.3.2.13 of the AAD Spec
+
B. Scheduler to MAC
a. Cell Configuration Response - Response to cell configuration request from MAC, as per Section 9.2.3.3.1 of the AAD Spec
k. Slice Reconfiguration Response : Response to Slice Reconfiguration request from MAC, as per Section 9.2.3.3.4 of the AAD Spec
+ l. Downlink Paging Allocation : Provides DCI and DL data scheduling information for any Paging queued for a given slot
+ for Paging Channel, as per Section 9.2.3.3.13 of the AAD Spec.
+
3. DU APP - MAC Interface
e. Cell Stop - Commands MAC to stop cell at L1, as per Section 9.2.4.2 of the AAD spec.
f. UE Delete Request - Deletes UE information at MAC as per Section 9.2.4.7 of the AAD Spec.
+
+ g. DL PCCH Indication - Sends DL PCCH Message to MAC for any Paging scheduled on a slot, as per Section 9.2.4.17 of the AAD Spec.
B. MAC to DU APP
d. Slice Reconfiguration Request : Response to Slice Reconfiguration request from DU Manager.
+ e. Slot Indication : Indication about the ongoing SFN and Slot information to DU APP.
+
2. DU APP - RLC Interface
A. RLC to DU APP
- F1 Reset
+ - PAGING
+
- UE Context Management
- UE Context Setup
- RRC Delivery Report
- Near RT RIC: O-DU High communicates with Near RT RIC on the E2 interface. The below E2AP messages are
- implemented, as per ORAN WG3.E2AP v01.00:
+ implemented, as per ORAN WG3.E2AP v02.00:
- Global Procedures
- E2 Setup
+ - E2 Node Configuration Update
+
- Near RT RIC Functional Procedures
- RIC Subscription
- 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.
+Idle Mode Paging procedure
+---------------------------
+
+
+This section describes the Idle Mode Paging procedure within O-DU High.
+
+
+.. figure:: IDLE_mode_Paging.jpg
+ :width: 869
+ :alt: Idle Mode Paging flow
+
+ Figure 9 - Idle Mode Paging flow
+
+As seen in the Figure 9,
+
+- When a Paging is received from 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.
+
+- 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.
+
+- MAC forwards to SCH as PAGING INDICATION.
+
+- 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.
+
+- MAC forwards the PAGE to PHY in TX_Data.Request.
+
OSC Testcases Supported
=========================
Summary
-------
+F- release
+^^^^^^^^^^
+This release contains the following:
+
+ - Upgrade to E2AP version 2.0.
+ - Support for IDLE Mode Paging.
+
e-release
^^^^^^^^^^
This release contains the following:
**JIRA BACK-LOG:**
+F-release
+^^^^^^^^^^
+
++-----------------------------------------------+-----------------------------------------------+
+| **JIRA REFERENCE** | **SLOGAN** |
+| | |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-404 | Support for E2AP version 2.0 |
+| | |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-406 | Support for Idle Mode Paging |
+| | |
++-----------------------------------------------+-----------------------------------------------+
+
e-release
^^^^^^^^^^
----------
1. ORAN-WG8.AAD.0-v05.00.00
-2. ORAN WG3.E2AP v01.00
-
-3. ORAN WG3.E2SM v01.00
+2. ORAN WG3.E2AP v02.00
-4. 3GPP 38.473-f60 v15.3
+3. 3GPP 38.473-f60 v15.3
-5. 3GPP TS 38.211 v15.3
+4. 3GPP TS 38.211 v15.3
-6. 3GPP TS 38.212 v15.3
+5. 3GPP TS 38.212 v15.3
-7. 3GPP TS 38.213 v15.3
+6. 3GPP TS 38.213 v15.3
-8. 3GPP TS 38.214 v15.3
+7. 3GPP TS 38.214 v15.3
-9. 3GPP TS 38.321 v15.3
+8. 3GPP TS 38.321 v15.3
-10. 3GPP TS 38.331 v15.3
+9. 3GPP TS 38.331 v15.3
-11. 5G PHY FAPI Specification v1.0.5
+10. 5G PHY FAPI Specification v1.0.5
-12. 3GPP TS 28.541 Specfication V16.6
+11. 3GPP TS 28.541 Specfication V16.6
-13. O-RAN WG1.O1-Interface v04.00
+12. O-RAN WG1.O1-Interface v04.00
-14. O-RAN WG1.OAM-Architecture v04.00
+13. O-RAN WG1.OAM-Architecture v04.00
if(pcchInd)
{
- DU_LOG("\nINFO --> MAC : Recived pcch request from DU_APP for cellId[%d]", pcchInd->cellId);
+ DU_LOG("\nINFO --> MAC : Received DL PCCH IND from DU_APP for cellId[%d]", pcchInd->cellId);
GET_CELL_IDX(pcchInd->cellId, cellIdx);
{
cmLListAdd2Tail(storedPageList, currentNodeInfo);
}
- DU_LOG("\nINFO --> SCH : Paging information is stored successfully");
+ DU_LOG("\nDEBUG --> SCH : Paging information is stored successfully for PF:%d, Slot:%d",\
+ recvdNode->pageTxTime.sfn, recvdNode->pageTxTime.slot);
return ROK;
}
if(pageInd)
{
- DU_LOG("\nINFO --> SCH : Received paging indication form MAC for cellId[%d]",\
+ DU_LOG("\nDEBUG --> SCH : Received paging indication from MAC for cellId[%d]",\
pageInd->cellId);
/* Fetch Cell CB */
/*No Page is present for pf thus exiting*/
return ROK;
}
-
+
do
{
pagInfo = handlePageInfoLL(pf, NULLD, &(pagInfoLLFromPF->pagInfoList), TRAVERSE_ALL);
/* Fill Pst */
FILL_PST_DUAPP_TO_MAC(pst, EVENT_MAC_DL_PCCH_IND);
- DU_LOG("\nDEBUG --> DU_APP: Sending DL PCCH indication to MAC for cellId[%d] at PF[%d]",\
- pcchInd->cellId, pcchInd->pf);
ret = (*packMacDlPcchIndOpts[pst.selector])(&pst, pcchInd);
if(ret == RFAILED)
{
}
else
{
- DU_LOG("\nERROR --> DU_APP: sendDlPcchIndToMac(): Received pcchInd is NULLP");
+ DU_LOG("\nERROR --> DU APP: sendDlPcchIndToMac(): Received pcchInd is NULLP");
ret = RFAILED;
}
return ret;
rcvdF1apPagingParam->pagingFrame = (sfn % MAX_SFN);
rcvdF1apPagingParam->i_s = ((uint32_t)(floor(rcvdF1apPagingParam->pagUeId / N)) % ns);
- DU_LOG("\nINFO --> DU APP : Successfully filled paging parameter in DuCellCb");
memcpy(&cellCb->tmpPagingInfoOfUe, rcvdF1apPagingParam, sizeof(DuPagingMsg));
}
else
PagingCell_Item_t *pagingCellItem = NULLP;
DuPagingMsg *tmpPagingParam = NULLP;
- DU_LOG("\nINFO --> DU APP : Processing the Paging Message");
paging = &f1apMsg->choice.initiatingMessage->value.choice.Paging;
if(paging)
{
{
if(duDelNodeFromLList(pageUeLL, node) == ROK)
DU_FREE(ueRecord, sizeof(DuPagUeRecord));
-
- DU_LOG("\nDEBUG --> DU APP: UeId:%d Deleted successfully",pagUeId);
}
return NULLP;
}
{
if(duDelNodeFromLList(pagInfoLL, node) == ROK)
DU_FREE(pagInfo, sizeof(DuPagUeList));
-
- DU_LOG("\nDEBUG --> DU APP: i_s:%d Deleted successfully",i_s);
}
return NULLP;
}