[Epic-ID: ODUHIGH-576][Issue-ID: ODUHIGH-588][SubTask-ID: ODUHIGH-610]|[NFAPI_BRANCH... 50/13150/3
authorpborla <pborla@radisys.com>
Tue, 2 Jul 2024 07:54:13 +0000 (13:24 +0530)
committersvaidhya <svaidhya@radisys.com>
Tue, 2 Jul 2024 08:12:21 +0000 (13:42 +0530)
Change-Id: I28f694e75aec839aefe3442df6ac9fbfd8a5d3a3
Signed-off-by: svaidhya <svaidhya@radisys.com>
18 files changed:
build/odu/makefile
build/scripts/install_lib_O1.sh
container-tag.yaml
docs/api-docs.rst
docs/installation-guide.rst
docs/release-notes.rst
docs/user-guide.rst
releases/container-release-o-du-l2
releases/container-release-o-du-l2-cu-stub
src/5gnrmac/lwr_mac_phy.h
src/5gnrmac/mac_cfg_hdl.c
src/5gnrmac/mac_utils.h
src/5gnrrlc/rlc_utils.h
src/5gnrsch/sch_utils.h
src/cm/common_def.c
src/cm/du_app_mac_inf.h
src/cm/mac_sch_interface.h
src/du_app/du_utils.h

index a76e64f..25b98bd 100644 (file)
@@ -74,7 +74,7 @@ endif
 # macro for output file name and makefile name
 #
 
-PLTFRM_FLAGS=-UMSPD -DODU -DINTEL_FAPI -UODU_MEMORY_DEBUG_LOG -DDEBUG_ASN_PRINT -UDEBUG_PRINT -DERROR_PRINT -USTART_DL_UL_DATA -UNR_DRX -UCALL_FLOW_DEBUG_LOG -UODU_SLOT_IND_DEBUG_LOG -UTHREAD_AFFINITY 
+PLTFRM_FLAGS=-UMSPD -DODU -DINTEL_FAPI -UODU_MEMORY_DEBUG_LOG -DDEBUG_ASN_PRINT -UDEBUG_PRINT -DERROR_PRINT -USTART_DL_UL_DATA -UNR_DRX -UCALL_FLOW_DEBUG_LOG -UODU_SLOT_IND_DEBUG_LOG -UTHREAD_AFFINITY -UMEM_SIZE_CHECK 
 
 ifeq ($(MODE),TDD)
    PLTFRM_FLAGS += -DNR_TDD
index eefeb48..ef2d20e 100755 (executable)
@@ -97,7 +97,8 @@ install_netconf_lib() {
 
    #1. libssh
    cd $NETCONF_PATH && \
-      git clone -c http.sslverify=false -b v0-7 --depth 1 https://git.libssh.org/projects/libssh.git && \
+      git clone -c http.sslverify=false --depth 1 https://github.com/libssh/libssh-mirror.git && \
+      mv libssh-mirror libssh && \
       cd libssh; mkdir build; cd build && \
       cmake .. && \
       make && \
index 6616473..c74efef 100644 (file)
@@ -1,4 +1,4 @@
 # The Jenkins job requires a tag to build the Docker image.
 # Global-JJB script assumes this file is in the repo root.
 ---
-tag: 9.0.5
+tag: 10.0.1
index 81d30c0..b7520d8 100644 (file)
@@ -6,7 +6,7 @@
 API-Docs
 ########
 
-This is the API-docs for I release o-du/l2.
+This is the API-docs for J release o-du/l2.
 
 .. contents::
    :depth: 3
index 7841f3d..1cbea4c 100644 (file)
@@ -18,6 +18,9 @@ Version history
 | **Date**           | **Ver.**           | **Author**         | **Comment**        |
 |                    |                    |                    |                    |
 +--------------------+--------------------+--------------------+--------------------+
+| 2023-06-10         |  8.0.1             |  Radisys           |  J release         |
+|                    |                    |                    |                    |
++--------------------+--------------------+--------------------+--------------------+
 | 2023-12-14         |  7.0.1             |  Radisys           |  I release         |
 |                    |                    |                    |                    |
 +--------------------+--------------------+--------------------+--------------------+
@@ -101,7 +104,7 @@ Following libraries are required to compile and execute O-DU High:
    - Ubuntu : sudo apt-get install -y build-essential
    - CentOS : sudo yum groups mark install -y “Development Tools”
 
-   Ensure the version is 4.6.3 and above using
+   Ensure the version is 11.4.0 and above using
 
    -   gcc --version
 
index b9e0dde..cf1dc13 100644 (file)
@@ -5,7 +5,7 @@
 Release-Notes
 **************
 
-This document provides the release notes for I Release of O-DU-L2.
+This document provides the release notes for J Release of O-DU-L2.
 
 .. contents::
    :depth: 3
@@ -19,6 +19,9 @@ Version history
 | **Date**           | **Ver.**           | **Author**         | **Comment**        |
 |                    |                    |                    |                    |
 +--------------------+--------------------+--------------------+--------------------+
+| 2024-06-10         | 10.0.0             | Radisys            | J release          |
+|                    |                    |                    |                    |
++--------------------+--------------------+--------------------+--------------------+
 | 2023-12-14         | 9.0.0              | Radisys            | I release          |
 |                    |                    |                    |                    |
 +--------------------+--------------------+--------------------+--------------------+
@@ -56,6 +59,18 @@ Version history
 Summary
 -------
 
+J- release
+^^^^^^^^^^
+This release contains the following:
+
+ - Multi UE (max=2) scheduling per TTI in scheduler
+      - Supporting both DL and UL scheduling
+
+ - XML based input configuration for ODU-High
+      - Added E2 related configurations
+
+ - Code changes upgraded to Gcc version 11.4.0
+
 I- release
 ^^^^^^^^^^
 This release contains the following:
@@ -234,6 +249,25 @@ This release contains the following:
 
 Release Data
 ------------
+J release
+^^^^^^^^^^
++--------------------------------------+------------------------------------------+
+| **Project**                          | ODUHIGH                                  |
+|                                      |                                          |   
++--------------------------------------+------------------------------------------+
+| **Repo/commit-ID**                   | o-du/l2/                                 |
+|                                      | I512cbbc3d79ec7b4bb7c3f9eb07585b04dad9a5a|
++--------------------------------------+------------------------------------------+
+| **Release designation**              | J release                                |
+|                                      |                                          |   
++--------------------------------------+------------------------------------------+
+| **Release date**                     | 2024-06-10                               |
+|                                      |                                          |   
++--------------------------------------+------------------------------------------+
+| **Purpose of the delivery**          | J release                                |
+|                                      |                                          |   
++--------------------------------------+------------------------------------------+
+
 I release
 ^^^^^^^^^^
 +--------------------------------------+------------------------------------------+
@@ -422,6 +456,26 @@ Feature Additions
 
 **JIRA BACK-LOG:**
 
+J-release
+^^^^^^^^^^
+
++-----------------------------------------------+-----------------------------------------------+
+| **JIRA REFERENCE**                            | **SLOGAN**                                    |
+|                                               |                                               |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-556  | Multi UE per slot scheduling UL               |
+|                                               |                                               |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-538  | XML based input configuration for ODU-High    |
+|                                               |                                               |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-557  | OSC-OAI Collaboration                         |
+|                                               |                                               |
++-----------------------------------------------+-----------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-475  | Integration of ODU-High with intel L1         |
+|                                               |                                               |
++-----------------------------------------------+-----------------------------------------------+
+
 I-release
 ^^^^^^^^^^
 
@@ -644,7 +698,25 @@ Bug Corrections
 
 **JIRA TICKETS:**
 
-NA
+J-release
+^^^^^^^^^^
+
++----------------------------------------------+-------------------------------------------------+
+| **JIRA REFERENCE**                           | **BUG DESCRIPTION**                             |
+|                                              |                                                 |
++----------------------------------------------+-------------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-606 | Fixing null memory size allocation issue        |
+|                                              |                                                 |
++----------------------------------------------+-------------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-593 | Pack and unpack function nomenclature correction|
+|                                              |                                                 |
++----------------------------------------------+-------------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-584 | Fixing the error number issue CmInetSctpConnectx|
+|                                              | function                                        |
++----------------------------------------------+-------------------------------------------------+
+| https://jira.o-ran-sc.org/browse/ODUHIGH-574 | Fix for Inconsistent behavious in ML            |
+|                                              |                                                 |
++----------------------------------------------+-------------------------------------------------+
 
 
 Deliverables
@@ -723,9 +795,6 @@ System Limitations
 
 - Multi UE scheduling per TTI is supported up to 2 UEs as of now.
 
-- Currently, only DL supports multi-UE scheduling. UL supports single-UE scheduling per TTI
-
-
 Known Issues
 ^^^^^^^^^^^^^
 
index 1948e99..fa7cda8 100644 (file)
@@ -4,7 +4,7 @@
 User Guide
 ***********
 
-This is the user guide for I release of O-DU/l2.
+This is the user guide for J release of O-DU/l2.
 Follow installation-guide to get all the dependencies ready.
 
 .. contents::
@@ -66,17 +66,17 @@ II. Execution - Using Docker Images
 The call flow between O-DU High and CU Stub can be achieved by executing docker containers.
 
 - Pull the last built docker images:
-    -  docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:9.0.5
+    -  docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:10.0.1
     -  docker pull nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2-cu-stub:
 
 - Run CU Stub docker:
     - docker run -it --privileged --net=host --entrypoint bash
-      nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2-cu-stub:9.0.5
+      nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2-cu-stub:10.0.1
     - ./cu_stub
 
 - Run ODU docker:
     - docker run -it --privileged --net=host --entrypoint bash
-      nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:9.0.5
+      nexus3.o-ran-sc.org:10004/o-ran-sc/o-du-l2:10.0.1
     - ./odu
 
 
index 4ba13a2..146df74 100644 (file)
@@ -1,11 +1,11 @@
 ---
 
 distribution_type: container
-container_release_tag: 9.0.5
+container_release_tag: 10.0.1
 container_pull_registry: nexus.o-ran-sc.org:10004
 container_push_registry: nexus.o-ran-sc.org:10002
 project: o-du-l2 
-ref: 6e44ef6bdb6ece8e5a19a662016c3cec5b346c91
+ref: 666701aebc17e9f0160ad0f763497503d7c67870
 containers:
 - name: o-du-l2
-version: 9.0.5
+version: 10.0.1
index ce519f2..ac7e377 100644 (file)
@@ -1,11 +1,11 @@
 ---
 
 distribution_type: container
-container_release_tag: 9.0.5
+container_release_tag: 10.0.1
 container_pull_registry: nexus.o-ran-sc.org:10004
 container_push_registry: nexus.o-ran-sc.org:10002
 project: o-du-l2 
-ref: 6e44ef6bdb6ece8e5a19a662016c3cec5b346c91
+ref: 666701aebc17e9f0160ad0f763497503d7c67870
 containers:
 - name: o-du-l2-cu-stub
-version: 9.0.5
+version: 10.0.1
index 7c4fdb2..8f6591f 100644 (file)
@@ -32,6 +32,15 @@ typedef enum
    MSG_TX_ERR
 }ErrorCode;
 
+#ifdef MEM_SIZE_CHECK
+#define WLS_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\nRLC line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define WLS_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
 #ifdef ODU_MEMORY_DEBUG_LOG
 #define WLS_MEM_LOG(_macro, _file, _line, _func, _size, _datPtr)\
 {\
@@ -51,6 +60,7 @@ typedef enum
 /* allocate static buffer from WLS memory */
 #define WLS_MEM_ALLOC(_datPtr, _size)                        \
 {                                                            \
+   WLS_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size);  \
    uint8_t _ret;                                             \
    _ret = SGetSBufWls(0, 0, (Data **)&_datPtr, _size);       \
    if(_ret == ROK)                                           \
index 3baf066..dee6eca 100644 (file)
@@ -203,8 +203,10 @@ uint8_t MacProcCellCfgReq(Pst *pst, MacCellCfg *macCellCfg)
    for(plmnIdx = 0; plmnIdx < MAX_PLMN; plmnIdx++)
    {
       macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices = macCellCfg->cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices;
-      if(macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices ==0)
+
+      if(macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices==0)
          break;
       MAC_ALLOC(macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai, macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.numSupportedSlices\
             * sizeof(Snssai*));
       if(macCb.macCell[cellIdx]->macCellCfg.cellCfg.plmnInfoList[plmnIdx].suppSliceList.snssai == NULLP)
index fea6322..99b07e4 100644 (file)
 #define MAC_MEM_REGION   4
 #define MAC_POOL         1
 
+/* allocate and zero out a static buffer */
+
+#ifdef MEM_SIZE_CHECK
+#define MAC_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\n MAC line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define MAC_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
 #ifdef ODU_MEMORY_DEBUG_LOG
 #define MAC_MEM_LOG(_macro, _file, _line, _func, _size, _datPtr)\
 {\
@@ -36,6 +47,7 @@
 /* allocate and zero out a MAC static buffer */
 #define MAC_ALLOC(_datPtr, _size)                            \
 {                                                            \
+   MAC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size);      \
    uint8_t _ret;                                             \
    _ret = SGetSBuf(MAC_MEM_REGION, MAC_POOL,                 \
         (Data **)&_datPtr, _size);                               \
@@ -66,6 +78,7 @@
  * during inter-layer communication */
 #define MAC_ALLOC_SHRABL_BUF(_buf, _size)                    \
 {                                                            \
+   MAC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size);      \
    if(SGetStaticBuffer(MAC_MEM_REGION, MAC_POOL,             \
            (Data **)&_buf, (Size) _size, 0) == ROK)              \
    {                                                         \
index 5ec43d4..dfdc312 100755 (executable)
@@ -104,6 +104,15 @@ extern "C" {
  *                              Memory related Defines 
  ******************************************************************************/
 /* Allocate function */
+#ifdef MEM_SIZE_CHECK
+#define RLC_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\nRLC line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define RLC_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
 #ifdef ODU_MEMORY_DEBUG_LOG
 #define RLC_MEM_LOG(_macro, _file, _line, _func, _size, _datPtr)\
 {\
@@ -116,6 +125,7 @@ extern "C" {
 
 #define RLC_ALLOC(_cb,_buf, _size)                                    \
 {                                                                    \
+   RLC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
  if (SGetSBuf(_cb->init.region, _cb->init.pool, (Data **)&_buf,      \
                 (Size) _size) == ROK)                                \
    {                                                                 \
@@ -162,6 +172,7 @@ extern "C" {
 
 #define RLC_ALLOC_SHRABL_BUF_WC(_region, _pool,_buf, _size)           \
 {                                                                    \
+   RLC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
    if(SGetStaticBuffer(_region, _pool, (Data **)&_buf,                    \
             (Size) _size, 0)==ROK)                                    \
    {\
@@ -175,6 +186,7 @@ extern "C" {
 
 #define RLC_ALLOC_SHRABL_BUF(_region, _pool,_buf, _size)              \
 {                                                                    \
+   RLC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
  if (SGetStaticBuffer(_region, _pool, (Data **)&_buf,                \
                 (Size) _size, 0) == ROK)                                \
    {                                                                 \
@@ -189,6 +201,7 @@ extern "C" {
 
 #define RLC_ALLOC_WC(_cb,_buf, _size)  \
 {\
+   RLC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
    if(SGetSBuf(_cb->init.region, _cb->init.pool, (Data **)&_buf, (Size) _size) == ROK)\
    {\
       RLC_MEM_LOG("RLC,ALLOC_WC", __FILE__, __LINE__, __FUNCTION__, _size, _buf);\
@@ -270,6 +283,7 @@ extern "C" {
 
 #define RLC_SHRABL_STATIC_BUF_ALLOC(_region, _pool, _buf, _size)     \
 {                                                                        \
+   RLC_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
    SGetStaticBuffer(_region, _pool, (Data **)&_buf,      \
          (Size) _size, 0);                                        \
    RLC_MEM_LOG("RLC,SHRABL_STATIC_BUF_ALLOC", __FILE__, __LINE__, __FUNCTION__, _size, _buf);\
index f2e1437..c47a5ad 100644 (file)
 }
 
 /* allocate and zero out a static buffer */
+#ifdef MEM_SIZE_CHECK
+#define SCH_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\n SCH line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define SCH_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
 #ifdef ODU_MEMORY_DEBUG_LOG
 #define SCH_MEM_LOG(_macro, _file, _line, _func, _size, _datPtr)\
 {\
@@ -60,7 +69,8 @@
 
 #define SCH_ALLOC(_datPtr, _size)                               \
 {                                                               \
-   uint8_t _ret;                                                    \
+   SCH_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size);         \
+   uint8_t _ret;                                                \
    _ret = SGetSBuf(SCH_MEM_REGION, SCH_POOL,                    \
           (Data **)&_datPtr, _size);                             \
    if(_ret == ROK)                                              \
index 4b974c3..c731bad 100644 (file)
 
 #include "common_def.h"
 
+#ifdef MEM_SIZE_CHECK
+#define CM_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\nRLC line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define CM_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
 /*Spec 38.104, Table 5.4.2.1-1 ARFCN - FREQ mapping*/
 /*{  F_REF(Mhz), ΔF_Global, F_REF-Offs, N_REF-offs, Range of N_REF }*/
 uint32_t arfcnFreqTable[3][5] = {
@@ -286,6 +295,7 @@ uint8_t convertSSBPeriodicityToEnum(uint32_t num)
 * ****************************************************************/
 uint8_t SGetSBufNewForDebug(char *file, const char *func, int line, Region region, Pool pool, Data **ptr, Size size)
 {
+   CM_MEMORY_ALLOC_SIZE_LOG(line, func, size);
    if(SGetSBuf(region, pool, ptr, size) == ROK)
    {
 #ifdef ODU_MEMORY_DEBUG_LOG
@@ -354,6 +364,7 @@ uint8_t SPutSBufNewForDebug(char *file, const char *func, int line, Region regio
 uint8_t SGetStaticBufNewForDebug(char *file, const char *func, int line, \
 Region region, Pool pool, Data **ptr, Size size, uint8_t memType)
 {
+   CM_MEMORY_ALLOC_SIZE_LOG(line, func, size);
    if(SGetStaticBuffer(region, pool, ptr, size, memType) == ROK)
    {
 #ifdef ODU_MEMORY_DEBUG_LOG
index 0aa7055..f6ecc11 100644 (file)
@@ -98,7 +98,7 @@
 #define BSR_SR_DELAY_TMR_2560 2560
 
 #define PAGING_SCHED_DELTA  4
-#define MAX_PLMN 2
+#define MAX_PLMN 1
 
 /********************* Global Variable ********************/
 extern uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */
index d6d42b7..63fc020 100644 (file)
 #define DEFAULT_K2_VALUE_FOR_SCS60  2
 #define DEFAULT_K2_VALUE_FOR_SCS120 3 
 
-#define MAX_PLMN 2
+#define MAX_PLMN 1
 #define DL_DMRS_SYMBOL_POS 4 /* Bitmap value 00000000000100 i.e. using 3rd symbol for PDSCH DMRS */
 
 #define MAX_PHR_REPORT 1 /*TODO: Range of PHR reports in multiple PHR.*/
index 282c967..73de05f 100644 (file)
 
 /* allocate and zero out a static buffer */
 
+#ifdef MEM_SIZE_CHECK
+#define DU_APP_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) \
+{\
+   DU_LOG("\n DUAPP line = %d, func = %s, _size= %d ", _line, _func, _size); \
+}
+#else
+#define DU_APP_MEMORY_ALLOC_SIZE_LOG(_line, _func, _size) {}
+#endif
+
+
 #ifdef ODU_MEMORY_DEBUG_LOG
 #define DU_MEM_LOG(_macro, _file, _line, _func, _size, _datPtr)\
 {\
@@ -59,6 +69,7 @@
 
 #define DU_ALLOC(_datPtr, _size)                                \
 {                                                               \
+   DU_APP_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
    int _ret;                                                    \
    _ret = SGetSBuf(DU_APP_MEM_REGION, DU_POOL,                  \
                     (Data **)&_datPtr, _size);                  \
@@ -86,6 +97,7 @@
  * during inter-layer communication */
 #define DU_ALLOC_SHRABL_BUF(_buf, _size)                     \
 {                                                            \
+   DU_APP_MEMORY_ALLOC_SIZE_LOG(__LINE__, __FUNCTION__, _size); \
    if(SGetStaticBuffer(DU_APP_MEM_REGION, DU_POOL,           \
       (Data **)&_buf, (Size) _size, 0) == ROK)               \
    {                                                         \