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(); }
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; }
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; }