VOS_VOID NAS_ESM_ProcTimerMsgDeferRelNonEmcExp(const VOS_VOID * pMsg)
{
    NAS_ESM_INFO_LOG("NAS_ESM_ProcTimerMsgDeferRelNonEmcExp: enter");

    (VOS_VOID)pMsg;

    if (PS_TRUE == NAS_ESM_HasEstingEmergencyPdn())
    {
        NAS_ESM_INFO_LOG("NAS_ESM_ProcTimerMsgDeferRelNonEmcExp: esting emergency PDN");

        /*如果紧急承载还未建立成功,重新启动延迟定时器*/
        NAS_ESM_TimerStart(0, TI_NAS_ESM_REL_NON_EMC_BEARER);
    }
    else if (PS_TRUE == NAS_ESM_HasExistedEmergencyPdn())
    {
        NAS_ESM_INFO_LOG("NAS_ESM_ProcTimerMsgDeferRelNonEmcExp: existed emergency PDN");

        /*如果紧急承载建立成功,则释放所有非紧急承载*/
        NAS_ESM_DeactAllNonEmcPdn();
    }
    else
    {
        /*如果紧急承载建立失败,不做处理*/
        NAS_ESM_INFO_LOG("NAS_ESM_ProcTimerMsgDeferRelNonEmcExp: no emergency PDN");
    }

    return;
}
VOS_VOID NAS_ESM_UpdateEsmDatabaseInfo(VOS_VOID)
{
    NAS_ESM_INFO_LOG("NAS_ESM_UpdateEsmDatabaseInfo.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_UpdateEsmDatabaseInfo_ENUM, LNAS_ENTRY);

    NAS_ESM_GetEsmInfoAddr()->ucEsmCause = NAS_ESM_GetFtmInfoEsmCause();
}
VOS_UINT32   NAS_ESM_RevOmFtmCtrlMsg(MsgBlock   *pMsgStru)
{
    OM_FTM_CTRL_IND_STRU  *pstOmFtmCtrlInfo;
    NAS_ESM_INFO_LOG("NAS_ESM_RevOmFtmCtrlMsg.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_RevOmFtmCtrlMsg_ENUM, LNAS_ENTRY);

    if (VOS_NULL_PTR == pMsgStru)
    {
        NAS_ESM_WARN_LOG("NAS_ESM_RevOmFtmCtrlMsg, input point is null!");
        TLPS_PRINT2LAYER_WARNING(NAS_ESM_RevOmFtmCtrlMsg_ENUM, LNAS_NULL_PTR);

        return NAS_ESM_MSG_DISCARD;
    }

    pstOmFtmCtrlInfo = (OM_FTM_CTRL_IND_STRU *)(VOS_VOID *)pMsgStru;

    NAS_ESM_INFO_LOG1("ESM_OM_ProcOmFtmCtrlInfo, ucActionFlag = ", pstOmFtmCtrlInfo->ucActionFlag);
    TLPS_PRINT2LAYER_INFO1(NAS_ESM_RevOmFtmCtrlMsg_ENUM, 1, pstOmFtmCtrlInfo->ucActionFlag);

    if(1 == pstOmFtmCtrlInfo->ucActionFlag)
    {
        /*设置工程模式上报功能打开*/
        NAS_ESM_SetFtmOmManageFtmActionFlag(NAS_ESM_FTM_ACTION_FLAG_OPEN);

        /*上报当前信息 */
        NAS_ESM_SendOmFtmMsg();
    }
    else
    {
        /*关闭工程模式上报,*/
        NAS_ESM_SetFtmOmManageFtmActionFlag(NAS_ESM_FTM_ACTION_FLAG_CLOSE);
    }

    return NAS_ESM_MSG_HANDLED;
}
/*lint -e961*/
VOS_VOID NAS_ESM_SndEsmOmTpCmdCnfMsg(const VOS_UINT8 *pucData,
                                                        VOS_UINT32 ulLength)
{
    PS_OM_TRANSPARENT_CMD_CNF_STRU     *pPsOmTpCmdCnf       = VOS_NULL_PTR;
    VOS_UINT16                          usOriginalId        = 0;
    VOS_UINT16                          usTerminalId        = 0;

    /*打印进入该函数*/
    NAS_ESM_INFO_LOG("NAS_ESM_SndEsmOmTpCmdCnfMsg is entered.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_SndEsmOmTpCmdCnfMsg_ENUM, LNAS_ENTRY);

    /*根据空口消息的长度分配空间,处于消息头外*/
    if(ulLength > ESM_MIN_SND_MSG_LEN)
    {
        pPsOmTpCmdCnf = (VOS_VOID*)NAS_ESM_ALLOC_MSG(sizeof(PS_OM_TRANSPARENT_CMD_CNF_STRU) + (ulLength - ESM_MIN_SND_MSG_LEN));
    }
    else/*如果长度小于ESM_MIN_SND_MSG_LEN,分配的空间等于ESM_MIN_SND_MSG_LEN*/
    {
        pPsOmTpCmdCnf = (VOS_VOID*)NAS_ESM_ALLOC_MSG(sizeof(PS_OM_TRANSPARENT_CMD_CNF_STRU));
    }

    /*检测是否分配成功*/
    if (VOS_NULL_PTR == pPsOmTpCmdCnf)
    {
        /*打印异常信息*/
        NAS_ESM_ERR_LOG("NAS_ESM_SndEsmOmTpCmdCnfMsg:ERROR:Alloc Msg fail!");
        TLPS_PRINT2LAYER_ERROR(NAS_ESM_SndEsmOmTpCmdCnfMsg_ENUM, 1);
        return ;
    }


    /*清空*/
    NAS_ESM_MEM_SET_S(  NAS_ESM_GET_MSG_ENTITY(pPsOmTpCmdCnf),
                        NAS_ESM_GET_MSG_LENGTH(pPsOmTpCmdCnf),
                        0,
                        NAS_ESM_GET_MSG_LENGTH(pPsOmTpCmdCnf));

    /*将空口消息存放到EMM_ESM_DATA_REQ_STRU结构中*/
    /*lint -e669*/
    NAS_ESM_MEM_CPY_S(pPsOmTpCmdCnf->aucTransCmdCnf, ulLength, pucData, ulLength);
    /*lint +e669*/

    /*分配本次过程APP_MSG_HEADER*/
    NAS_ESM_AssignMidHeader(&usOriginalId,&usTerminalId);

    /*填写消息头*/
    NAS_ESM_WRITE_APP_MSG_HEAD(pPsOmTpCmdCnf,OM_PS_TRANSPARENT_CMD_CNF,\
                              usOriginalId,usTerminalId,0);

    /*调用消息发送函数 */
    NAS_ESM_SND_MSG(pPsOmTpCmdCnf);

}
VOS_VOID     NAS_ESM_SendOmFtmMsg(VOS_VOID)
{
    LNAS_OM_FTM_REPROT_IND_STRU *pFtmMsg;

    NAS_ESM_INFO_LOG("NAS_ESM_SendOmFtmMsg.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_SendOmFtmMsg_ENUM, LNAS_ENTRY);

    /* 若工程模式关闭,则不发送 */
    if(NAS_ESM_FTM_ACTION_FLAG_OPEN != NAS_ESM_GetFtmInfoActionFlag())
    {
        NAS_ESM_INFO_LOG1("NAS_ESM_SendOmFtmMsg: ActionFlag = ", NAS_ESM_GetFtmInfoActionFlag());
        TLPS_PRINT2LAYER_INFO1(NAS_ESM_SendOmFtmMsg_ENUM, 1, NAS_ESM_GetFtmInfoActionFlag());
        return;
    }

    /*分配空间并检验分配是否成功*/
    pFtmMsg = (VOS_VOID*)NAS_ESM_ALLOC_MSG(sizeof(LNAS_OM_FTM_REPROT_IND_STRU));
    if ( VOS_NULL_PTR == pFtmMsg )
    {
        /*打印异常信息*/
        NAS_ESM_ERR_LOG("NAS_ESM_SendOmFtmMsg:ERROR:Alloc Msg fail!");
        TLPS_PRINT2LAYER_ERROR(NAS_ESM_SendOmFtmMsg_ENUM, LNAS_EMM_ALLOC_FAIL);
        return ;
    }

    /*构造ID_EMM_ESM_PDN_CON_IND消息*/
    /*填充消息头*/
    NAS_ESM_COMP_OM_MSG_HEADER(         pFtmMsg,
                                        (sizeof(LNAS_OM_FTM_REPROT_IND_STRU)-
                                        NAS_ESM_LEN_VOS_MSG_HEADER));

    /*填充消息ID*/
    pFtmMsg->ulMsgName                  = ID_OM_FTM_REPROT_IND;

    /*填充消息内容*/
    pFtmMsg->ulMsgType                  = OM_ERR_LOG_MSG_FTM_REPORT;
    pFtmMsg->ulMsgSN                    = (NAS_ESM_GetFtmInfoMsgSN());
    NAS_ESM_GetFtmInfoMsgSN()++;
    pFtmMsg->ulRptlen                   = sizeof(LNAS_OM_FTM_REPROT_CONTENT_STRU);

    pFtmMsg->stLnasFtmContent.ulMsgModuleID  = OM_ERR_LOG_MOUDLE_ID_ESM;
    pFtmMsg->stLnasFtmContent.usModemId      = 0;
    pFtmMsg->stLnasFtmContent.usProjectID    = 0;
    pFtmMsg->stLnasFtmContent.ulLength       = sizeof(LNAS_ESM_FTM_INFO_STRU);
    pFtmMsg->stLnasFtmContent.u.stEsmFtmInfo.ucEsmCause = g_astEsmInfo.ucEsmCause;

    /*向OM发送消息*/
    NAS_ESM_SND_MSG( pFtmMsg);


    return;

}
VOS_UINT32 NAS_ESM_CompareEsmDatabaseInfo(VOS_VOID)
{
    NAS_ESM_INFO_LOG("NAS_ESM_CompareEsmDatabaseInfo.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_CompareEsmDatabaseInfo_ENUM, LNAS_ENTRY);

    if(NAS_ESM_GetFtmInfoEsmCause() != NAS_ESM_GetEsmInfoAddr()->ucEsmCause)
    {
        return NAS_ESM_SUCCESS;
    }

    return NAS_ESM_FAILURE;
}
VOS_VOID NAS_ESM_TimerMsgDistr(const VOS_VOID *pRcvMsg )
{
    VOS_UINT32                          ulIndex         = NAS_ESM_NULL;
    NAS_ESM_TIMER_PARA_ENUM_UINT8       enTimerType     = TI_NAS_ESM_TIMER_PARA_BUTT;

    NAS_ESM_INFO_LOG("NAS_ESM_TimerMsgDistr is entered.");

    /*从消息中取出状态表ID*/
    ulIndex = PS_GET_REL_TIMER_NAME(pRcvMsg);

    enTimerType = (NAS_ESM_TIMER_PARA_ENUM_UINT8)PS_GET_REL_TIMER_PARA(pRcvMsg);

    /*判断承载ulStateTblIndex合法性*/
    if (PS_FALSE == NAS_ESM_IsTimerNameValid(ulIndex, enTimerType))
    {
        /*打印异常信息*/
        NAS_ESM_WARN_LOG("NAS_ESM_TimerMsgDistr:WARNING:Timer->SM ,Invalid Timer Name or Para !");
        return;
    }

    /*定时器超时处理*/
    switch(enTimerType)
    {
        case TI_NAS_ESM_T3482:
            NAS_ESM_ProcTimerMsgT3482Exp(pRcvMsg);
            break;
        case TI_NAS_ESM_T3492:
            NAS_ESM_ProcTimerMsgT3492Exp(pRcvMsg);
            break;
        case TI_NAS_ESM_T3480:
            NAS_ESM_ProcTimerMsgT3480Exp(pRcvMsg);
            break;
        case TI_NAS_ESM_T3481:
            NAS_ESM_ProcTimerMsgT3481Exp(pRcvMsg);
            break;
        case TI_NAS_ESM_WAIT_APP_CNF:
            NAS_ESM_ProcTimerMsgWaitAppCnfExp(pRcvMsg);
            break;
        case TI_NAS_ESM_WAIT_PTI_INVALID:
            NAS_ESM_ProcTimerMsgWaitPtiInvaidExp(pRcvMsg);
            break;
        case TI_NAS_ESM_ATTACH_BEARER_REEST:
            NAS_ESM_ProcTimerMsgAttachBearerReestExp(pRcvMsg);
            break;
        case TI_NAS_ESM_REL_NON_EMC_BEARER:
            NAS_ESM_ProcTimerMsgDeferRelNonEmcExp(pRcvMsg);
            break;
        default:
            NAS_ESM_WARN_LOG("NAS_ESM_TimerMsgDistr:WARNING:Illegal Timer Type!");
            break;
    }
}
Example #8
0
VOS_VOID NAS_ESM_ReadInitInfoFromNv()
{
    VOS_UINT32                          ulCid               = NAS_ESM_NULL;

    NAS_ESM_INFO_LOG("NAS_ESM_ReadInitInfoFromNv is entered.");

    /* 从NV中读取数据流的静态信息 */
    for(ulCid = 0; ulCid < NAS_ESM_MAX_EPSB_NUM; ulCid++)
    {
        NAS_ESM_ReadSdfParaFromNV(ulCid);
    }

    /* 从NV中读取承载管理方式 */
    NAS_ESM_ReadPdpManInfoFromNv();
}
Example #9
0
VOS_VOID NAS_ESM_ClearEsmResoureWhenEstingEmcPdn(VOS_VOID)
{
    VOS_UINT32 ulCnt = 0;

    NAS_ESM_INFO_LOG("NAS_ESM_ClearEsmResoureWhenEstingEmcPdn: enter");


    /*设置ESM状态为正在注册*/
    NAS_ESM_SetEmmStatus(NAS_ESM_PS_REGISTER_STATUS_ATTACHING);

    /* 如果支持双APN,则停止对应定时器,并设置注册承载无效 */
    if (NAS_ESM_OP_TRUE == NAS_ESM_AttachBearerReestEnable())
    {
        NAS_ESM_TimerStop(0, TI_NAS_ESM_ATTACH_BEARER_REEST);
        NAS_ESM_SetAttachBearerId(NAS_ESM_UNASSIGNED_EPSB_ID);
    }

    /* 本地去激活除紧急之外的所有承载 */
    for( ulCnt = NAS_ESM_MIN_EPSB_ID; ulCnt <= NAS_ESM_MAX_EPSB_ID; ulCnt++ )
    {
        /*
         * 如果是激活的非紧急默认承载,则去激活;
         * 如果是非激活的默认承载或紧急的默认承载,不需要去激活,跳过
         * 如果是专有承载,则在NAS_ESM_DeactBearerAndInformApp中进行去激活
         */
        if ((NAS_ESM_BEARER_TYPE_DEFAULT == NAS_ESM_GetBearCntxtType(ulCnt)) &&
                (NAS_ESM_BEARER_STATE_ACTIVE == NAS_ESM_GetBearCntxtState(ulCnt)))
        {
            NAS_ESM_DeactBearerAndInformApp(ulCnt);
        }
    }

    /* 初始化PDN连接的个数 */
    NAS_ESM_SetCurPdnNum(NAS_ESM_NULL);

    /* 通知RABM清除资源 */
    NAS_ESM_SndEsmRabmRelIndMsg();

    /*清除动态表,紧急相关除外*/
    NAS_ESM_ClearStateTable(APP_ERR_SM_NON_EMERGENCY_NOT_ALLOWED, PS_TRUE);

    /* 初始化发送空口消息的结构体 */
    NAS_ESM_ClearEsmSndNwMsgAddr();

    /* 清除ESM缓存区 */
    NAS_ESM_ClearEsmBuff();
}
VOS_VOID NAS_ESM_FtmInfoInit(VOS_VOID)
{
    NAS_ESM_INFO_LOG("NAS_ESM_FtmInfoInit.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_FtmInfoInit_ENUM, LNAS_ENTRY);

    NAS_ESM_MEM_SET_S(  NAS_ESM_GetFtmInfoManageAddr(),
                        sizeof(ESM_FTM_INFO_MANAGE_STRU),
                        0,
                        sizeof(ESM_FTM_INFO_MANAGE_STRU));

    NAS_ESM_MEM_SET_S(  NAS_ESM_GetEsmInfoAddr(),
                        sizeof(ESM_DATABASE_INFO_STRU),
                        0,
                        sizeof(ESM_DATABASE_INFO_STRU));

    NAS_ESM_GetFtmInfoActionFlag() = NAS_ESM_FTM_ACTION_FLAG_CLOSE;

    return;
}
VOS_VOID NAS_ESM_OmMsgDistr
(
    VOS_VOID                           *pRcvMsg
)
{
    PS_MSG_HEADER_STRU         *pOmMsg = VOS_NULL_PTR;

    /*打印进入该函数*/
    NAS_ESM_INFO_LOG("NAS_ESM_SmMsgDistr is entered.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_OmMsgDistr_ENUM, LNAS_ENTRY);

    pOmMsg = (PS_MSG_HEADER_STRU*)pRcvMsg;

    /*根据消息名,调用相应的消息处理函数*/
    switch(pOmMsg->ulMsgName)
    {
        /*如果收到的是ID_SM_ESM_PDP_CONTEXT_INFO_IND消息*/
        case ID_OM_ESM_INFO_REPORT_REQ:
            (VOS_VOID)LTE_MsgHook((VOS_VOID*)pRcvMsg);
            NAS_ESM_OmInfoIndMsgProc(pRcvMsg );
            break;

        case ID_APP_ESM_DT_INQ_PDP_INFO_REQ:
            NAS_ESM_AppQueryActPdpInfoMsgProc(pRcvMsg);
            break;

        #if (FEATURE_PTM == FEATURE_ON)
        case ID_OM_FTM_CTRL_IND:
            (VOS_VOID)NAS_ESM_RevOmFtmCtrlMsg((MsgBlock *)pRcvMsg);
            break;
        #endif

        default:
            /*打印异常信息*/
            NAS_ESM_WARN_LOG("NAS_ESM_OmMsgDistr:WARNING:OM->ESM Message name non-existent!");
            TLPS_PRINT2LAYER_WARNING(NAS_ESM_OmMsgDistr_ENUM, 1);
            break;
    }
}
/*****************************************************************************
 Function Name   : NAS_ESM_TransparentMsgProc
 Description     : 透明传输命令处理函数
 Input           : VOS_VOID* pRcvMsg
 Output          : None
 Return          : VOS_VOID

 History         :
    1.sunbing49683      2008-12-30  Draft Enact

*****************************************************************************/
VOS_VOID NAS_ESM_TransparentMsgProc( VOS_VOID* pRcvMsg )
{
    NAS_ESM_TRANSPARENT_CMD_REQ_STRU  *pAppMsg = VOS_NULL_PTR;

    /*打印进入该函数*/
    NAS_ESM_INFO_LOG("NAS_ESM_TransparentMsgProc is entered.");
    TLPS_PRINT2LAYER_INFO(NAS_ESM_TransparentMsgProc_ENUM, LNAS_ENTRY);

    pAppMsg = (NAS_ESM_TRANSPARENT_CMD_REQ_STRU*)pRcvMsg;

    switch(pAppMsg->enEsmTpCmdType)
    {
        case NAS_ESM_TP_CMD_TYPE_TEST:

            break;

        default:
            NAS_ESM_WARN_LOG("NAS_ESM_TransparentMsgProc:NORM: Transparent Cmd not support!");
            TLPS_PRINT2LAYER_WARNING(NAS_ESM_TransparentMsgProc_ENUM, 1);
            break;
    }

}
Example #13
0
VOS_VOID NAS_ESM_ClearEsmResource( VOS_VOID )
{
    VOS_UINT32                          ulCnt               = NAS_ESM_NULL;

    /*打印进入该函数*/
    NAS_ESM_INFO_LOG("NAS_ESM_ClearEsmResource is entered.");

    /*根据消息记录通知APP*/
    NAS_ESM_ClearStateTable(APP_ERR_SM_DETACHED, PS_FALSE);

    /* 设置EMM的状态为未注册 */
    NAS_ESM_SetEmmStatus(NAS_ESM_PS_REGISTER_STATUS_DETACHED);

    /* 如果支持双APN,则停止对应定时器,并设置注册承载无效 */
    if (NAS_ESM_OP_TRUE == NAS_ESM_AttachBearerReestEnable())
    {
        NAS_ESM_TimerStop(0, TI_NAS_ESM_ATTACH_BEARER_REEST);
        NAS_ESM_SetAttachBearerId(NAS_ESM_UNASSIGNED_EPSB_ID);
    }

    /* 设置已激活的承载数目为零 */
    NAS_ESM_SetCurMaxOpIdValue(NAS_ESM_MIN_OPID_VALUE);

#ifdef PS_ITT_PC_TEST_NAS
    /*NAS ST场景下,由于现有用例在注册时使用了PTI值为2,所以PTI初始化为1,调用PTI分配函数,会从2开始使用*/
    NAS_ESM_SetCurMaxPTIValue(NAS_ESM_PTI_MIN_VALUE);
#else
    /*PTI初始化为0,注册时,调用PTI分配函数,会从1开始使用*/
    /*lint -e778*/
    NAS_ESM_SetCurMaxPTIValue(NAS_ESM_PTI_MIN_VALUE-1);
    /*lint +e778*/

    /* CID0在PS融合后比较特殊,在ESM维护的内容与NV的内容会存在不一致, 需将CID0初始化为专有类型 */
    NAS_ESM_ClearCid0StaticInfo();
#endif

    NAS_ESM_SetCurMaxGwAuthIdVaule(NAS_ESM_GWAUTHID_MIN_VALUE);


    /* 初始化CID 21~31 关联静态信息 */
    NAS_ESM_ClearNwCtrlSdfPara();
    /* 通知APP和SM 激活承载被释放,初始化承载信息 */
    for( ulCnt = NAS_ESM_MIN_EPSB_ID; ulCnt <= NAS_ESM_MAX_EPSB_ID; ulCnt++ )
    {
        if (NAS_ESM_BEARER_STATE_ACTIVE != NAS_ESM_GetBearCntxtState(ulCnt))
        {
            /* 初始化承载信息 */
            NAS_ESM_InitEpsbCntxtInfo(ulCnt);
            continue;
        }

#ifndef PS_ITT_PC_TEST_NAS
        /* 通知APP 激活承载被释放 */
        NAS_ESM_InformAppBearerRel(ulCnt);

        /* 通知SM 激活承载被释放 */
        NAS_ESM_SndSmEspBearerDeactIndMsg(ulCnt);
#endif

        /* 初始化承载信息 */
        NAS_ESM_InitEpsbCntxtInfo(ulCnt);
    }

    /* 初始化业务流的动态信息 */
    for( ulCnt = 0; ulCnt < NAS_ESM_MAX_CID_NUM; ulCnt++ )
    {
        NAS_ESM_MEM_SET(NAS_ESM_GetSdfCntxtInfo(ulCnt),
                        NAS_ESM_NULL,
                        sizeof(NAS_ESM_SDF_CNTXT_INFO_STRU));
    }

    /* 初始化PDN连接的个数 */
    NAS_ESM_SetCurPdnNum(NAS_ESM_NULL);

    /* 初始化发送空口消息的结构体 */
    NAS_ESM_ClearEsmSndNwMsgAddr();

    /* 清除ESM缓存区 */
    NAS_ESM_ClearEsmBuff();

}
Example #14
0
VOS_VOID NAS_ESM_Init(VOS_VOID)
{
    VOS_UINT32                          ulCnt               = NAS_ESM_NULL;

    /*打印进入该函数*/
    NAS_ESM_INFO_LOG("NAS_SM                           START INIT...");

    /*初始化SM实体*/
    NAS_ESM_MEM_SET((VOS_VOID*)NAS_ESM_Entity(),NAS_ESM_NULL,sizeof(NAS_ESM_ENTITY_STRU));

    /*设置EMM的状态为未注册*/
    NAS_ESM_SetEmmStatus(NAS_ESM_PS_REGISTER_STATUS_DETACHED);

    /*设置L MODE的状态为SUSPENDED*/
    NAS_ESM_SetLModeStatus(NAS_ESM_L_MODE_STATUS_SUSPENDED);
    /*设置已激活的承载数目为零*/
    NAS_ESM_SetCurMaxOpIdValue(NAS_ESM_MIN_OPID_VALUE);

#ifdef PS_ITT_PC_TEST_NAS
    /*NAS ST场景下,由于现有用例在注册时使用了PTI值为2,所以PTI初始化为1,调用PTI分配函数,会从2开始使用*/
    NAS_ESM_SetCurMaxPTIValue(NAS_ESM_PTI_MIN_VALUE);
#else
    /*PTI初始化为0,注册时,调用PTI分配函数,会从1开始使用*/
    /*lint -e778*/
    NAS_ESM_SetCurMaxPTIValue(NAS_ESM_PTI_MIN_VALUE-1);
    /*lint +e778*/
#endif

    NAS_ESM_SetCurMaxGwAuthIdVaule(NAS_ESM_GWAUTHID_MIN_VALUE);

    /*初始化承载参数*/
    NAS_ESM_BearerCntxtParaInit();

    /*初始化承载管理方式*/
    NAS_ESM_BearerManageInfoInit(NAS_ESM_GetBearerManageInfoAddr());

    /*初始化状态表信息*/
    for( ulCnt = 0; ulCnt < NAS_ESM_MAX_STATETBL_NUM; ulCnt++ )
    {
        NAS_ESM_RelStateTblResource(ulCnt);
    }

    /*初始化承载信息*/
    for( ulCnt = NAS_ESM_MIN_EPSB_ID; ulCnt <= NAS_ESM_MAX_EPSB_ID; ulCnt++ )
    {
        NAS_ESM_InitEpsbCntxtInfo(ulCnt);

        NAS_ESM_MEM_SET(&(g_stEsmOmInfo[ulCnt - NAS_ESM_MIN_EPSB_ID]),
                        NAS_ESM_NULL,
                        sizeof(OM_ESM_STATE_INFO_STRU));
    }

    /* 初始化ESM缓存区 */
    NAS_COMM_InitBuff(NAS_COMM_BUFF_TYPE_ESM);

    /* 初始化注册承载相关内容 */
    NAS_ESM_InitAttachBearerReestInfo();

    /* ESM软调初始化 */
    NAS_ESM_DebugInit();

    /* 初始化延迟释放非紧急PDN连接定时器 */
    NAS_ESM_Entity()->stDeferRelNonEmcTimerInfo.enPara = TI_NAS_ESM_REL_NON_EMC_BEARER;

    /* xiongxianghui00253310 modify for ftmerrlog begin */
#if (FEATURE_PTM == FEATURE_ON)
    NAS_ESM_FtmInfoInit();
    NAS_ESM_ErrlogInfoInit();
#endif
    /* xiongxianghui00253310 modify for ftmerrlog end   */

}