50c91363c6ec300de5c80a0f6ebf30f252884b04
[scp/ocu/5gnr.git] / Cu / CuUp / Pdcp / Common / Src / cuupTest.c
1 /******************************************************************************
2 ###############################################################################
3 #   Copyright (c) [2017-2020] [ICT/CAS]                                        #
4 #   Licensed under the ORAN Software License v1.0 (License)             #
5 ###############################################################################
6 ******************************************************************************/
7 #include "cuupTest.h"
8
9 INT32 printfPduSessionCfgType(UpcCfgType_e type)
10 {
11         VOS_Printf("cfg type : ");
12         switch(type)
13         {
14                 case PDU_SESSION_ADD:
15                         VOS_Printf("PDU_SESSION_ADD\n");
16                         break;
17                                 
18                 case PDU_SESSION_MOD:
19                         VOS_Printf("PDU_SESSION_MOD\n");
20                         break;
21                 
22                 case PDU_SESSION_DEL:
23                         VOS_Printf("PDU_SESSION_DEL\n");
24                         break;
25                         
26                 case DRB_DEL:
27                         VOS_Printf("DRB_DEL\n");
28                         break;
29
30                 default:
31                         break;
32         }
33
34         return VOS_OK;
35 }
36
37 INT32 printfTransLayerAddr(TransLayerAddr_t *pAddr)
38 {
39         NULL_CHECK(pAddr);
40
41         VOS_Printf("addr size: %d bytes  ",pAddr->bitStringSize);
42
43         UINT8 i = 0;
44         for(i=0; i<pAddr->bitStringSize; i++)
45         {
46                 VOS_Printf("%d ",pAddr->transLayerAddress[i]);
47         }
48         VOS_Printf("\n");
49
50         return VOS_OK;
51 }
52
53 INT32 printfNguInstance(NguInstance_t *pNguInstance)
54 {
55         NULL_CHECK(pNguInstance);
56         VOS_Printf("\n");
57         VOS_Printf("#################################\n");
58         VOS_Printf("     ngu instance parameters     \n");
59         VOS_Printf("#################################\n");
60         VOS_Printf("ueE1apId:     %d\n",pNguInstance->ueE1apId);        
61         VOS_Printf("ueIdx:        %d\n",pNguInstance->ueIdx);   
62         VOS_Printf("pduSessionId: %d\n",pNguInstance->pduSessionId);    
63         VOS_Printf("ownTeid:      0x%08x\n",pNguInstance->ownTeid);
64
65         return VOS_OK;
66 }
67
68 INT32 printfNguCfgResult(NguCfgResult_t *pCfg)
69 {
70         NULL_CHECK(pCfg);
71         VOS_Printf("\n");
72         VOS_Printf("##########################\n");
73         VOS_Printf("     ngu config result    \n");
74         VOS_Printf("##########################\n");
75         printfPduSessionCfgType(pCfg->cfgType);
76         VOS_Printf("pduSessionId: %d\n",pCfg->pduSessionId);
77         VOS_Printf("nggtpuTeid:   0x%08x\n",pCfg->nggtpuTeid);
78         printfTransLayerAddr(&pCfg->nggtpuAddr);
79         VOS_Printf("failureCause: %d\n",pCfg->failureCause);
80
81         return VOS_OK;
82 }
83
84
85 INT32 printfSecuResult(SecuResult_t *pResult)
86 {
87         NULL_CHECK(pResult);
88         
89         if(CP_RESULT_PERFORMED == pResult->confidentialityProtectionResult)
90         {
91                 VOS_Printf("cipher is performed\n");
92                 
93         }else if(CP_RESULT_NOT_PERFORMED == pResult->confidentialityProtectionResult)
94         {
95                 VOS_Printf("cipher is not performed\n");
96                 
97         }else
98         {
99                 VOS_Printf("ciper result is wrong!\n");
100         }
101         
102         if(IP_RESULT_PERFORMED == pResult->integrityProtectionResult)
103         {
104                 VOS_Printf("integrity is performed\n");
105                 
106         }else if(IP_RESULT_NOT_PERFORMED == pResult->integrityProtectionResult)
107         {
108                 VOS_Printf("integrity is not performed\n");
109                 
110         }else
111         {
112                 VOS_Printf("integrity result is wrong!\n");
113         }
114
115         return VOS_OK;
116 }
117
118 INT32 printfPdcpRlcMode(PdcpRlcMode_e mode)
119 {
120         if(TM_MODE == mode)
121         {
122                 VOS_Printf("rlc mode: TM_MODE\n");
123                 
124         }else if(UM_MODE == mode)
125         {
126                 VOS_Printf("rlc mode: UM_MODE\n");
127                 
128         }else if(AM_MODE == mode)
129         {
130                 VOS_Printf("rlc mode: AM_MODE\n");
131
132         }else
133         {
134                 VOS_Printf("rlc mode: wrong\n");
135         }
136
137         return VOS_OK;
138 }
139
140
141 INT32 printfDrbEntity(PdcpDrbEntity_t *pEntity)
142 {       
143         NULL_CHECK(pEntity);    
144         VOS_Printf("\n");
145         VOS_Printf("#####################\n");
146         VOS_Printf("    pdcpu entity     \n");  
147         VOS_Printf("#####################\n");
148         VOS_Printf("ueE1apId:      %d\n", pEntity->ueE1apId);
149         VOS_Printf("ueIdx:         %d\n", pEntity->ueIdx);
150         VOS_Printf("pduSessionId:  %d\n", pEntity->pduSessionId);
151         VOS_Printf("drbId:         %d\n", pEntity->drbId);
152         printfPdcpRlcMode(pEntity->rlcMode);
153         VOS_Printf("sdapUlHeadLen: %d\n", pEntity->sdapUlHeadLen);
154         VOS_Printf("sdapDlHeadLen: %d\n", pEntity->sdapDlHeadLen);
155         VOS_Printf("pdcpSnSizeUl:  %d bits\n", pEntity->pdcpSnSizeUl);
156         VOS_Printf("pdcpSnSizeDl:  %d bits\n", pEntity->pdcpSnSizeDl);
157
158         if(pEntity->tDiscardActive)
159         {
160                 VOS_Printf("discard timer is active, ");
161         }else
162         {
163                 VOS_Printf("discard timer is not active, ");
164         }
165         
166         if(pEntity->tDiscardRun)
167         {
168                 VOS_Printf("running, ");
169         }else
170         {
171                 VOS_Printf("not running, ");
172         }
173         
174         VOS_Printf("period:%d ms\n", pEntity->tDiscard);
175         
176         if(pEntity->tReorderActive)
177         {
178                 VOS_Printf("reorder timer is active, ");
179         }else
180         {
181                 VOS_Printf("reorder timer is not active, ");
182         }
183         
184         if(pEntity->tReorderRun)
185         {
186                 VOS_Printf("running, ");
187         }else
188         {
189                 VOS_Printf("not running, ");
190         }
191         
192         VOS_Printf("period:%d ms\n", pEntity->tReorder);
193
194         if(TRUE == pEntity->integrityProtection)
195         {
196                 VOS_Printf("integrityProtection: enabled\n");
197                 
198         }else if(FALSE == pEntity->integrityProtection)
199         {
200                 VOS_Printf("integrityProtection: disabled\n");
201         }else
202         {
203                 vos_err_print("integrityProtection: enable flag is wrong\n");
204         }
205
206         if(TRUE == pEntity->ciperingEnabled)
207         {
208                 VOS_Printf("cipher: enabled\n");
209                 
210         }else if(FALSE == pEntity->ciperingEnabled)
211         {
212                 VOS_Printf("cipher: disabled\n");
213         }else
214         {
215                 vos_err_print("cipher: enable flag is wrong\n");
216         }
217
218         if(TRUE == pEntity->outOfOrderDelivery)
219         {
220                 VOS_Printf("outOfOrderDelivery: enabled\n");
221                 
222         }else
223         {
224                 VOS_Printf("outOfOrderDelivery: disabled\n");
225         }
226
227         if(TRUE == pEntity->headerCompress.notUsed)
228         {
229                 VOS_Printf("headerCompress: not used\n");
230                 
231         }else
232         {
233                 VOS_Printf("headerCompress: used\n");
234         }
235         
236         VOS_Printf("stateVar.rxCount:    %d\n", pEntity->stateVar.rxCount);
237         VOS_Printf("stateVar.txNext:     %d\n", pEntity->stateVar.txNext);
238         VOS_Printf("stateVar.rxDelivery: %d\n", pEntity->stateVar.rxDelivery);
239         VOS_Printf("stateVar.rxNext:     %d\n", pEntity->stateVar.rxNext);
240         VOS_Printf("stateVar.rxReorder:  %d\n", pEntity->stateVar.rxReorder);
241
242         return VOS_OK;
243 }
244
245 INT32 printfDrbFailedCause(DrbFailedCause_t *p)
246 {
247         VOS_Printf("drb id: %d, failed cause: %d\n", p->drbId, p->cause);
248
249         return VOS_OK;
250 }
251
252 INT32 printfPdcpuCfgResult(PdcpuCfgResult_t *pResult)
253 {
254         UINT8 i = 0;
255         
256         NULL_CHECK(pResult);
257         VOS_Printf("\n");
258         VOS_Printf("##########################\n");
259         VOS_Printf("     pdcpu cfg result     \n");
260         VOS_Printf("##########################\n");
261         VOS_Printf("pdu Session Id: %d\n", pResult->pduSessionId);
262         printfPduSessionCfgType(pResult->cfgType);
263
264         if(pResult->secResPresent)
265         {
266                 VOS_Printf("there is security result\n");
267                 printfSecuResult(&pResult->secuResult);
268         }else
269         {
270                 VOS_Printf("there is no security result\n");
271         }
272         
273         VOS_Printf("drbSetupSuccessNum: %d\ndrb id list: ", pResult->drbSetupSuccessNum);
274         for(i=0; i<pResult->drbSetupSuccessNum; i++)
275         {
276                 VOS_Printf("%d ", pResult->drbSetupSuccessArray[i]);
277         }
278         
279         VOS_Printf("\ndrbSetupFailNum: %d\ndrb id list: ", pResult->drbSetupFailNum);
280         for(i=0; i<pResult->drbSetupFailNum; i++)
281         {
282                 printfDrbFailedCause(&pResult->drbSetupFailedArray[i]);
283         }
284
285         VOS_Printf("\ndrbModifySuccessNum: %d\ndrb id list: ", pResult->drbModifySuccessNum);
286         for(i=0; i<pResult->drbModifySuccessNum; i++)
287         {
288                 VOS_Printf("%d ", pResult->drbModifySuccessArray[i]);
289         }
290         
291         VOS_Printf("\ndrbModifyFailNum: %d\ndrb id list: ", pResult->drbModifyFailNum);
292         for(i=0; i<pResult->drbModifyFailNum; i++)
293         {
294                 printfDrbFailedCause(&pResult->drbModifyFailedArray[i]);
295         }
296         VOS_Printf("\n");
297         
298         return VOS_OK;
299 }
300
301
302 INT32 printfCuf1uInstance(Cuf1uInstance_t *pF1u)
303 {
304         NULL_CHECK(pF1u);
305         VOS_Printf("\n");
306         VOS_Printf("##########################\n");
307         VOS_Printf("     cuf1u instance     \n");
308         VOS_Printf("##########################\n");
309         VOS_Printf("ueE1apId:     %d\n", pF1u->ueE1apId);
310         VOS_Printf("ueIdx:            %d\n", pF1u->ueIdx);
311         VOS_Printf("pduSessionId: %d\n", pF1u->pduSessionId);
312         VOS_Printf("drbId:        %d\n", pF1u->drbId);
313         if(LEN_12_BITS == pF1u->pdcpSnSize)
314         {
315                 VOS_Printf("pdcpSnSize:   12 bits\n", pF1u->pdcpSnSize);
316                 
317         }else if(LEN_18_BITS == pF1u->pdcpSnSize)
318         {
319                 VOS_Printf("pdcpSnSize:   18 bits\n", pF1u->pdcpSnSize);
320                 
321         }else{
322                 VOS_Printf("pdcpSnSize: wrong!\n");
323         }
324                 
325         VOS_Printf("ownTeid:      0X%08X\n", pF1u->ownTeid);
326         VOS_Printf("nextSubmitSn: %d\n", pF1u->nextSubmitSn);
327
328         return VOS_OK;
329 }
330
331 INT32 printfCuf1uSetupInfo(Cuf1uSetupInfo_t *pInfo)
332 {
333         NULL_CHECK(pInfo);
334
335         VOS_Printf("setup info-->drbId: %02x\n", pInfo->drbId);
336         VOS_Printf("setup info-->f1gtpuTeid: %08x\n", pInfo->f1gtpuTeid);
337         VOS_Printf("setup info-->");
338         printfTransLayerAddr(&pInfo->gtpuAddr);
339
340         return VOS_OK;
341 }
342
343
344 INT32 printfCuf1uCfgResult(Cuf1uCfgResult_t *pResult)
345 {
346         UINT8 i = 0;
347         
348         NULL_CHECK(pResult);
349         VOS_Printf("\n");
350         VOS_Printf("##########################\n");
351         VOS_Printf("     cuf1u cfg result         \n");
352         VOS_Printf("##########################\n");
353         VOS_Printf("pdu Session Id: %d\n", pResult->pduSessionId);
354         printfPduSessionCfgType(pResult->cfgType);
355         
356         VOS_Printf("drbSetupSuccessNum: %d\ndrb id list:", pResult->drbSetupSuccessNum);
357         for(i=0; i<pResult->drbSetupSuccessNum; i++)
358         {
359                 printfCuf1uSetupInfo(&pResult->drbSetupSuccessArray[i]);
360         }
361         
362         VOS_Printf("\ndrbSetupFailNum: %d\n", pResult->drbSetupFailNum);
363         for(i=0; i<pResult->drbSetupFailNum; i++)
364         {
365                 printfDrbFailedCause(&pResult->drbSetupFailedArray[i]);
366         }
367
368         VOS_Printf("\ndrbModifySuccessNum: %d\n", pResult->drbModifySuccessNum);
369         for(i=0; i<pResult->drbModifySuccessNum; i++)
370         {
371                 VOS_Printf("%d ", pResult->drbModifySuccessArray[i]);
372         }
373         
374         VOS_Printf("\ndrbModifyFailNum: %d\n", pResult->drbModifyFailNum);
375         for(i=0; i<pResult->drbModifyFailNum; i++)
376         {
377                 printfDrbFailedCause(&pResult->drbModifyFailedArray[i]);
378         }
379
380         VOS_Printf("pduSessionFailCause: %d\n",pResult->pduSessionCause);
381         
382         return VOS_OK;
383 }
384
385 INT32 printfPdcpuSecInfo(PdcpuSecInfo_t *pSec)
386 {
387         NULL_CHECK(pSec);
388         
389         UINT8 i = 0;
390         
391         VOS_Printf("\n");
392         VOS_Printf("#################################################\n");
393         VOS_Printf("     pdcpu set security info successful       \n");
394         VOS_Printf("#################################################\n");
395         VOS_Printf("ueE1apId: 0X%x\n",pSec->ueE1apId);
396         VOS_Printf("ueIdx: 0X%04x\n",pSec->ueIdx);
397
398         VOS_Printf("kUpEnc:");
399         for(i=0; i<4; i++)
400         {
401                 VOS_Printf("%08x ",pSec->kUpEnc[i]);
402         }
403         VOS_Printf("\n");
404         
405         VOS_Printf("kUpInt:");
406         for(i=0; i<4; i++)
407         {
408                 VOS_Printf("%08x ",pSec->kUpInt[i]);
409         }
410         VOS_Printf("\n");
411         
412         /*VOS_Printf("nh:");
413         for(i=0; i<8; i++)
414         {
415                 VOS_Printf("%08x ",pSec->nh[i]);
416         }
417         VOS_Printf("\n");
418         
419         VOS_Printf("ncc: 0X%02x\n",pSec->ncc);*/
420
421         //打印加密算法
422         if(NEA0 == pSec->encAlgorithm)
423         {
424                 VOS_Printf("encAlgorithm: NEA0\n");
425                 
426         }else if(NEA1 == pSec->encAlgorithm)
427         {
428                 VOS_Printf("encAlgorithm: NEA1\n");
429                 
430         }else if(NEA2 == pSec->encAlgorithm)
431         {
432                 VOS_Printf("encAlgorithm: NEA2\n");
433                 
434         }else
435         {
436                 VOS_Printf("encAlgorithm: %d error!\n",pSec->encAlgorithm);
437         }
438         
439         //打印完保算法
440         if(NIA0 == pSec->intAlgorithm)
441         {
442                 VOS_Printf("intAlgorithm: NIA0\n");
443                 
444         }else if(NIA1 == pSec->intAlgorithm)
445         {
446                 VOS_Printf("intAlgorithm: NIA1\n");
447                 
448         }else if(NIA2 == pSec->intAlgorithm)
449         {
450                 VOS_Printf("intAlgorithm: NIA2\n");
451                 
452         }else
453         {
454                 VOS_Printf("intAlgorithm: %d error!\n",pSec->intAlgorithm);
455         }
456         
457         //打印加密是否激活
458         if(0 == pSec->encActiveFlag)
459         {
460                 VOS_Printf("enc status: inactive\n");
461         }else
462         {
463                 VOS_Printf("enc status: active\n");
464         }
465
466         //打印完保是否激活
467         if(0 == pSec->intActiveFlag)
468         {
469                 VOS_Printf("int status: inactive\n");
470         }else
471         {
472                 VOS_Printf("int status: active\n");
473         }
474         
475         if(0 == pSec->nhInd)
476         {
477                 VOS_Printf("nhInd: not exist\n");
478         }else
479         {
480                 VOS_Printf("nhInd: exist\n");
481         }
482
483         return VOS_OK;
484 }
485
486 INT32 printfVosSockAddr(vos_sockaddr_t *pAddr)
487 {
488         NULL_CHECK(pAddr);
489         
490         UINT8 *temp = NULL;
491         UINT8 i = 0;
492
493         if(AF_INET == pAddr->sa.sa_family)
494         {
495                 VOS_Printf("IP type : IPV4\n");
496                 VOS_Printf("IP addr : ");
497                 for(i=0; i<4; i++)
498                 {
499                         temp = (UINT8 *)&pAddr->sin.sin_addr + i;
500                         VOS_Printf("%d ",*temp);
501                 }
502                 VOS_Printf("\n");
503         }else if(AF_INET6 == pAddr->sa.sa_family)
504         {
505                 VOS_Printf("IP type : IPV6\n");
506                 VOS_Printf("IP addr : ");
507                 for(i=0; i<16; i++)
508                 {
509                         temp = (UINT8 *)&pAddr->sin6.sin6_addr + i;
510                         VOS_Printf("%d ",*temp);
511                 }
512                 VOS_Printf("\n");
513         }else
514         {
515                 VOS_Printf("addr type is wrong!\n");
516         }
517
518         return VOS_OK;
519 }
520
521 INT32 printfTun(Tun_t *pTun)
522 {
523         NULL_CHECK(pTun);
524         
525         VOS_Printf("\n");
526         VOS_Printf("##############################\n");
527         VOS_Printf("           tunnel info            \n");
528         VOS_Printf("##############################\n");
529
530         if(0 == pTun->tunState)
531         {
532                 VOS_Printf("tun state is inactive\n");
533         }else
534         {
535                 VOS_Printf("tun state is active\n");
536         }
537
538         VOS_Printf("seq: %d\n",pTun->seq);
539         VOS_Printf("tunId:   0x%08x\n",pTun->tunId);
540         VOS_Printf("ownTeid: 0x%08x\n",pTun->ownTeid);
541         VOS_Printf("remTeid: 0x%08x\n",pTun->remTeid);
542         printfVosSockAddr(&pTun->tunOpval.addr);
543
544         return VOS_OK;
545 }
546
547 INT32 printfPdcpuSecEnableInfo(PdcpuSecEnableInfo_t *pInfo)
548 {
549         NULL_CHECK(pInfo);
550
551         VOS_Printf("\n");
552         VOS_Printf("######################################\n");
553         VOS_Printf("           security enable info           \n");
554         VOS_Printf("######################################\n"); 
555         VOS_Printf("pduSessionId: %d\n",pInfo->pduSessionId);
556
557         //加密
558         if(TRUE == pInfo->cipherEnableFlag)
559         {
560                 VOS_Printf("cipher : enabled\n");
561         }else
562         {
563                 VOS_Printf("cipher : disabled\n");
564         }
565
566         //完整性保护
567         if(TRUE == pInfo->integrityEnableFlag)
568         {
569                 VOS_Printf("integrity : enabled\n");
570         }else
571         {
572                 VOS_Printf("integrity : disabled\n");
573         }
574
575         //完保速率
576         VOS_Printf("maxIPDataRate: %d\n",pInfo->maxIPDataRate);
577
578         return VOS_OK;
579 }
580
581 INT32 printfCuupUeIdxTable(CuupUeIdxTable_t *pTable)
582 {
583         UINT8 i = 0;
584         VOS_Printf("0 is used, 1 is not used, else is wrong\n");
585         for(i=0; i<MAX_UE_NUM; i++)
586         {
587                 VOS_Printf("i is %d  ",i);
588                 VOS_Printf("usedFlag: %d  ",pTable->ueIdxInfo[i].isUsed);
589                 VOS_Printf("ueE1apId: %d  ",pTable->ueIdxInfo[i].ueE1apId);
590                 VOS_Printf("ueIdx:    %04x\n",pTable->ueIdxInfo[i].ueIdx);
591         }
592         VOS_Printf("at end i = %d\n",i);
593
594         return VOS_OK;
595 }
596
597 INT32 printfMsgbBuff(MsgbBuff_t *pMsgBuff)
598 {
599         NULL_CHECK(pMsgBuff);
600         
601         UINT8 *pMsgHead = msgbData(pMsgBuff);
602         UINT32 pduLen = msgbDataUsedLen(pMsgBuff);
603         
604         /*VOS_Printf("msgb maxDataLen:%d maxHeadLen:%d headSpareLen:%d tailOffset:%d ",
605                 pMsgBuff->msgbInfo.maxDataLen,
606                 pMsgBuff->msgbInfo.maxHeadLen,
607                 pMsgBuff->msgbInfo.headSpareLen,
608                 pMsgBuff->msgbInfo.tailOffset);*/
609
610         VOS_Printf(VOS_COLOR_BLUE"data len:%d\n"VOS_COLOR_NONE,pduLen);
611
612         UINT32 j = 0;
613         for(j=0; j<pduLen; j++)
614         {
615                 VOS_Printf("%02x ",*(pMsgHead+j));
616         }
617         VOS_Printf("\n");
618         
619         return VOS_OK;
620 }
621
622 INT32 printfExPduInfo(ExPduInfo_t *pPdu)
623 {       
624         NULL_CHECK(pPdu);
625         
626         VOS_Printf("exHdrLen:%d Byteslen:%d exHdrType:0x%02x\n",
627                                 pPdu->exHdrLen,pPdu->len,pPdu->exHdrType);
628         
629         UINT8 i = 0;
630         for(i=0; i<pPdu->len; i++)
631         {
632                 VOS_Printf("%02x ",*((UINT8 *)(pPdu->pPdu)+i));
633         }
634         VOS_Printf("\n");
635         
636         return VOS_OK;
637 }
638
639 INT32 printfSdapNewInstance(SdapGlobalDtat_t *pGlobalData)
640 {
641         VOS_Printf("\n**sdapCreateNewInstance**\n");
642         VOS_Printf("upE1apId:%d\n",pGlobalData->upE1apId);
643         VOS_Printf("sessNum:%d\n",pGlobalData->sessNum);
644         UINT8 i = 0;
645         UINT8 m = 0;
646         UINT8 n = 0;
647         VOS_Printf("sessId list:");
648         for(i=0; i<pGlobalData->sessNum; i++)
649         {
650                 VOS_Printf("%d,",pGlobalData->sessId[i]);
651         }
652         VOS_Printf("\n");
653         
654         UINT8 pduId = 0;
655         for(i=0; i<pGlobalData->sessNum; i++)
656         {       
657                 pduId = pGlobalData->sessId[i];
658                 VOS_Printf("i:%d, sessId:%d, sessNum:%d\n",i,pduId,pGlobalData->sessNum);
659                 VOS_Printf("drbNum:%d\n",pGlobalData->sdapInstance[pduId].drbNum);
660                 VOS_Printf("drbId list:");      
661                 for(m=0; m<pGlobalData->sdapInstance[pduId].drbNum; m++)
662                 {
663                         VOS_Printf("%d,",pGlobalData->sdapInstance[pduId].drbId[m]);
664                 }
665                 VOS_Printf("\n");
666                 
667                 VOS_Printf("\n******drbCfg*******\n");
668
669                 UINT8 j=0;
670                 UINT8 drbId = 0;
671                 UINT8 qfiNum = 0;
672                 for(n=0; n<pGlobalData->sdapInstance[pduId].drbNum; n++)
673                 {
674                         drbId = pGlobalData->sdapInstance[pduId].drbId[n];
675                         VOS_Printf("drbId:%d \n",drbId);
676                         VOS_Printf("drbCfg.drbId:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].drbId);
677                         VOS_Printf("drbCfg.sdapUlHead:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.sdapUlHeaderInd);
678                         VOS_Printf("drbCfg.sdapDlHead:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.sdapDlHeaderInd);
679                         VOS_Printf("drbCfg.defaultDrbInd:%d\n",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].sdapCfg.defaultDrbInd);
680                         qfiNum = pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].qfiNum;
681                         VOS_Printf("drbCfg.qfiNum:%d\nqfi list:",qfiNum);
682                         for(j=0; j<qfiNum; j++)
683                         {
684                                 VOS_Printf("%d ",pGlobalData->sdapInstance[pduId].drbCfg[drbId-1].qfi[j]);
685                         }
686                         VOS_Printf("\n");
687                 }
688         }
689
690         return VOS_OK;
691 }
692
693