void link_PushPacket(struct link *l, struct ppp_mbuf *bp,/* struct bundle *b, */VOS_INT32 pri, VOS_UINT16 proto) { PPP_ID usPppId = (PPP_ID)(PPP_LINK_TO_ID(l)); PPP_HDLC_CONFIG_STRU *pstHdlcConfig; /* 把PPP协商包作为可维可测信息,IP包不做可维可测维护*/ if (PROTO_IP != proto) { Ppp_MBufFrameMntnInfo(bp, proto, PPP_SEND_OUT_PROTOCOL_FRAME); } pstHdlcConfig = PPP_CONFIG(usPppId); if (VOS_NULL_PTR != pstHdlcConfig->pFunProcProtocolPacket) { pstHdlcConfig->pFunProcProtocolPacket(l, bp, pri, proto); } else { ppp_m_freem(bp); bp = VOS_NULL_PTR; PPP_MNTN_LOG(PS_PID_APP_PPP, 0, PS_PRINT_WARNING, "PPP, link_PushPacket, WARNING, pFunProcProtocolPacket is NULL!\r\n"); } return; }
VOS_UINT32 PPP_InitHdlcConfig(PPP_ID usPppId) { PPP_HDLC_CONFIG_STRU *pstHdlcConfig; if ((usPppId == 0) || (PPP_MAX_ID_NUM < usPppId)) { return VOS_ERR; } pstHdlcConfig = PPP_CONFIG(usPppId); if (PPP_HDLC_BY_SOFTWARE == g_ulHDLCConfig) { pstHdlcConfig->pFunProcData = PPP_HDLC_SOFT_ProcData; pstHdlcConfig->pFunProcProtocolPacket = PPP_HDLC_SOFT_ProcProtocolPacket; pstHdlcConfig->pFunDisable = VOS_NULL_PTR; pstHdlcConfig->pFunProcAsFrmData = VOS_NULL_PTR; PPP_MNTN_LOG(PS_PID_APP_PPP, 0, PS_PRINT_WARNING, "\r\nPPP, PPP_InitHdlcConfig, INFO, Soft HDLC.\r\n"); } else { pstHdlcConfig->pFunProcData = PPP_HDLC_HARD_ProcData; pstHdlcConfig->pFunProcProtocolPacket = PPP_HDLC_HARD_ProcProtocolPacket; pstHdlcConfig->pFunDisable = PPP_HDLC_HARD_Disable; pstHdlcConfig->pFunProcAsFrmData = PPP_HDLC_HARD_ProcAsFrmPacket; PPP_HDLC_HARD_SetUp(usPppId); PPP_MNTN_LOG(PS_PID_APP_PPP, 0, PS_PRINT_WARNING, "\r\nPPP, PPP_InitHdlcConfig, INFO, Hard HDLC.\r\n"); } return VOS_OK; }