Пример #1
0
uint32_t IPCP_destroy
   (
      IP_IF_PTR   if_ptr
         /* [IN] the IP interface structure */
   )
{ /* Body */

#if RTCSCFG_ENABLE_IP4 

   IPCP_CFG_STRUCT_PTR  ipcp_ptr = if_ptr->HANDLE;

   PPP_unregister(ipcp_ptr->HANDLE, PPP_PROT_IP);
   PPP_unregister(ipcp_ptr->HANDLE, PPP_PROT_IPCP);
   PPPFSM_lowerdown(&ipcp_ptr->FSM);
   PPPFSM_destroy(&ipcp_ptr->FSM);
   _mem_free(ipcp_ptr);
   if_ptr->HANDLE = NULL;

   return RTCS_OK;

#else
    
    return RTCSERR_IP_IS_DISABLED;    
    
#endif /* RTCSCFG_ENABLE_IP4 */   

} /* Endbody */
Пример #2
0
uint_32 IPCP_destroy
   (
      IP_IF_PTR   if_ptr
         /* [IN] the IP interface structure */
   )
{ /* Body */
   IPCP_CFG_STRUCT_PTR  ipcp_ptr = if_ptr->HANDLE;

   PPP_unregister(ipcp_ptr->HANDLE, PPP_PROT_IP);
   PPP_unregister(ipcp_ptr->HANDLE, PPP_PROT_IPCP);
   PPPFSM_lowerdown(&ipcp_ptr->FSM);
   PPPFSM_destroy(&ipcp_ptr->FSM);
   _mem_free(ipcp_ptr);
   if_ptr->HANDLE = NULL;

   return RTCS_OK;

} /* Endbody */
Пример #3
0
uint_32 IPCP_init
   (
      IP_IF_PTR   if_ptr
         /* [IN] the IP interface structure */
   )
{ /* Body */
   _ppp_handle handle = if_ptr->HANDLE;
   IPCP_CFG_STRUCT_PTR ipcp_ptr;
   PPPFSM_CFG_PTR fsm;
   uint_32 error;

   if (handle==NULL) 
   {
      return RTCSERR_INVALID_PARAMETER; 
   } /* Endif */

   /* Allocate state for this interface */
   ipcp_ptr = RTCS_mem_alloc(sizeof(IPCP_CFG_STRUCT));
   if (!ipcp_ptr) {
      return RTCSERR_IPCP_CFG;
   } /* Endif */

   /* Initialize the IPCP FSM */
   fsm = &ipcp_ptr->FSM;
   error = PPPFSM_init(fsm, handle, &IPCP_FSM_CALL, if_ptr);
   if (error) {
      _mem_free(ipcp_ptr);
      return PPP_TO_RTCS_ERROR(error);
   } /* Endif */

   /* Register IPCP */
   error = PPP_register(handle, PPP_PROT_IPCP, PPPFSM_input, fsm);
   if (error) {
      PPPFSM_destroy(fsm);
      _mem_free(ipcp_ptr);
      return PPP_TO_RTCS_ERROR(error);
   } /* Endif */

   /* Register IP */
   error = PPP_register(handle, PPP_PROT_IP, IPCP_recv, if_ptr);
   if (error) {
      PPP_unregister(handle, PPP_PROT_IPCP);
      PPPFSM_destroy(fsm);
      _mem_free(ipcp_ptr);
      return PPP_TO_RTCS_ERROR(error);
   } /* Endif */

   ipcp_ptr->HANDLE = handle;
   if_ptr->HANDLE = ipcp_ptr;
   if_ptr->MTU = IP_DEFAULT_MTU;
   if_ptr->ARP = NULL;

   if_ptr->DEV_TYPE    = 20;
   if_ptr->DEV_ADDRLEN = 1;
   if_ptr->DEV_ADDR[0] = 0xFF;
#if RTCSCFG_ENABLE_SNMP
   if_ptr->SNMP_IF_TYPE = IPIFTYPE_PPP;
#endif
   return RTCS_OK;

} /* Endbody */