VOS_UINT32 TAF_APS_RcvAtPsCallModifyReq_Active( VOS_UINT32 ulEventType, struct MsgCB *pstMsg ) { /*------------------------------------------------------------------ 加载TAF_APS_STA_MS_MODIFYING状态机 加载后子状态切换为TAF_APS_MS_MODIFYING_SUBSTA_INIT 在TAF_APS_MS_MODIFYING_SUBSTA_INIT子状态中处理 ID_MSG_TAF_PS_CALL_MODIFY_REQ消息 ------------------------------------------------------------------*/ TAF_APS_InitSubFsm(TAF_APS_FSM_MS_MODIFYING, TAF_APS_GetMsModifyingFsmDescAddr(), TAF_APS_MS_MODIFYING_SUBSTA_INIT); return VOS_TRUE; }
VOS_UINT32 TAF_APS_RegSubFsm( VOS_VOID ) { /* MS ACTIVATING状态机注册 */ TAF_FSM_RegisterFsm((TAF_APS_GetMsActivatingFsmDescAddr()), "TAF:FSM:APS:Ms Activating", (VOS_UINT32)TAF_APS_GetMsActivatingStaTblSize(), TAF_APS_GetMsActivatingStaTbl(), VOS_NULL_PTR, VOS_NULL_PTR); /* NW ACTIVATING状态机注册 */ TAF_FSM_RegisterFsm((TAF_APS_GetNwActivatingFsmDescAddr()), "TAF:FSM:APS:Nw Activating", (VOS_UINT32)TAF_APS_GetNwActivatingStaTblSize(), TAF_APS_GetNwActivatingStaTbl(), VOS_NULL_PTR, VOS_NULL_PTR); /*MS DEACTIVATING状态机注册 */ TAF_FSM_RegisterFsm((TAF_APS_GetMsDeactivatingFsmDescAddr()), "TAF:FSM:APS:MS Deactivating", (VOS_UINT32)TAF_APS_GetMsDeactivatingStaTblSize(), TAF_APS_GetMsDeactivatingStaTbl(), VOS_NULL_PTR, VOS_NULL_PTR); /* MS MODIFYING状态机注册 */ TAF_FSM_RegisterFsm((TAF_APS_GetMsModifyingFsmDescAddr()), "TAF:FSM:APS:Ms Modifying", (VOS_UINT32)TAF_APS_GetMsModifyingStaTblSize(), TAF_APS_GetMsModifyingStaTbl(), VOS_NULL_PTR, VOS_NULL_PTR); return VOS_OK; }
VOS_UINT32 TAF_APS_RcvSmPdpModifyInd_Active( VOS_UINT32 ulEventType, struct MsgCB *pstMsg ) { VOS_UINT32 ulResult; VOS_UINT8 ucPdpId; MMC_APS_RAT_TYPE_ENUM_UINT32 enCurrRatType; APS_MDFIND_PARA_ST stParam; SMREG_PDP_MODIFY_IND_STRU *pstSmPdpModifyInd; #if (FEATURE_ON == FEATURE_LTE) APS_PDP_CONTEXT_ENTITY_ST *pstPdpEntity; #endif /* 获取消息内容 */ pstSmPdpModifyInd = (SMREG_PDP_MODIFY_IND_STRU *)pstMsg; ucPdpId = TAF_APS_GetCurrFsmEntityPdpId(); enCurrRatType = TAF_APS_GetCurrPdpEntityRatType(); #if (FEATURE_ON == FEATURE_LTE) pstPdpEntity = TAF_APS_GetPdpEntInfoAddr(ucPdpId); #endif ulResult = Aps_PdpMdfIndParaCheck(pstSmPdpModifyInd, &stParam); if (APS_PARA_INVALID == ulResult) { TAF_WARNING_LOG(WUEPS_PID_TAF, "TAF_APS_RcvSmPdpModifyInd_Active: Check para failed! "); /* 上报ID_EVT_TAF_PS_CALL_PDP_DEACTIVATE_IND事件 */ TAF_APS_SndPdpDeActivateInd(ucPdpId, TAF_PS_CAUSE_SM_NW_PROTOCOL_ERR_UNSPECIFIED); /* 发送内部消息, 触发PDP去激活流程 */ TAF_APS_SndInterPdpDeactivateReq(ucPdpId, SM_TAF_CAUSE_SM_NW_PROTOCOL_ERR_UNSPECIFIED); return VOS_TRUE; } /* 检查QOS是否满足MIN */ if (APS_PARA_VALID == Aps_CheckQosSatisify(ucPdpId, &stParam.NewQos)) { /* 满足MINQOS */ Aps_PdpMdfIndQosSatisfy(ucPdpId, &stParam, pstSmPdpModifyInd); #if (FEATURE_ON == FEATURE_LTE) /* 同步PDP信息至ESM */ MN_APS_SndEsmPdpInfoInd(pstPdpEntity, SM_ESM_PDP_OPT_MODIFY); #endif /* 如果当前模为GSM, 迁移状态 */ if (MMC_APS_RAT_TYPE_GSM == enCurrRatType) { /*------------------------------------------------------------------ 加载TAF_APS_STA_MS_MODIFYING状态机 加载后子状态切换为TAF_APS_MS_MODIFYING_SUBSTA_INIT 在TAF_APS_MS_MODIFYING_SUBSTA_INIT子状态中 处理D_PMC_SMREG_PDP_MODIFY_IND消息 ------------------------------------------------------------------*/ TAF_APS_InitSubFsm(TAF_APS_FSM_MS_MODIFYING, TAF_APS_GetMsModifyingFsmDescAddr(), TAF_APS_MS_MODIFYING_SUBSTA_INIT); } } else { /* 上报ID_EVT_TAF_PS_CALL_PDP_DEACTIVATE_IND事件 */ TAF_APS_SndPdpDeActivateInd(ucPdpId, TAF_PS_CAUSE_SM_NW_QOS_NOT_ACCEPTED); /* 发送内部消息, 触发PDP去激活流程 */ TAF_APS_SndInterPdpDeactivateReq(ucPdpId, SM_TAF_CAUSE_SM_NW_QOS_NOT_ACCEPTED); } return VOS_TRUE; }