BST_VOID  BST_PAL_NetApiInitial( BST_VOID )
{
    BST_PAL_NET_ENTITY_STRU    *pstBstNetEntity;
#if defined(BST_PEAK_SPEED_TEST) || defined (BST_RUBBISH_DEBUG)|| defined (BST_MODEM_SELF)
    BST_UINT32                      i;
    extern BST_IP_FAST_CHECK_STRU   g_stBstIpFastPortCheck;
    g_stBstIpFastPortCheck.lCnt                 = BST_MAX_CNNT_NUMBER;
    for ( i=0; i<BST_MAX_CNNT_NUMBER; i++ )
    {
        g_stBstIpFastPortCheck.ausPortNum[i]    = 0;
        g_stBstIpFastPortCheck.ausProtocol[i]   = 0x02;
    }
    BST_PAL_NetSendNetStateMsg( BST_TRUE );
#endif
    pstBstNetEntity             = BST_PAL_NetGetEntity();
    if ( LUP_CreateQue( UEPS_PID_BASTET,
                        &pstBstNetEntity->pstDlDataQue,
                        BST_PAL_DL_QUE_SIZE) )
    {
        BST_RLS_LOG("BST_PAL_NetApiInitial : Create Bastet DL Que Fail.\n");
        return;
    }
    BST_PAL_NetSendRegCbMsg();
}
Пример #2
0
VOS_UINT32 CDS_IpfInit(VOS_VOID )
{
    IPF_COMMON_PARA_S stCommPara;
    IPF_CHL_CTRL_S    stChlCtrl;

    /*初始化时IP过滤的参数配置*/
    stCommPara.bEspSpiDisable   = PS_FALSE;             /* ESP SPI参与匹配控制信号 */
    stCommPara.bAhSpiDisable    = PS_FALSE;             /* AH SPI参与匹配控制信号 */
    stCommPara.bEspAhSel       = PS_TRUE;               /* 0选ESP,1选AH */
    stCommPara.bIpv6NextHdSel  = PS_TRUE;
    stCommPara.eMaxBurst       = IPF_BURST_16;          /* BURST最大长度 */
    stCommPara.bSpWrrModeSel   = PS_FALSE;
    stCommPara.bSpPriSel       = PS_FALSE;              /* SP优先级选择 */
    stCommPara.bFltAddrReverse = PS_FALSE;              /* 扩滤器中地址寄存器大小端排列顺序 0表示大端 */
    stCommPara.bFilterSeq      = PS_FALSE;              /* 过滤器配置顺序指示 */

    if (IPF_SUCCESS != BSP_IPF_Init(&stCommPara))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_Init Fail!\n");
        return PS_FAIL;
    }

    /*上行IPF配置为只过滤*/  /*通道工作模式: 只过滤,且不支持链式搬移*/
    stChlCtrl.u32WrrValue      = 16*1024;
    stChlCtrl.bDataChain       = PS_FALSE;
    stChlCtrl.bEndian          = PS_FALSE;
    stChlCtrl.eIpfMode         = IPF_MODE_FILTERONLY;

    if (IPF_SUCCESS != BSP_IPF_ConfigUlChannel(&stChlCtrl))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ConfigUlChannel Fail!\n");
        return PS_FAIL;
    }

    /*下行IPF通道工作模式: 过滤且搬移,支持链式搬移*/
    stChlCtrl.u32WrrValue      = 16*1024;
    stChlCtrl.bDataChain       = PS_TRUE;
    stChlCtrl.bEndian          = PS_FALSE;
    stChlCtrl.eIpfMode         = IPF_MODE_FILTERANDTRANS;

    /*下行IPF配置为只过滤*/
    if (IPF_SUCCESS != BSP_IPF_ConfigDlChannel(&stChlCtrl))
    {
        vos_printf("CDS_IpfInit : GU BSP_IPF_ConfigDlChannel Fail!\n");
        return PS_FAIL;
    }

    if (IPF_SUCCESS != BSP_IPF_RegisterWakeupUlCb((BSP_IPF_WakeupUlCb)CDS_UlIpfIntCB))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_RegisterWakeupUlCb Fail!\n");
        return PS_FAIL;
    }

    /*创建下行接收队列*/
    if (PS_SUCC != LUP_CreateQue(UEPS_PID_CDS, &(CDS_GET_IPF_DL_SDU_QUE()),CDS_IPF_DL_SDU_QUE_SIZE))
    {
        vos_printf("CDS_IpfInit : Create DL Sdu Que Fail");
        return PS_FAIL;
    }

    /*创建源内存释放队列*/
    if (PS_SUCC != LUP_CreateQue(UEPS_PID_CDS, &(CDS_IPF_DL_SRCMEM_FREE_QUE()),CDS_IPF_DL_SRCMEM_FREE_QUE_SIZE))
    {
        vos_printf("CDS_IpfInit : Create IPF DL Src Mem Free  Que Fail");
        return PS_FAIL;
    }

    /*使能上行IP过滤*/
    /*lint -e730 -e506 -e944*/
    if(IPF_SUCCESS != BSP_IPF_ChannelEnable(IPF_CHANNEL_UP, BSP_TRUE))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ChannelEnable UL Fail!\n");
        return PS_FAIL;
    }

    /*使能下行IP过滤*/
    if(IPF_SUCCESS != BSP_IPF_ChannelEnable(IPF_CHANNEL_DOWN, BSP_TRUE))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ChannelEnable DL Fail!\n");
        return PS_FAIL;
    }
    /*lint +e730 +e506 +e944*/

    /*初始化下行IPF过滤器*/
    CDS_InitDlIpfFilter();

    (VOS_VOID)CDS_DisableDlIPFFilter(MODEM_ID_0);
    (VOS_VOID)CDS_DisableDlIPFFilter(MODEM_ID_1);

    return PS_SUCC;
}
Пример #3
0
VOS_UINT32 CDS_IpfInit(VOS_VOID )
{
    IPF_COMMON_PARA_S stCommPara;
    IPF_CHL_CTRL_S    stChlCtrl;

    /*初始化时IP过滤的参数配置*/
    stCommPara.bEspSpiDisable  = PS_FALSE;              /* ESP SPI参与匹配控制信号 */
    stCommPara.bAhSpiDisable   = PS_FALSE;              /* AH SPI参与匹配控制信号 */
    stCommPara.bEspAhSel       = PS_TRUE;               /* 0选ESP,1选AH */
    stCommPara.bIpv6NextHdSel  = PS_TRUE;
    stCommPara.eMaxBurst       = IPF_BURST_16;          /* BURST最大长度 */
    stCommPara.bSpWrrModeSel   = PS_FALSE;
    stCommPara.bSpPriSel       = PS_FALSE;              /* SP优先级选择 */
    stCommPara.bFltAddrReverse = PS_FALSE;              /* 扩滤器中地址寄存器大小端排列顺序 0表示大端 */
    stCommPara.bFilterSeq      = PS_FALSE;              /* 过滤器配置顺序指示 */

    /*新增过滤器参数配置*/
    stCommPara.bAdReport       = PS_FALSE;              /* AD上报选择,PS_FALSE:上报结构体指针, PS_TRUE:上报数据指针 */
    stCommPara.bMultiModeEn    = PS_TRUE;               /* 单通道动态模式,PS_TRUE为使能 */
    stCommPara.bMultiFilterChainEn = PS_TRUE;           /* 单通道多过滤器,PS_TRUE为使能*/

    if (IPF_SUCCESS != BSP_IPF_Init(&stCommPara))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_Init Fail!\n");
        return PS_FAIL;
    }

    /*上行通道工作模式: 过滤且搬移,支持链式搬移*/
    stChlCtrl.u32WrrValue      = 16*1024;
    stChlCtrl.bDataChain       = PS_FALSE;
    stChlCtrl.bEndian          = PS_FALSE;
    stChlCtrl.eIpfMode         = IPF_MODE_FILTERANDTRANS;
    if (IPF_SUCCESS != BSP_IPF_ConfigUlChannel(&stChlCtrl))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ConfigUlChannel Fail!\n");
        return PS_FAIL;
    }

    /*下行通道工作模式: 过滤且搬移,支持链式搬移*/
    stChlCtrl.u32WrrValue      = 16*1024;
    stChlCtrl.bDataChain       = PS_TRUE;
    stChlCtrl.bEndian          = PS_FALSE;
    stChlCtrl.eIpfMode         = IPF_MODE_FILTERANDTRANS;
    if (IPF_SUCCESS != BSP_IPF_ConfigDlChannel(&stChlCtrl))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ConfigDlChannel Fail!\n");
        return PS_FAIL;
    }

    /*注册上行RD完成中断*/
    if (IPF_SUCCESS != BSP_IPF_RegisterWakeupUlCb((BSP_IPF_WakeupUlCb)CDS_UlIpfIntCB))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_RegisterWakeupUlCb Fail!\n");
        return PS_FAIL;
    }

    /*注册ADQ空中断回调函数*/
    if (IPF_SUCCESS != BSP_IPF_RegisterAdqEmptyUlCb((BSP_IPF_AdqEmptyUlCb)CDS_UlAdqEmptyIntCB))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_RegisterAdqEmptyUlCb Fail!\n");
        return PS_FAIL;
    }

    /*设置RD完成中断超时时间*/
    if (IPF_SUCCESS != BSP_IPF_ConfigTimeout(CDS_IPF_BD_CMP_INT_TIMEOUT))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ConfigTimeout Fail!\n");
        return PS_FAIL;
    }

    /*设置AD长度阈值*/
    if (IPF_SUCCESS != BSP_IPF_ConfigADThr(CDS_IPF_AD_LEN_THRESHOLD,CDS_IPF_AD_LEN_THRESHOLD))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ConfigADThr Fail!\n");
        return PS_FAIL;
    }

    /*创建下行接收队列*/
    if (PS_SUCC != LUP_CreateQue(UEPS_PID_CDS, &(CDS_GET_IPF_DL_SDU_QUE()),CDS_IPF_DL_SDU_QUE_SIZE))
    {
        vos_printf("CDS_IpfInit : Create DL Sdu Que Fail.\n");
        return PS_FAIL;
    }

    /*创建源内存释放队列*/
    if (PS_SUCC != LUP_CreateQue(UEPS_PID_CDS, &(CDS_IPF_DL_SRCMEM_FREE_QUE()),CDS_IPF_DL_SRCMEM_FREE_QUE_SIZE))
    {
        vos_printf("CDS_IpfInit : Create IPF DL Src Mem Free  Que Fail. \n");
        return PS_FAIL;
    }

    /*使能上行IP过滤*/
    /*lint -e730 -e506 -e944*/
    if(IPF_SUCCESS != BSP_IPF_ChannelEnable(IPF_CHANNEL_UP, BSP_TRUE))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ChannelEnable UL Fail!\n");
        return PS_FAIL;
    }

    /*使能下行IP过滤*/
    if(IPF_SUCCESS != BSP_IPF_ChannelEnable(IPF_CHANNEL_DOWN, BSP_TRUE))
    {
        vos_printf("CDS_IpfInit : BSP_IPF_ChannelEnable DL Fail!\n");
        return PS_FAIL;
    }
    /*lint +e730 +e506 +e944*/

    /*初始化下行IPF过滤器*/
    CDS_InitDlIpfFilter();

    /*补充ADQ内存*/
    CDS_AllocMemForAdq();

    (VOS_VOID)CDS_DisableDlIPFFilter(MODEM_ID_0);
    (VOS_VOID)CDS_DisableDlIPFFilter(MODEM_ID_1);

    return PS_SUCC;
}