212 lines
5.6 KiB
C
212 lines
5.6 KiB
C
|
|
/*
|
|
******************************************************************************
|
|
* INTERPEAK SOURCE FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6pm.c,v $ $Revision: 1.16 $
|
|
* $Source: /home/interpeak/CVSRoot/ipmip6pm/src/ipmip6pm.c,v $
|
|
* $Author: jhorteli $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
* Design and implementation by Joel Hortelius <joel.hortelis@interpeak.se>
|
|
******************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 CONFIGURATION
|
|
****************************************************************************
|
|
*/
|
|
#include "ipmip6pm_config.h"
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 3 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
#include <ipcom_type.h>
|
|
#include <ipcom_cstyle.h>
|
|
|
|
#define IPCOM_USE_CLIB_PROTO
|
|
#include <ipcom_clib.h>
|
|
#include <ipcom_os.h>
|
|
#include <ipcom_sock.h>
|
|
#include <ipcom_sock6.h>
|
|
#include <ipcom_inet.h>
|
|
#include <ipcom_list.h>
|
|
#include <ipcom_ipd.h>
|
|
#include <ipcom_syslog.h>
|
|
|
|
#include <ipmip.h>
|
|
#include <private/ipmip_util.h>
|
|
#include <private/ipmip_dhcp.h>
|
|
#include <private/ipmip_inet.h>
|
|
|
|
#include <ipmip6.h>
|
|
#include <private/ipmip6_context.h>
|
|
#include <private/ipmip6_pkt.h>
|
|
#include <private/ipmip6_if.h>
|
|
#include <private/ipmip6_mh.h>
|
|
#include <private/ipmip6_mh_pkt.h>
|
|
#include <private/ipmip6_util.h>
|
|
|
|
#include "ipmip6pm.h"
|
|
#include "ipmip6pm_h.h"
|
|
#include "ipmip6pm_node.h"
|
|
#include "ipmip6pm_attr_h.h"
|
|
#include "ipmip6pm_ifevent.h"
|
|
#include "ipmip6pm_mh.h"
|
|
#include "ipmip6pm_icmp.h"
|
|
#include "ipmip6pm_if.h"
|
|
#include "ipmip6pm_route.h"
|
|
#include "ipmip6pm_pktbuf.h"
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 4 DEFINES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 5 TYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 EXTERN PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
IP_PUBLIC Ip_err ipmip6pm_exit(void);
|
|
IP_PUBLIC Ip_err ipmip6pm_init(void);
|
|
IP_PUBLIC Ip_err ipmip6pm_start(void);
|
|
IP_PUBLIC const char *ipmip6pm_version(void);
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 7 LOCAL PROTOTYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 8 DATA
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 9 STATIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
#ifdef IP_PORT_LAS
|
|
extern void ipnet_radvd_main(Ip_bool do_ipd);
|
|
extern Ip_err ipnet_radvd_create(void);
|
|
|
|
IPCOM_PROCESS(ipmip6pm_radvd_proc);
|
|
IPCOM_PROCESS(ipmip6pm_radvd_proc)
|
|
{
|
|
ipnet_radvd_create();
|
|
ipnet_radvd_main(IP_FALSE);
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 10 GLOBAL FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 11 PUBLIC FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
IP_PUBLIC IPCOM_PROCESS(ipmip6pm_proc);
|
|
IP_PUBLIC
|
|
IPCOM_PROCESS(ipmip6pm_proc)
|
|
{
|
|
#ifdef IP_PORT_LAS
|
|
ipcom_proc_create("ipmip6pm_radvd", (Ipcom_proc_func)ipmip6pm_radvd_proc,
|
|
IPCOM_PROC_STACK_LARGE, IP_NULL);
|
|
#endif
|
|
|
|
ipmip6pm_main();
|
|
}
|
|
|
|
/*
|
|
*===========================================================================
|
|
* ipmip6pm_start
|
|
*===========================================================================
|
|
* Description:
|
|
* Parameters:
|
|
* Returns:
|
|
*
|
|
*/
|
|
IP_PUBLIC Ip_err
|
|
ipmip6pm_start(void)
|
|
{
|
|
Ipcom_proc_attr attr;
|
|
Ip_err ret;
|
|
|
|
ipcom_proc_attr_init(&attr);
|
|
attr.stacksize = IPCOM_PROC_STACK_LARGE;
|
|
|
|
ret = ipcom_proc_acreate("ipmip6pmd", ipmip6pm_proc, &attr, IP_NULL);
|
|
ip_assert(ret == IPCOM_SUCCESS);
|
|
|
|
return ret;
|
|
}
|
|
|
|
|
|
/*
|
|
*===========================================================================
|
|
* ipmip6pm_version
|
|
*===========================================================================
|
|
* Description:
|
|
* Parameters:
|
|
* Returns:
|
|
*
|
|
*/
|
|
IP_PUBLIC const char *
|
|
ipmip6pm_version(void)
|
|
{
|
|
return "@(#) IPMIP6PM $Name: VXWORKS_ITER40_2019102207 $ - INTERPEAK_COPYRIGHT_STRING";
|
|
}
|
|
|
|
|
|
#if defined (IP_PORT_LAS)
|
|
|
|
IP_PUBLIC Ip_err ipcom_daemon_configure(void);
|
|
IP_PUBLIC Ip_err ipcom_daemon_create(void);
|
|
|
|
IP_PUBLIC Ip_err
|
|
ipcom_daemon_configure(void)
|
|
{
|
|
return IPCOM_SUCCESS;
|
|
}
|
|
|
|
IP_PUBLIC Ip_err
|
|
ipcom_daemon_create(void)
|
|
{
|
|
return IPCOM_SUCCESS;
|
|
}
|
|
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|