VOS_VOID CDS_SaveIpfDlSrcMem(const IPF_CONFIG_DLPARAM_S *pstIpfDlBdBuff, VOS_UINT32 ulSaveNum) { LUP_QUEUE_STRU *pstDlFreeQue; VOS_UINT32 ulCnt; TTF_MEM_ST *pstSrcMem; CDS_ASSERT(VOS_NULL_PTR != pstIpfDlBdBuff); if (ulSaveNum > IPF_DLBD_DESC_SIZE) { CDS_ERROR_LOG1(UEPS_PID_CDS,"CDS_SaveIpfDlMemInfo:Input Bd Num Error.",ulSaveNum); return ; } pstDlFreeQue = CDS_IPF_DL_SRCMEM_FREE_QUE(); CDS_ASSERT(VOS_NULL_PTR != pstDlFreeQue); for (ulCnt = 0; ulCnt < ulSaveNum; ulCnt ++) { pstSrcMem = (TTF_MEM_ST*)pstIpfDlBdBuff[ulCnt].u32Data; if (PS_SUCC != LUP_EnQue(pstDlFreeQue,pstSrcMem)) { CDS_ERROR_LOG2(UEPS_PID_CDS,"CDS_SaveIpfDlMemInfo: Src Mem Leak.",ulCnt,ulSaveNum); vos_printf("CDS_SaveIpfDlMemInfo: Buffer Full!! cnt=%d,ulSaveNum=%d\n",ulCnt,ulSaveNum); TTF_MemFree(UEPS_PID_CDS,pstSrcMem); CDS_DBG_DL_IPF_SAVE_SRCMEM_FAIL_NUM(1); continue; } CDS_DBG_DL_IPF_SAVE_SRCMEM_SUCC_NUM(1); } return ; }
VOS_VOID QosFc_RestoreRabStatus(VOS_UINT32 ulIndex) { if(FC_MAX_RAB_NUM <= ulIndex) { CDS_ERROR_LOG1(UEPS_PID_CDS, "QosFc_RestoreRabStatus : Invalid ulIndex:", ulIndex); return; } if(QOS_FC_RAB_STATE_DISCARD == g_stQosFcRabEntity[ulIndex].enRabState) { QosFc_SetRabRandomDiscard(ulIndex); QosFc_ChannelRestore(g_stQosFcRabEntity[ulIndex].ucLinkRabId); } else if(QOS_FC_RAB_STATE_RANDOM_DISCARD == g_stQosFcRabEntity[ulIndex].enRabState) { QosFc_SetRabNormal(ulIndex); } else { CDS_ERROR_LOG2(UEPS_PID_CDS, "QosFc_RestoreRabStatus : Invalid State::", ulIndex, g_stQosFcRabEntity[ulIndex].enRabState); /* 保护 */ QosFc_SetRabNormal(ulIndex); } return; }
VOS_UINT32 CDS_EnableDlIPFFilter(VOS_UINT16 usModemId) { IPF_FILTER_CHAIN_TYPE_E enFCType; /*根据ModemId区分过滤器首地址*/ if (MODEM_ID_0 == usModemId) { enFCType = IPF_MODEM0_DLFC; } else if (MODEM_ID_1 == usModemId) { enFCType = IPF_MODEM1_DLFC; } else { CDS_ERROR_LOG2(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Input Para Error. ModemId,MaxModemNum:", usModemId,CDS_MAX_MODEM_NUM); return PS_FAIL; } /*改变下行IPF过滤器的类型*/ if (PS_SUCC != CDS_ChangeDlIpfFilterType(usModemId)) { CDS_ERROR_LOG(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Change DL Filter Type Fail."); return PS_FAIL; } /*将已设置好的过滤器配置给下行IPF*/ if (IPF_SUCCESS != BSP_IPF_SetFilter(enFCType, CDS_GET_DL_IPF_FILTER_ARRAY(), CDS_GET_DL_IPF_FILTER_NUM())) { CDS_ERROR_LOG1(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Enable Dl IPF Filter Fail.Filter Num:", CDS_GET_DL_IPF_FILTER_NUM()); return PS_FAIL; } else { CDS_INFO_LOG(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Enable Dl IPF Filter Success."); return PS_SUCC; } }
VOS_UINT32 CDS_EnableDlIPFFilter(VOS_UINT16 usModemId) { if (usModemId >= CDS_MAX_MODEM_NUM) { CDS_ERROR_LOG2(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Input Para Error. ModemId,MaxModemNum:", usModemId,CDS_MAX_MODEM_NUM); return PS_FAIL; } /*将已设置好的过滤器配置给下行IPF*/ if (IPF_SUCCESS != BSP_IPF_SetFilter(IPF_CHANNEL_DOWN, CDS_GET_DL_IPF_FILTER_ARRAY(), CDS_GET_DL_IPF_FILTER_NUM())) { CDS_ERROR_LOG1(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Enable Dl IPF Filter Fail.Filter Num:", CDS_GET_DL_IPF_FILTER_NUM()); return PS_FAIL; } else { CDS_INFO_LOG(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Enable Dl IPF Filter Success."); return PS_SUCC; } }
VOS_UINT32 CDS_DisableDlIPFFilter(MODEM_ID_ENUM_UINT16 enModemId) { VOS_UINT32 ulFilterNum = 0; if (enModemId >= CDS_MAX_MODEM_NUM) { CDS_ERROR_LOG2(UEPS_PID_CDS, "CDS_DisableDlIPFFilter : Input Para Error. ModemId,MaxModemNum:", enModemId,CDS_MAX_MODEM_NUM); return PS_FAIL; } if (IPF_SUCCESS != BSP_IPF_SetFilter(IPF_CHANNEL_DOWN, CDS_GET_DL_IPF_FILTER_ARRAY(), ulFilterNum)) { CDS_ERROR_LOG1(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Disable Dl IPF Filter Fail.Filter Num:", CDS_GET_DL_IPF_FILTER_NUM()); return PS_FAIL; } else { CDS_INFO_LOG(UEPS_PID_CDS, "CDS_EnableDlIPFFilter : Disable Dl IPF Filter Success."); return PS_SUCC; } }