O-CU-UP
[scp/ocu/5gnr.git] / Cu / CuUp / Pdcp / Common / Src / cuupTest.c
diff --git a/Cu/CuUp/Pdcp/Common/Src/cuupTest.c b/Cu/CuUp/Pdcp/Common/Src/cuupTest.c
new file mode 100644 (file)
index 0000000..50c9136
--- /dev/null
@@ -0,0 +1,693 @@
+/******************************************************************************
+###############################################################################
+#   Copyright (c) [2017-2020] [ICT/CAS]                                        #
+#   Licensed under the ORAN Software License v1.0 (License)             #
+###############################################################################
+******************************************************************************/
+#include "cuupTest.h"
+
+INT32 printfPduSessionCfgType(UpcCfgType_e type)
+{
+       VOS_Printf("cfg type : ");
+       switch(type)
+       {
+               case PDU_SESSION_ADD:
+                       VOS_Printf("PDU_SESSION_ADD\n");
+                       break;
+                               
+               case PDU_SESSION_MOD:
+                       VOS_Printf("PDU_SESSION_MOD\n");
+                       break;
+               
+               case PDU_SESSION_DEL:
+                       VOS_Printf("PDU_SESSION_DEL\n");
+                       break;
+                       
+               case DRB_DEL:
+                       VOS_Printf("DRB_DEL\n");
+                       break;
+
+               default:
+                       break;
+       }
+
+       return VOS_OK;
+}
+
+INT32 printfTransLayerAddr(TransLayerAddr_t *pAddr)
+{
+       NULL_CHECK(pAddr);
+
+       VOS_Printf("addr size: %d bytes  ",pAddr->bitStringSize);
+
+       UINT8 i = 0;
+       for(i=0; i<pAddr->bitStringSize; i++)
+       {
+               VOS_Printf("%d ",pAddr->transLayerAddress[i]);
+       }
+       VOS_Printf("\n");
+
+       return VOS_OK;
+}
+
+INT32 printfNguInstance(NguInstance_t *pNguInstance)
+{
+       NULL_CHECK(pNguInstance);
+       VOS_Printf("\n");
+       VOS_Printf("#################################\n");
+       VOS_Printf("     ngu instance parameters     \n");
+       VOS_Printf("#################################\n");
+       VOS_Printf("ueE1apId:     %d\n",pNguInstance->ueE1apId);        
+       VOS_Printf("ueIdx:        %d\n",pNguInstance->ueIdx);   
+       VOS_Printf("pduSessionId: %d\n",pNguInstance->pduSessionId);    
+       VOS_Printf("ownTeid:      0x%08x\n",pNguInstance->ownTeid);
+
+       return VOS_OK;
+}
+
+INT32 printfNguCfgResult(NguCfgResult_t *pCfg)
+{
+       NULL_CHECK(pCfg);
+       VOS_Printf("\n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("     ngu config result    \n");
+       VOS_Printf("##########################\n");
+       printfPduSessionCfgType(pCfg->cfgType);
+       VOS_Printf("pduSessionId: %d\n",pCfg->pduSessionId);
+       VOS_Printf("nggtpuTeid:   0x%08x\n",pCfg->nggtpuTeid);
+       printfTransLayerAddr(&pCfg->nggtpuAddr);
+       VOS_Printf("failureCause: %d\n",pCfg->failureCause);
+
+       return VOS_OK;
+}
+
+
+INT32 printfSecuResult(SecuResult_t *pResult)
+{
+       NULL_CHECK(pResult);
+       
+       if(CP_RESULT_PERFORMED == pResult->confidentialityProtectionResult)
+       {
+               VOS_Printf("cipher is performed\n");
+               
+       }else if(CP_RESULT_NOT_PERFORMED == pResult->confidentialityProtectionResult)
+       {
+               VOS_Printf("cipher is not performed\n");
+               
+       }else
+       {
+               VOS_Printf("ciper result is wrong!\n");
+       }
+       
+       if(IP_RESULT_PERFORMED == pResult->integrityProtectionResult)
+       {
+               VOS_Printf("integrity is performed\n");
+               
+       }else if(IP_RESULT_NOT_PERFORMED == pResult->integrityProtectionResult)
+       {
+               VOS_Printf("integrity is not performed\n");
+               
+       }else
+       {
+               VOS_Printf("integrity result is wrong!\n");
+       }
+
+       return VOS_OK;
+}
+
+INT32 printfPdcpRlcMode(PdcpRlcMode_e mode)
+{
+       if(TM_MODE == mode)
+       {
+               VOS_Printf("rlc mode: TM_MODE\n");
+               
+       }else if(UM_MODE == mode)
+       {
+               VOS_Printf("rlc mode: UM_MODE\n");
+               
+       }else if(AM_MODE == mode)
+       {
+               VOS_Printf("rlc mode: AM_MODE\n");
+
+       }else
+       {
+               VOS_Printf("rlc mode: wrong\n");
+       }
+
+       return VOS_OK;
+}
+
+
+INT32 printfDrbEntity(PdcpDrbEntity_t *pEntity)
+{      
+       NULL_CHECK(pEntity);    
+       VOS_Printf("\n");
+       VOS_Printf("#####################\n");
+       VOS_Printf("    pdcpu entity     \n");  
+       VOS_Printf("#####################\n");
+       VOS_Printf("ueE1apId:      %d\n", pEntity->ueE1apId);
+       VOS_Printf("ueIdx:         %d\n", pEntity->ueIdx);
+       VOS_Printf("pduSessionId:  %d\n", pEntity->pduSessionId);
+       VOS_Printf("drbId:         %d\n", pEntity->drbId);
+       printfPdcpRlcMode(pEntity->rlcMode);
+       VOS_Printf("sdapUlHeadLen: %d\n", pEntity->sdapUlHeadLen);
+       VOS_Printf("sdapDlHeadLen: %d\n", pEntity->sdapDlHeadLen);
+       VOS_Printf("pdcpSnSizeUl:  %d bits\n", pEntity->pdcpSnSizeUl);
+       VOS_Printf("pdcpSnSizeDl:  %d bits\n", pEntity->pdcpSnSizeDl);
+
+       if(pEntity->tDiscardActive)
+       {
+               VOS_Printf("discard timer is active, ");
+       }else
+       {
+               VOS_Printf("discard timer is not active, ");
+       }
+       
+       if(pEntity->tDiscardRun)
+       {
+               VOS_Printf("running, ");
+       }else
+       {
+               VOS_Printf("not running, ");
+       }
+       
+       VOS_Printf("period:%d ms\n", pEntity->tDiscard);
+       
+       if(pEntity->tReorderActive)
+       {
+               VOS_Printf("reorder timer is active, ");
+       }else
+       {
+               VOS_Printf("reorder timer is not active, ");
+       }
+       
+       if(pEntity->tReorderRun)
+       {
+               VOS_Printf("running, ");
+       }else
+       {
+               VOS_Printf("not running, ");
+       }
+       
+       VOS_Printf("period:%d ms\n", pEntity->tReorder);
+
+       if(TRUE == pEntity->integrityProtection)
+       {
+               VOS_Printf("integrityProtection: enabled\n");
+               
+       }else if(FALSE == pEntity->integrityProtection)
+       {
+               VOS_Printf("integrityProtection: disabled\n");
+       }else
+       {
+               vos_err_print("integrityProtection: enable flag is wrong\n");
+       }
+
+       if(TRUE == pEntity->ciperingEnabled)
+       {
+               VOS_Printf("cipher: enabled\n");
+               
+       }else if(FALSE == pEntity->ciperingEnabled)
+       {
+               VOS_Printf("cipher: disabled\n");
+       }else
+       {
+               vos_err_print("cipher: enable flag is wrong\n");
+       }
+
+       if(TRUE == pEntity->outOfOrderDelivery)
+       {
+               VOS_Printf("outOfOrderDelivery: enabled\n");
+               
+       }else
+       {
+               VOS_Printf("outOfOrderDelivery: disabled\n");
+       }
+
+       if(TRUE == pEntity->headerCompress.notUsed)
+       {
+               VOS_Printf("headerCompress: not used\n");
+               
+       }else
+       {
+               VOS_Printf("headerCompress: used\n");
+       }
+       
+       VOS_Printf("stateVar.rxCount:    %d\n", pEntity->stateVar.rxCount);
+       VOS_Printf("stateVar.txNext:     %d\n", pEntity->stateVar.txNext);
+       VOS_Printf("stateVar.rxDelivery: %d\n", pEntity->stateVar.rxDelivery);
+       VOS_Printf("stateVar.rxNext:     %d\n", pEntity->stateVar.rxNext);
+       VOS_Printf("stateVar.rxReorder:  %d\n", pEntity->stateVar.rxReorder);
+
+       return VOS_OK;
+}
+
+INT32 printfDrbFailedCause(DrbFailedCause_t *p)
+{
+       VOS_Printf("drb id: %d, failed cause: %d\n", p->drbId, p->cause);
+
+       return VOS_OK;
+}
+
+INT32 printfPdcpuCfgResult(PdcpuCfgResult_t *pResult)
+{
+       UINT8 i = 0;
+       
+       NULL_CHECK(pResult);
+       VOS_Printf("\n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("     pdcpu cfg result     \n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("pdu Session Id: %d\n", pResult->pduSessionId);
+       printfPduSessionCfgType(pResult->cfgType);
+
+       if(pResult->secResPresent)
+       {
+               VOS_Printf("there is security result\n");
+               printfSecuResult(&pResult->secuResult);
+       }else
+       {
+               VOS_Printf("there is no security result\n");
+       }
+       
+       VOS_Printf("drbSetupSuccessNum: %d\ndrb id list: ", pResult->drbSetupSuccessNum);
+       for(i=0; i<pResult->drbSetupSuccessNum; i++)
+       {
+               VOS_Printf("%d ", pResult->drbSetupSuccessArray[i]);
+       }
+       
+       VOS_Printf("\ndrbSetupFailNum: %d\ndrb id list: ", pResult->drbSetupFailNum);
+       for(i=0; i<pResult->drbSetupFailNum; i++)
+       {
+               printfDrbFailedCause(&pResult->drbSetupFailedArray[i]);
+       }
+
+       VOS_Printf("\ndrbModifySuccessNum: %d\ndrb id list: ", pResult->drbModifySuccessNum);
+       for(i=0; i<pResult->drbModifySuccessNum; i++)
+       {
+               VOS_Printf("%d ", pResult->drbModifySuccessArray[i]);
+       }
+       
+       VOS_Printf("\ndrbModifyFailNum: %d\ndrb id list: ", pResult->drbModifyFailNum);
+       for(i=0; i<pResult->drbModifyFailNum; i++)
+       {
+               printfDrbFailedCause(&pResult->drbModifyFailedArray[i]);
+       }
+       VOS_Printf("\n");
+       
+       return VOS_OK;
+}
+
+
+INT32 printfCuf1uInstance(Cuf1uInstance_t *pF1u)
+{
+       NULL_CHECK(pF1u);
+       VOS_Printf("\n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("     cuf1u instance     \n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("ueE1apId:     %d\n", pF1u->ueE1apId);
+       VOS_Printf("ueIdx:            %d\n", pF1u->ueIdx);
+       VOS_Printf("pduSessionId: %d\n", pF1u->pduSessionId);
+       VOS_Printf("drbId:        %d\n", pF1u->drbId);
+       if(LEN_12_BITS == pF1u->pdcpSnSize)
+       {
+               VOS_Printf("pdcpSnSize:   12 bits\n", pF1u->pdcpSnSize);
+               
+       }else if(LEN_18_BITS == pF1u->pdcpSnSize)
+       {
+               VOS_Printf("pdcpSnSize:   18 bits\n", pF1u->pdcpSnSize);
+               
+       }else{
+               VOS_Printf("pdcpSnSize: wrong!\n");
+       }
+               
+       VOS_Printf("ownTeid:      0X%08X\n", pF1u->ownTeid);
+       VOS_Printf("nextSubmitSn: %d\n", pF1u->nextSubmitSn);
+
+       return VOS_OK;
+}
+
+INT32 printfCuf1uSetupInfo(Cuf1uSetupInfo_t *pInfo)
+{
+       NULL_CHECK(pInfo);
+
+       VOS_Printf("setup info-->drbId: %02x\n", pInfo->drbId);
+       VOS_Printf("setup info-->f1gtpuTeid: %08x\n", pInfo->f1gtpuTeid);
+       VOS_Printf("setup info-->");
+       printfTransLayerAddr(&pInfo->gtpuAddr);
+
+       return VOS_OK;
+}
+
+
+INT32 printfCuf1uCfgResult(Cuf1uCfgResult_t *pResult)
+{
+       UINT8 i = 0;
+       
+       NULL_CHECK(pResult);
+       VOS_Printf("\n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("     cuf1u cfg result         \n");
+       VOS_Printf("##########################\n");
+       VOS_Printf("pdu Session Id: %d\n", pResult->pduSessionId);
+       printfPduSessionCfgType(pResult->cfgType);
+       
+       VOS_Printf("drbSetupSuccessNum: %d\ndrb id list:", pResult->drbSetupSuccessNum);
+       for(i=0; i<pResult->drbSetupSuccessNum; i++)
+       {
+               printfCuf1uSetupInfo(&pResult->drbSetupSuccessArray[i]);
+       }
+       
+       VOS_Printf("\ndrbSetupFailNum: %d\n", pResult->drbSetupFailNum);
+       for(i=0; i<pResult->drbSetupFailNum; i++)
+       {
+               printfDrbFailedCause(&pResult->drbSetupFailedArray[i]);
+       }
+
+       VOS_Printf("\ndrbModifySuccessNum: %d\n", pResult->drbModifySuccessNum);
+       for(i=0; i<pResult->drbModifySuccessNum; i++)
+       {
+               VOS_Printf("%d ", pResult->drbModifySuccessArray[i]);
+       }
+       
+       VOS_Printf("\ndrbModifyFailNum: %d\n", pResult->drbModifyFailNum);
+       for(i=0; i<pResult->drbModifyFailNum; i++)
+       {
+               printfDrbFailedCause(&pResult->drbModifyFailedArray[i]);
+       }
+
+       VOS_Printf("pduSessionFailCause: %d\n",pResult->pduSessionCause);
+       
+       return VOS_OK;
+}
+
+INT32 printfPdcpuSecInfo(PdcpuSecInfo_t *pSec)
+{
+       NULL_CHECK(pSec);
+       
+       UINT8 i = 0;
+       
+       VOS_Printf("\n");
+       VOS_Printf("#################################################\n");
+       VOS_Printf("     pdcpu set security info successful       \n");
+       VOS_Printf("#################################################\n");
+       VOS_Printf("ueE1apId: 0X%x\n",pSec->ueE1apId);
+       VOS_Printf("ueIdx: 0X%04x\n",pSec->ueIdx);
+
+       VOS_Printf("kUpEnc:");
+       for(i=0; i<4; i++)
+       {
+               VOS_Printf("%08x ",pSec->kUpEnc[i]);
+       }
+       VOS_Printf("\n");
+       
+       VOS_Printf("kUpInt:");
+       for(i=0; i<4; i++)
+       {
+               VOS_Printf("%08x ",pSec->kUpInt[i]);
+       }
+       VOS_Printf("\n");
+       
+       /*VOS_Printf("nh:");
+       for(i=0; i<8; i++)
+       {
+               VOS_Printf("%08x ",pSec->nh[i]);
+       }
+       VOS_Printf("\n");
+       
+       VOS_Printf("ncc: 0X%02x\n",pSec->ncc);*/
+
+       //打印加密算法
+       if(NEA0 == pSec->encAlgorithm)
+       {
+               VOS_Printf("encAlgorithm: NEA0\n");
+               
+       }else if(NEA1 == pSec->encAlgorithm)
+       {
+               VOS_Printf("encAlgorithm: NEA1\n");
+               
+       }else if(NEA2 == pSec->encAlgorithm)
+       {
+               VOS_Printf("encAlgorithm: NEA2\n");
+               
+       }else
+       {
+               VOS_Printf("encAlgorithm: %d error!\n",pSec->encAlgorithm);
+       }
+       
+       //打印完保算法
+       if(NIA0 == pSec->intAlgorithm)
+       {
+               VOS_Printf("intAlgorithm: NIA0\n");
+               
+       }else if(NIA1 == pSec->intAlgorithm)
+       {
+               VOS_Printf("intAlgorithm: NIA1\n");
+               
+       }else if(NIA2 == pSec->intAlgorithm)
+       {
+               VOS_Printf("intAlgorithm: NIA2\n");
+               
+       }else
+       {
+               VOS_Printf("intAlgorithm: %d error!\n",pSec->intAlgorithm);
+       }
+       
+       //打印加密是否激活
+       if(0 == pSec->encActiveFlag)
+       {
+               VOS_Printf("enc status: inactive\n");
+       }else
+       {
+               VOS_Printf("enc status: active\n");
+       }
+
+       //打印完保是否激活
+       if(0 == pSec->intActiveFlag)
+       {
+               VOS_Printf("int status: inactive\n");
+       }else
+       {
+               VOS_Printf("int status: active\n");
+       }
+       
+       if(0 == pSec->nhInd)
+       {
+               VOS_Printf("nhInd: not exist\n");
+       }else
+       {
+               VOS_Printf("nhInd: exist\n");
+       }
+
+       return VOS_OK;
+}
+
+INT32 printfVosSockAddr(vos_sockaddr_t *pAddr)
+{
+       NULL_CHECK(pAddr);
+       
+       UINT8 *temp = NULL;
+       UINT8 i = 0;
+
+       if(AF_INET == pAddr->sa.sa_family)
+       {
+               VOS_Printf("IP type : IPV4\n");
+               VOS_Printf("IP addr : ");
+               for(i=0; i<4; i++)
+               {
+                       temp = (UINT8 *)&pAddr->sin.sin_addr + i;
+                       VOS_Printf("%d ",*temp);
+               }
+               VOS_Printf("\n");
+       }else if(AF_INET6 == pAddr->sa.sa_family)
+       {
+               VOS_Printf("IP type : IPV6\n");
+               VOS_Printf("IP addr : ");
+               for(i=0; i<16; i++)
+               {
+                       temp = (UINT8 *)&pAddr->sin6.sin6_addr + i;
+                       VOS_Printf("%d ",*temp);
+               }
+               VOS_Printf("\n");
+       }else
+       {
+               VOS_Printf("addr type is wrong!\n");
+       }
+
+       return VOS_OK;
+}
+
+INT32 printfTun(Tun_t *pTun)
+{
+       NULL_CHECK(pTun);
+       
+       VOS_Printf("\n");
+       VOS_Printf("##############################\n");
+       VOS_Printf("           tunnel info            \n");
+       VOS_Printf("##############################\n");
+
+       if(0 == pTun->tunState)
+       {
+               VOS_Printf("tun state is inactive\n");
+       }else
+       {
+               VOS_Printf("tun state is active\n");
+       }
+
+       VOS_Printf("seq: %d\n",pTun->seq);
+       VOS_Printf("tunId:   0x%08x\n",pTun->tunId);
+       VOS_Printf("ownTeid: 0x%08x\n",pTun->ownTeid);
+       VOS_Printf("remTeid: 0x%08x\n",pTun->remTeid);
+       printfVosSockAddr(&pTun->tunOpval.addr);
+
+       return VOS_OK;
+}
+
+INT32 printfPdcpuSecEnableInfo(PdcpuSecEnableInfo_t *pInfo)
+{
+       NULL_CHECK(pInfo);
+
+       VOS_Printf("\n");
+       VOS_Printf("######################################\n");
+       VOS_Printf("           security enable info           \n");
+       VOS_Printf("######################################\n"); 
+       VOS_Printf("pduSessionId: %d\n",pInfo->pduSessionId);
+
+       //加密
+       if(TRUE == pInfo->cipherEnableFlag)
+       {
+               VOS_Printf("cipher : enabled\n");
+       }else
+       {
+               VOS_Printf("cipher : disabled\n");
+       }
+
+       //完整性保护
+       if(TRUE == pInfo->integrityEnableFlag)
+       {
+               VOS_Printf("integrity : enabled\n");
+       }else
+       {
+               VOS_Printf("integrity : disabled\n");
+       }
+
+       //完保速率
+       VOS_Printf("maxIPDataRate: %d\n",pInfo->maxIPDataRate);
+
+       return VOS_OK;
+}
+
+INT32 printfCuupUeIdxTable(CuupUeIdxTable_t *pTable)
+{
+       UINT8 i = 0;
+       VOS_Printf("0 is used, 1 is not used, else is wrong\n");
+       for(i=0; i<MAX_UE_NUM; i++)
+       {
+               VOS_Printf("i is %d  ",i);
+               VOS_Printf("usedFlag: %d  ",pTable->ueIdxInfo[i].isUsed);
+               VOS_Printf("ueE1apId: %d  ",pTable->ueIdxInfo[i].ueE1apId);
+               VOS_Printf("ueIdx:    %04x\n",pTable->ueIdxInfo[i].ueIdx);
+       }
+       VOS_Printf("at end i = %d\n",i);
+
+       return VOS_OK;
+}
+
+INT32 printfMsgbBuff(MsgbBuff_t *pMsgBuff)
+{
+       NULL_CHECK(pMsgBuff);
+       
+       UINT8 *pMsgHead = msgbData(pMsgBuff);
+       UINT32 pduLen = msgbDataUsedLen(pMsgBuff);
+       
+       /*VOS_Printf("msgb maxDataLen:%d maxHeadLen:%d headSpareLen:%d tailOffset:%d ",
+               pMsgBuff->msgbInfo.maxDataLen,
+               pMsgBuff->msgbInfo.maxHeadLen,
+               pMsgBuff->msgbInfo.headSpareLen,
+               pMsgBuff->msgbInfo.tailOffset);*/
+
+       VOS_Printf(VOS_COLOR_BLUE"data len:%d\n"VOS_COLOR_NONE,pduLen);
+
+       UINT32 j = 0;
+       for(j=0; j<pduLen; j++)
+       {
+               VOS_Printf("%02x ",*(pMsgHead+j));
+       }
+       VOS_Printf("\n");
+       
+       return VOS_OK;
+}
+
+INT32 printfExPduInfo(ExPduInfo_t *pPdu)
+{      
+       NULL_CHECK(pPdu);
+       
+       VOS_Printf("exHdrLen:%d Byteslen:%d exHdrType:0x%02x\n",
+                               pPdu->exHdrLen,pPdu->len,pPdu->exHdrType);
+       
+       UINT8 i = 0;
+       for(i=0; i<pPdu->len; i++)
+       {
+               VOS_Printf("%02x ",*((UINT8 *)(pPdu->pPdu)+i));
+       }
+       VOS_Printf("\n");
+       
+       return VOS_OK;
+}
+
+INT32 printfSdapNewInstance(SdapGlobalDtat_t *pGlobalData)
+{
+       VOS_Printf("\n**sdapCreateNewInstance**\n");
+       VOS_Printf("upE1apId:%d\n",pGlobalData->upE1apId);
+       VOS_Printf("sessNum:%d\n",pGlobalData->sessNum);
+       UINT8 i = 0;
+       UINT8 m = 0;
+       UINT8 n = 0;
+       VOS_Printf("sessId list:");
+       for(i=0; i<pGlobalData->sessNum; i++)
+       {
+               VOS_Printf("%d,",pGlobalData->sessId[i]);
+       }
+       VOS_Printf("\n");
+       
+       UINT8 pduId = 0;
+       for(i=0; i<pGlobalData->sessNum; i++)
+       {       
+               pduId = pGlobalData->sessId[i];
+               VOS_Printf("i:%d, sessId:%d, sessNum:%d\n",i,pduId,pGlobalData->sessNum);
+               VOS_Printf("drbNum:%d\n",pGlobalData->sdapInstance[pduId].drbNum);
+               VOS_Printf("drbId list:");      
+               for(m=0; m<pGlobalData->sdapInstance[pduId].drbNum; m++)
+               {
+                       VOS_Printf("%d,",pGlobalData->sdapInstance[pduId].drbId[m]);
+               }
+               VOS_Printf("\n");
+               
+               VOS_Printf("\n******drbCfg*******\n");
+
+               UINT8 j=0;
+               UINT8 drbId = 0;
+               UINT8 qfiNum = 0;
+               for(n=0; n<pGlobalData->sdapInstance[pduId].drbNum; n++)
+               {
+                       drbId = pGlobalData->sdapInstance[pduId].drbId[n];
+                       VOS_Printf("drbId:%d \n",drbId);
+                       VOS_Printf("drbCfg.drbId:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].drbId);
+                       VOS_Printf("drbCfg.sdapUlHead:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.sdapUlHeaderInd);
+                       VOS_Printf("drbCfg.sdapDlHead:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.sdapDlHeaderInd);
+                       VOS_Printf("drbCfg.defaultDrbInd:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.defaultDrbInd);
+                       qfiNum = pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].qfiNum;
+                       VOS_Printf("drbCfg.qfiNum:%d\nqfi list:",qfiNum);
+                       for(j=0; j<qfiNum; j++)
+                       {
+                               VOS_Printf("%d ",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].qfi[j]);
+                       }
+                       VOS_Printf("\n");
+               }
+       }
+
+       return VOS_OK;
+}
+
+