VOS_VOID NULL_RecoverUlGradeProcess (VOS_VOID) { CDS_WARNING_LOG(UEPS_PID_CDS, "NULL_RecoverUlGradeProcess : NULL Speed Recover"); CDS_PRINT_WARNING(NULL_UpGradeUlProcess_ENUM, CDS_FC_NULL_SPEED_RECOVER); return; }
SPY_DATA_UPGRADE_RESULT_ENUM_UINT32 NULL_UpGradeUlProcess (VOS_VOID) { CDS_WARNING_LOG(UEPS_PID_CDS,"NULL_UpGradeUlProcess : NULL Speed Upgrade"); CDS_PRINT_WARNING(NULL_UpGradeUlProcess_ENUM, CDS_FC_NULL_SPEED_UP_GRADE); return SPY_DATA_UPGRADE_FINISH; }
SPY_DATA_DOWNGRADE_RESULT_ENUM_UINT32 NULL_DownGradeUlProcess (VOS_VOID) { CDS_WARNING_LOG(UEPS_PID_CDS,"NULL_DownGradeUlProcess : NULL Speed Downgrade"); CDS_PRINT_WARNING(NULL_DownGradeUlProcess_ENUM, CDS_FC_NULL_SPEED_DOWN_GRADE); /* 开机高温场景 */ return SPY_DATA_DOWNGRADE_CONTINUE; }
VOS_UINT32 QosFc_RandomDiscardDataFlow(VOS_VOID) { VOS_INT32 i,j; if((g_iRabEntityCnt < 1) || (g_iRabEntityCnt > FC_MAX_RAB_NUM)) { return PS_FAIL; } for(i = g_iRabEntityCnt-1; i >= 0; i--) { if(FC_INVALID_RABID == g_stQosFcRabEntity[i].ucRabId) { continue; } /* 找到最低优先级的可置为随机丢包状态的承载 */ /* 只有一组优先级承载会处于随机丢包状态 */ if(QOS_FC_RAB_STATE_DISCARD != g_stQosFcRabEntity[i].enRabState) { break; } } if(0 <= i) { /* 判断是否需要流控 */ if(QosFc_RabNeedFlowCtrl((VOS_UINT32)i)) { for(j = i; j >= 0; j--) { if(g_stQosFcRabEntity[i].ucPriority != g_stQosFcRabEntity[j].ucPriority) { /* 一组承载处理完 */ break; } if(QOS_FC_RAB_STATE_NORMAL == g_stQosFcRabEntity[j].enRabState) { /* 置随机丢包状态 */ QosFc_SetRabRandomDiscard((VOS_UINT32)j); } } } } else { CDS_WARNING_LOG(UEPS_PID_CDS, "QosFc_RandomDiscardDataFlow : All Entity Flow Control!"); return PS_FAIL; } return PS_SUCC; }
VOS_UINT32 QosFc_DiscardAllDataFlow(VOS_VOID) { VOS_INT32 i,j; if((g_iRabEntityCnt < 1) || (g_iRabEntityCnt > FC_MAX_RAB_NUM)) { return PS_FAIL; } for(i = g_iRabEntityCnt-1; i >= 0; i--) { if(FC_INVALID_RABID == g_stQosFcRabEntity[i].ucRabId) { continue; } /* 找到优先级最低的非丢包状态承载 */ if(QOS_FC_RAB_STATE_DISCARD != g_stQosFcRabEntity[i].enRabState) { break; } } if(0 <= i) { for(j = i; j >= 0; j--) { /* 判断是否需要流控 */ if(QosFc_RabNeedFlowCtrl((VOS_UINT32)j)) { /* 置丢包状态 */ QosFc_SetRabDiscard((VOS_UINT32)j); } } } else { CDS_WARNING_LOG(UEPS_PID_CDS, "QosFc_DiscardAllDataFlow : All Entity Flow Control!"); return PS_FAIL; } return PS_SUCC; }
SPY_DATA_UPGRADE_RESULT_ENUM_UINT32 FC_LUpUlGrade_Process (VOS_VOID) { FC_CL_TEMPERATURE_UP_STAT(1); if(PS_TRUE == g_ulUlDowngradeFlag) { if(g_stFcLteTemperatureCtrl.ucBsrThresCnt < g_stFcLteTemperatureCtrl.ucCurrPos) { CDS_WARNING_LOG2(UEPS_PID_CDS,"FC_LUpUlGrade_Process: Upgrade Entry : ->:", g_ulUlThroughputMax, g_stFcLteTemperatureCtrl.ulTemperSteps[g_stFcLteTemperatureCtrl.ucCurrPos-1]); CDS_PRINT_WARNING2(FC_LUpUlGrade_Process_ENUM, CDS_FC_LTE_SPEED_UP_GRADE,g_ulUlThroughputMax, g_stFcLteTemperatureCtrl.ulTemperSteps[g_stFcLteTemperatureCtrl.ucCurrPos-1]); g_ulUlThroughputMax = g_stFcLteTemperatureCtrl.ulTemperSteps[g_stFcLteTemperatureCtrl.ucCurrPos-1]; } else { /* 退出入口流控 */ g_ulUlDowngradeFlag = PS_FALSE; g_ulUlThroughputMax = FC_UL_ENTRY_THROUGHPUT_INIT; /*g_stFcLteTemperatureCtrl.ucCurrPos = g_stFcLteTemperatureCtrl.ucBsrThresCnt-1;*/ } } if(PS_FALSE == g_ulUlDowngradeFlag) { if((g_stFcLteTemperatureCtrl.ucCurrPos == 0) || (g_stFcLteTemperatureCtrl.ucCurrPos >= FC_UL_THROUGHPUT_THRES_CNT)) { g_stFcLteTemperatureCtrl.ucCurrPos = FC_UL_THROUGHPUT_THRES_CNT; CDS_WARNING_LOG(UEPS_PID_CDS, "FC_LUpUlGrade_Process: Finish !"); CDS_PRINT_WARNING(FC_LUpUlGrade_Process_ENUM, CDS_FC_LTE_SPEED_UP_FINISH); FC_CL_TEMPERATURE_TO_NORMAL_STAT(1); return SPY_DATA_UPGRADE_FINISH; } } g_stFcLteTemperatureCtrl.ucCurrPos--; CDS_WARNING_LOG1(UEPS_PID_CDS, "FC_LUpUlGrade_Process : ThresPos: ", g_stFcLteTemperatureCtrl.ucCurrPos); CDS_PRINT_WARNING1(FC_LUpUlGrade_Process_ENUM, CDS_FC_LTE_SPEED_UP_POS,g_stFcLteTemperatureCtrl.ucCurrPos); return SPY_DATA_UPGRADE_CONTINUE; }