[ODUHIGH-557][ODUHIGH-649] Crash happened when RX_DATA_IND is received at ODU-HIGH 94/14794/1
authorsvaidhya <svaidhya@radisys.com>
Wed, 6 Aug 2025 11:09:44 +0000 (11:09 +0000)
committersvaidhya <svaidhya@radisys.com>
Wed, 6 Aug 2025 11:09:46 +0000 (11:09 +0000)
Change-Id: Idfbf3f14a16beab482ffd8fefded62139d37b038
Signed-off-by: svaidhya <svaidhya@radisys.com>
src/5gnrmac/lwr_mac_handle_phy.c
src/5gnrmac/mac_demux.c
src/intel_fapi/fapi_interface.h

index d78556d..032ce18 100644 (file)
@@ -384,7 +384,7 @@ uint8_t procRxDataInd(fapi_rx_data_indication_t  *fapiRxDataInd)
 #else
       pdu->handle = reverseBytes32(fapiRxDataInd->pdus[pduIdx].handle);
       pdu->rnti = reverseBytes16(fapiRxDataInd->pdus[pduIdx].rnti);
-      pdu->pduLength = reverseBytes16(fapiRxDataInd->pdus[pduIdx].pdu_length);
+      pdu->pduLength = reverseBytes32(fapiRxDataInd->pdus[pduIdx].pdu_length);
       pdu->timingAdvance = reverseBytes16(fapiRxDataInd->pdus[pduIdx].timingAdvance);
       pdu->rssi = reverseBytes16(fapiRxDataInd->pdus[pduIdx].rssi);
 #endif
@@ -392,10 +392,18 @@ uint8_t procRxDataInd(fapi_rx_data_indication_t  *fapiRxDataInd)
       pdu->ul_cqi = fapiRxDataInd->pdus[pduIdx].ul_cqi;
 
       MAC_ALLOC_SHRABL_BUF(pdu->pduData, pdu->pduLength);
+#ifndef OAI_TESTING
       memcpy(pdu->pduData, fapiRxDataInd->pdus[pduIdx].pduData, pdu->pduLength);
 #ifdef INTEL_WLS_MEM      
       /* Free WLS memory allocated for Rx PDU */
       WLS_MEM_FREE(fapiRxDataInd->pdus[pduIdx].pduData, LWR_MAC_WLS_BUF_SIZE);
+#endif
+#else
+      memcpy(pdu->pduData, &fapiRxDataInd->pdus[pduIdx].pduData, pdu->pduLength);
+      for(int i=0;i<pdu->pduLength;i++)
+      {
+         printf("\n0x%x",(uint8_t *)pdu->pduData[i]);
+      }
 #endif
    }
 
@@ -631,7 +639,7 @@ void procPhyMessages(uint16_t msgType, uint32_t msgSize, void *msg)
 #ifdef CALL_FLOW_DEBUG_LOG 
    callFlowFromPhyToLwrMac(header->msg_id);
 #endif
-   
+
    switch(header->msg_id)
    {
 #ifdef INTEL_TIMER_MODE
index 02b9e11..2575c0d 100644 (file)
@@ -89,6 +89,7 @@ uint8_t unpackRxData(uint16_t cellId, SlotTimingInfo slotInfo, RxDataIndPdu *rxD
       switch(lcId)
       {
          case MAC_LCID_CCCH :
+         case MAC_LCID_CCCH_48BIT :
             {
                pduLen--;
 
@@ -148,35 +149,21 @@ uint8_t unpackRxData(uint16_t cellId, SlotTimingInfo slotInfo, RxDataIndPdu *rxD
 
                break;
             }
-         case MAC_LCID_RESERVED_MIN ... MAC_LCID_RESERVED_MAX :
-            break;
-
-         case MAC_LCID_CCCH_48BIT :
-            break;
 
+         case MAC_LCID_RESERVED_MIN ... MAC_LCID_RESERVED_MAX :
          case MAC_LCID_BIT_RATE_QUERY :
-            break;
-
          case MAC_LCID_MULT_PHR_FOUR_OCT :
-            break;
-
          case MAC_LCID_CFG_GRANT_CFM :
-            break;
-
          case MAC_LCID_MULT_PHR_ONE_OCT:
-            break;
-
          case MAC_LCID_SINGLE_PHR :
-            break;
-
          case MAC_LCID_CRNTI :
-            break;
-
          case MAC_LCID_SHORT_TRUNC_BSR :
-            break;
-
          case MAC_LCID_LONG_TRUNC_BSR :
-            break;
+            {
+               DU_LOG("\nERROR  --> MAC_DEMUX: LCID:%d is not supported yet, Please add the handling in code thus exiting", lcId);
+               pduLen = 0;
+               break;
+            }
 
          case MAC_LCID_SHORT_BSR :
             {
index 3444fce..9edc91e 100644 (file)
@@ -1486,7 +1486,7 @@ typedef struct {
         uint32_t handle;
         uint16_t rnti;
         uint8_t harqId;
-        uint16_t pdu_length;
+        uint32_t pdu_length;
         uint8_t ul_cqi;
         uint16_t timingAdvance;
         uint16_t rssi;