VOS_VOID TAF_APS_Proc1xToHrpdHandOff(
    VOS_UINT8                           ucPdpId,
    VOS_UINT8                           ucIsNewSession
)
{
    if (TAF_APS_TIMER_STATUS_RUNING == TAF_APS_GetTimerStatus(TI_TAF_APS_CDATA_DORMANT, ucPdpId))
    {
        TAF_APS_StopTimer(TI_TAF_APS_CDATA_DORMANT, ucPdpId);
    }

    /* 从1X切换到HRPD */
    if (VOS_TRUE == ucIsNewSession)
    {
        /* 更新当前建立数据服务的模式 */
        TAF_APS_SetCurrPdpEntityDataServiceMode(TAF_APS_RAT_TYPE_HRPD);

        /* 通知外部模块当前的PS服务所在的模式 */
        TAF_APS_SndExternalModulePsRatTypeNtf(TAF_APS_RAT_TYPE_HRPD);
    }
    else
    {
        /* 发送内部1X到HRPD切换请求消息 */
        TAF_APS_SndInter1XToHrpdHandOffReq(ucPdpId);
    }

    return;
}
VOS_VOID  TAF_APS_StartDsFlowRpt( VOS_VOID )
{
    TAF_APS_TIMER_STATUS_ENUM_U8        enTimerStatus;

    /* 如果当前流量上报定时器正在运行,先停止定时器 */
    enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT,
                                           TAF_APS_INVALID_PDPID);
    if (TAF_APS_TIMER_STATUS_RUNING == enTimerStatus)
    {
        TAF_APS_StopTimer(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID);
    }

    /* 判断当前是否有RAB激活 */
    if (VOS_TRUE == TAF_APS_CheckIfActiveRabIdExist())
    {
        /* 依次轮询所有RABID,刷新已激活RAB的当前连接流量信息 */
        TAF_APS_UpdateAllRabCurrentFlowInfo();

        /* 启动流量上报定时器 */
        TAF_APS_StartTimer(TI_TAF_APS_DSFLOW_REPORT,
                           TI_TAF_APS_DSFLOW_REPORT_LEN,
                           TAF_APS_INVALID_PDPID);
    }

    return;
}
VOS_VOID  TAF_APS_StopDsFlowRpt( VOS_VOID )
{
    TAF_APS_TIMER_STATUS_ENUM_U8        enTimerStatus;

    /* 如果当前流量上报定时器正在运行,停止定时器 */
    enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT,
                                           TAF_APS_INVALID_PDPID);
    if (TAF_APS_TIMER_STATUS_RUNING == enTimerStatus)
    {
        TAF_APS_StopTimer(TI_TAF_APS_DSFLOW_REPORT, TAF_APS_INVALID_PDPID);
    }

    return;
}
VOS_VOID TAF_APS_SetDfsMax(VOS_VOID)
{
    TAF_APS_SWITCH_DDR_RATE_INFO_STRU  *pstSwitchDdrInfo;
    TAF_APS_TIMER_STATUS_ENUM_U8        enTimerStatus;

    pstSwitchDdrInfo = TAF_APS_GetSwitchDdrRateInfoAddr();

    /* 调频功能不支持,则什么都不处理 */
    if (0 == TAF_APS_GET_DFS_PROFILE_NUM())
    {
        return;
    }
    /* 当前流量定时器没有启动,什么都不处理 */
    enTimerStatus = TAF_APS_GetTimerStatus(TI_TAF_APS_DSFLOW_REPORT,
                                           TAF_APS_INVALID_PDPID);
    if (TAF_APS_TIMER_STATUS_RUNING != enTimerStatus)
    {
        return;
    }

    /* 已经是最高档位,不再调节 */
    if (TAF_APS_GET_DSFLOW_MAX_DDR_BAND() == pstSwitchDdrInfo->ulReqValue)
    {
        return;
    }

    /* 直接将DDR调到最高一档 */
    if (PWRCTRL_GET_SUCCESS != PWRCTRL_DfsQosUpdate(DFS_QOS_ID_DDR_MINFREQ_E,
                                         (BSP_S32)pstSwitchDdrInfo->iDfsReqId,
                                         (BSP_U32)TAF_APS_GET_DSFLOW_MAX_DDR_BAND()))
    {
        TAF_APS_DFS_UPDATE_FAIL_CNT(1);
        TAF_APS_SndOmDfsInfo(pstSwitchDdrInfo);
        return;
    }

    pstSwitchDdrInfo->ulReqValue   = TAF_APS_GET_DSFLOW_MAX_DDR_BAND();
    pstSwitchDdrInfo->ulSetMaxFlag = VOS_TRUE;
    TAF_APS_DFS_UPDATE_SUCC_CNT(1);
    DRV_PWRCTRL_SLEEPVOTE_LOCK(PWRCTRL_SLEEP_DSFLOW);
    TAF_APS_SndOmDfsInfo(pstSwitchDdrInfo);

    return;

}