/***************************************************************************** Function Name : NAS_COMM_PrintSmEsmMsg Description : 打印收到OM消息(文件内部调用函数) Input : pcBuff -- Formatted buffer usOffset -- Offset enMsgId -- EMM_ESM_MSG_TYPE_ENUM_UINT32 Output : None Return : The number of bytes that have been stored in the output buffer pcBuff If the input parameter is erroneous, the return value will be 0. History : 1.lihong00150010 2011-05-02 Draft Enact *****************************************************************************/ VOS_INT32 NAS_COMM_PrintOmEsmMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_UINT32 ulLoop; VOS_UINT32 ulOmEsmMsgNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ ulOmEsmMsgNum = sizeof(g_astOmEsmMsgIdArray)/sizeof(NAS_COMM_PRINT_MSG_LIST_STRU); for (ulLoop = 0; ulLoop < ulOmEsmMsgNum; ulLoop++) { if (pstMsg->ulMsgName == g_astOmEsmMsgIdArray[ulLoop].ulId) { break; } } if ( ulLoop < ulOmEsmMsgNum ) { NAS_COMM_nsprintf( pcBuff, usTotalLen, (VOS_CHAR *)(g_astOmEsmMsgIdArray[ulLoop].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; if (VOS_NULL_PTR != g_astOmEsmMsgIdArray[ulLoop].pfActionFun) { ilOutPutLen = g_astOmEsmMsgIdArray[ulLoop].pfActionFun(pcBuff, usTotalLen, pstMsg); } usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_COMM_LOG1_WARN("NAS_COMM_PrintOmEsmMsg, Invalid enMsgId: ", pstMsg->ulMsgName); } return (usTotalLen - usOffset); }
VOS_INT32 NAS_COMM_PrintEsmRabmDeactIndMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; VOS_UINT32 ulLoop = 0; ESM_ERABM_DEACT_IND_STRU *pstRcvMsg = VOS_NULL_PTR; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ pstRcvMsg = (VOS_VOID *)pstMsg; /* 打印消息结构标题 */ NAS_COMM_nsprintf(pcBuff, usTotalLen, "\r\n ****************Begin :ESM_ERABM_DEACT_IND_STRU****************\r\n", &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印消息的每个数据*/ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, " ulEpsIdNum = %d \r\n", pstRcvMsg->ulEpsIdNum, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; for (ulLoop = 0; ulLoop < pstRcvMsg->ulEpsIdNum; ulLoop++) { NAS_COMM_nsprintf_2(pcBuff, usTotalLen, " aulEpsId[%d] = %d \r\n", ulLoop, pstRcvMsg->aulEpsId[ulLoop], &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } /* 打印消息的结束标题*/ NAS_COMM_nsprintf(pcBuff, usTotalLen, " ****************End :ESM_ERABM_DEACT_IND_STRU****************", &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; return (usTotalLen - usOffset) ; }
VOS_INT32 NAS_ERABM_PrintRabmRrcMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_UINT32 ulLoop; VOS_UINT32 ulRabmRrcMsgNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* 获得消息表的长度 */ ulRabmRrcMsgNum = sizeof(g_astERabmRrcMsgIdArray)/sizeof(NAS_COMM_PRINT_LIST_STRU); /* 查找对应的消息 */ for (ulLoop = 0; ulLoop< ulRabmRrcMsgNum ; ulLoop++) { if (pstMsg->ulMsgName == g_astERabmRrcMsgIdArray[ulLoop].ulId) { break; } } /* 打印对应的消息 */ if ( ulLoop < ulRabmRrcMsgNum ) { NAS_COMM_nsprintf(pcBuff, usOffset, (VOS_CHAR *)(g_astERabmRrcMsgIdArray[ulLoop].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; if (VOS_NULL_PTR != g_astERabmRrcMsgIdArray[ulLoop].pfActionFun) { ilOutPutLen = g_astERabmRrcMsgIdArray[ulLoop].pfActionFun(pcBuff, usTotalLen, pstMsg); } usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_ERABM_LOG1("NAS_ERABM_PrintRabmRrcMsg, Invalid enMsgId: ",pstMsg->ulMsgName); } return (usTotalLen - usOffset); }
VOS_INT32 NAS_COMM_PrintRabmTcMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, ETC_ERABM_MSG_TYPE_ENUM_UINT32 enMsgId ) { VOS_UINT32 ulLoop; VOS_UINT32 ulRabmTcMsgNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ /* 获得消息表的长度 */ ulRabmTcMsgNum = sizeof(g_astRabmTcMsgIdArray)/sizeof(NAS_COMM_PRINT_MSG_LIST_STRU); /* 查找对应的消息 */ for (ulLoop = 0; ulLoop< ulRabmTcMsgNum ; ulLoop++) { if (enMsgId == g_astRabmTcMsgIdArray[ulLoop].ulId) { break; } } /* 打印对应的消息 */ if ( ulLoop < ulRabmTcMsgNum ) { NAS_COMM_nsprintf(pcBuff, usTotalLen, (VOS_CHAR *)(g_astRabmTcMsgIdArray[ulLoop].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_COMM_LOG1_WARN("NAS_COMM_PrintRabmTcMsg, Invalid enMsgId: ",enMsgId); TLPS_PRINT2LAYER_WARNING1(NAS_COMM_PrintRabmTcMsg_ENUM, LNAS_FUNCTION_LABEL1, enMsgId); } return (usTotalLen - usOffset); }
VOS_INT32 NAS_COMM_PrintMmRabmMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, EMM_ERABM_MSG_TYPE_ENUM_UINT32 enMsgId ) { VOS_UINT32 ulLoop; VOS_UINT32 ulMmRabmMsgNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ ulMmRabmMsgNum = sizeof(g_astMmRabmMsgIdArray)/sizeof(NAS_COMM_PRINT_MSG_LIST_STRU); for (ulLoop = 0; ulLoop < ulMmRabmMsgNum; ulLoop++) { if (g_astMmRabmMsgIdArray[ulLoop].ulId == enMsgId) { break; } } if ( ulLoop < ulMmRabmMsgNum ) { NAS_COMM_nsprintf( pcBuff, usTotalLen, (VOS_CHAR *)(g_astMmRabmMsgIdArray[ulLoop].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_COMM_LOG1_WARN("NAS_COMM_PrintMmRabmMsg, Invalid enMsgId: ", enMsgId); } return (usTotalLen - usOffset); }
VOS_VOID NAS_COMM_PrintArray ( VOS_CHAR *pcBuff, const VOS_UINT8 *pucArray, const VOS_UINT32 ulLen ) { VOS_UINT16 usTotalLen = 0; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usLoop = 0; VOS_UINT8 ucData = 0; /* delay begin */ PS_LOG_RETURN(); /* delay end */ /* 打印数据, 一行最多16个字节 */ for (usLoop = 0; usLoop < ulLen; usLoop++) { if ( (0 != usLoop) && (0 == (usLoop%NAS_COMM_PRINT_MAX_BYTES_PER_LINE)) ) { if(usTotalLen < NAS_COMM_PRINT_BUFF_LEN) { pcBuff[usTotalLen] = '\n'; usTotalLen++; } } /*lint -e662*/ ucData = pucArray[usLoop];/*lint !e662 !e661*/ /*lint +e662*/ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "%02x ", ucData, &ilOutPutLen); if ( 0 == ilOutPutLen ) { NAS_COMM_LOG_WARN("NAS_COMM_PrintArray: Print data exception."); TLPS_PRINT2LAYER_WARNING(NAS_COMM_PrintArray_ENUM, LNAS_FUNCTION_LABEL1); return; } usTotalLen += (VOS_UINT16)ilOutPutLen; } NAS_COMM_Print(pcBuff, usTotalLen); return; }
VOS_INT32 NAS_ERABM_PrintRabmCdsMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, CDS_ERABM_MSG_ID_ENUM_UINT32 enMsgId ) { VOS_UINT32 ulLoop; VOS_UINT32 ulRabmAppMsgNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* 获得消息表的长度 */ ulRabmAppMsgNum = sizeof(g_astERabmCdsMsgIdArray)/sizeof(NAS_COMM_PRINT_MSG_LIST_STRU); /* 查找对应的消息 */ for (ulLoop = 0; ulLoop< ulRabmAppMsgNum ; ulLoop++) { if (enMsgId == g_astERabmCdsMsgIdArray[ulLoop].ulId) { break; } } /* 打印对应的消息 */ if ( ulLoop < ulRabmAppMsgNum ) { NAS_COMM_nsprintf(pcBuff, usTotalLen, (VOS_CHAR *)(g_astERabmCdsMsgIdArray[ulLoop].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_ERABM_LOG1("NAS_ERABM_PrintRabmCdsMsg, Invalid enMsgId: ",enMsgId); } return (usTotalLen - usOffset); }
VOS_INT32 NAS_ERABM_PrintRabmTimer ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, VOS_UINT32 ulTimerType ) { VOS_UINT32 ulRabmTimerNum; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; /* 获得消息表的长度 */ ulRabmTimerNum = sizeof(g_astERabmStateTimerArray)/sizeof(NAS_COMM_PRINT_MSG_LIST_STRU); /* 打印对应的消息 */ if ( ulTimerType < ulRabmTimerNum ) { NAS_COMM_nsprintf(pcBuff, usTotalLen, (VOS_CHAR *)(g_astERabmStateTimerArray[ulTimerType].aucPrintString), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } else { NAS_ERABM_LOG1("NAS_ERABM_PrintRabmTimer, Invalid enMsgId: ",ulTimerType); } return (usTotalLen - usOffset); }
VOS_INT32 NAS_COMM_PrintMmEsmBearerStatusReqOrInd ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; VOS_UINT32 ulLoop = 0; VOS_CHAR *pcPrintStr = VOS_NULL_PTR; EMM_ESM_BEARER_STATUS_REQ_STRU *pstRcvMsg = VOS_NULL_PTR; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ pstRcvMsg = (VOS_VOID *)pstMsg; if (ID_EMM_ESM_BEARER_STATUS_REQ == pstRcvMsg->ulMsgId) { pcPrintStr = "\r\n ****************Begin :EMM_ESM_BEARER_STATUS_REQ_STRU****************\r\n"; } else { pcPrintStr = "\r\n ****************Begin :EMM_ESM_BEARER_STATUS_IND_STRU****************\r\n"; } /* 打印消息结构标题 */ NAS_COMM_nsprintf(pcBuff, usTotalLen, pcPrintStr, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印消息的每个数据*/ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, " ulEpsIdNum = %d \r\n", pstRcvMsg->ulEpsIdNum, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; for (ulLoop = 0; ulLoop < pstRcvMsg->ulEpsIdNum; ulLoop++) { NAS_COMM_nsprintf_2(pcBuff, usTotalLen, " aulEpsId[%d] = %d \r\n", ulLoop, pstRcvMsg->aulEsmEpsId[ulLoop], &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } if (ID_EMM_ESM_BEARER_STATUS_REQ == pstRcvMsg->ulMsgId) { pcPrintStr = " ****************End :EMM_ESM_BEARER_STATUS_REQ_STRU****************"; } else { pcPrintStr = " ****************End :EMM_ESM_BEARER_STATUS_IND_STRU****************"; } /* 打印消息的结束标题*/ NAS_COMM_nsprintf(pcBuff, usTotalLen, pcPrintStr, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; return (usTotalLen - usOffset) ; }
VOS_INT32 NAS_COMM_PrintEsmRabmActIndOrModIndMsg ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = usOffset; VOS_CHAR *pcPrintStr = VOS_NULL_PTR; ESM_ERABM_ACT_IND_STRU *pstRcvMsg = VOS_NULL_PTR; /* delay begin */ PS_LOG_RETURN_SUCC(); /* delay end */ pstRcvMsg = (VOS_VOID *)pstMsg; if (ID_ESM_ERABM_ACT_IND == pstRcvMsg->ulMsgId) { pcPrintStr = "\r\n ****************Begin :ESM_ERABM_ACT_IND_STRU****************\r\n"; } else { pcPrintStr = "\r\n ****************Begin :ESM_ERABM_MDF_IND_STRU****************\r\n"; } /* 打印消息结构标题 */ NAS_COMM_nsprintf(pcBuff, usTotalLen, pcPrintStr, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印消息的每个数据*/ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, " ulEpsId = %d \r\n", pstRcvMsg->ulEpsId, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_1(pcBuff, usTotalLen, " ulTftPfNum = %d \r\n", pstRcvMsg->ulTftPfNum, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印消息的结束标题*/ if (ID_ESM_ERABM_ACT_IND == pstRcvMsg->ulMsgId) { pcPrintStr = " ****************End :ESM_ERABM_ACT_IND_STRU****************"; } else { pcPrintStr = " ****************End :ESM_ERABM_MDF_IND_STRU****************"; } NAS_COMM_nsprintf(pcBuff, usTotalLen, pcPrintStr, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; return (usTotalLen - usOffset) ; }
VOS_INT32 NAS_ERABM_PrintRabmRrcRabInd ( VOS_CHAR *pcBuff, VOS_UINT16 usOffset, const PS_MSG_HEADER_STRU *pstMsg ) { VOS_INT32 ilOutPutLen = 0; VOS_UINT32 ulLoop = 0; VOS_UINT16 usTotalLen = usOffset; LRRC_LRABM_RAB_IND_STRU *pstRcvMsg = VOS_NULL_PTR; pstRcvMsg = (VOS_VOID *)pstMsg; /* 打印消息结构标题 */ NAS_COMM_nsprintf(pcBuff, usTotalLen, "\r\n ****************Begin :LRRC_LRABM_RAB_IND_STRU****************\r\n", &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印消息的每个数据*/ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, " ulRabCnt = %d \r\n", pstRcvMsg->ulRabCnt, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; for (ulLoop = 0; ulLoop < pstRcvMsg->ulRabCnt; ulLoop++) { NAS_COMM_nsprintf_2(pcBuff, usTotalLen, " astRabInfo[%d].enRabChangeType = %d \r\n", ulLoop, pstRcvMsg->astRabInfo[ulLoop].enRabChangeType, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_2(pcBuff, usTotalLen, " astRabInfo[%d].ulRabId = %d \r\n", ulLoop, pstRcvMsg->astRabInfo[ulLoop].ulRabId, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_nsprintf_2(pcBuff, usTotalLen, " astRabInfo[%d].ulRbId = %d \r\n", ulLoop, pstRcvMsg->astRabInfo[ulLoop].ulRbId, &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; } /* 打印消息的结束标题*/ NAS_COMM_nsprintf(pcBuff, usTotalLen, " ****************End :LRRC_LRABM_RAB_IND_STRU****************", &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; return (usTotalLen - usOffset) ; }
VOS_VOID NAS_ETC_PrintTcSendMsg ( const PS_MSG_HEADER_STRU *pstMsg, VOS_CHAR *pcBuff ) { VOS_INT32 ilOutPutLenHead = 0; VOS_INT32 ilOutPutLen = 0; VOS_UINT16 usTotalLen = 0; NAS_COMM_nsprintf(pcBuff, usTotalLen, "NAS TC Send Message:", &ilOutPutLen); if ( 0 == ilOutPutLen ) { NAS_ETC_WARN_LOG("NAS_ETC_PrintTcSendMsg, Print receive msg header exception."); return ; } usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印各个PID的消息 */ switch ( pstMsg->ulReceiverPid ) { case PS_PID_MM: NAS_COMM_nsprintf(pcBuff, usTotalLen, "TC-->MM\t", &ilOutPutLenHead); usTotalLen += (VOS_UINT16)ilOutPutLenHead; ilOutPutLen = NAS_COMM_PrintMmTcMsg(pcBuff, usTotalLen, pstMsg->ulMsgName); break; case PS_PID_RABM: NAS_COMM_nsprintf(pcBuff, usTotalLen, "TC-->RABM\t", &ilOutPutLenHead); usTotalLen += (VOS_UINT16)ilOutPutLenHead; ilOutPutLen = NAS_COMM_PrintRabmTcMsg(pcBuff, usTotalLen, pstMsg->ulMsgName); break; case PS_PID_PDCP_UL: NAS_COMM_nsprintf(pcBuff, usTotalLen, "TC-->PDCP\t", &ilOutPutLenHead); usTotalLen += (VOS_UINT16)ilOutPutLenHead; ilOutPutLen = NAS_ETC_PrintTcPdcpMsg(pcBuff, usTotalLen, pstMsg->ulMsgName); break; case UEPS_PID_CDS: NAS_COMM_nsprintf(pcBuff, usTotalLen, "TC-->CDS\t", &ilOutPutLenHead); usTotalLen += (VOS_UINT16)ilOutPutLenHead; ilOutPutLen = NAS_COMM_PrintEtcCdsMsg(pcBuff, usTotalLen, pstMsg->ulMsgName); break; default: NAS_ETC_LOG2("NAS_ETC_PrintTcSendMsg,Invalid Pid, MsgId: ", pstMsg->ulSenderPid, pstMsg->ulMsgName); return ; } if ( 0 == ilOutPutLen ) { NAS_ETC_LOG2("NAS_ETC_PrintTcSendMsg, print return zero length.SenderPid, MsgId: ", pstMsg->ulSenderPid, pstMsg->ulMsgName); return; } usTotalLen += (VOS_UINT16)ilOutPutLen; /* 打印接收到该消息时对应的系统TICK值 */ NAS_COMM_nsprintf_1(pcBuff, usTotalLen, "[ TICK : %ld ]", PS_GET_TICK(), &ilOutPutLen); usTotalLen += (VOS_UINT16)ilOutPutLen; NAS_COMM_Print(pcBuff, usTotalLen); return ; }