170 lines
4.7 KiB
C
170 lines
4.7 KiB
C
/* ipmipmn_if.h - ipmipmn_if.h */
|
|
/*
|
|
******************************************************************************
|
|
* HEADER FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmipmn_api_coa.h,v $ $Revision: 1.3 $
|
|
* $Source: /home/interpeak/CVSRoot/ipmipmn/include/private/ipmipmn_api_coa.h,v $
|
|
* $Author: jhorteli $ $Date: 2009-04-23 14:13:50 $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
|
|
******************************************************************************
|
|
*/
|
|
#ifndef IPMIPMN_COA_API_H
|
|
#define IPMIPMN_COA_API_H
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
*/
|
|
/*
|
|
DESCRIPTION
|
|
|
|
No description currently provided
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 CONFIGURATION
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 3 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
#include <private/ipmip4_if.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 4 DEFINES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 5 TYPES
|
|
****************************************************************************
|
|
*/
|
|
struct Ipmip_proc;
|
|
|
|
struct Ipmipmn_api_coa;
|
|
typedef int (*Ipmipmn_api_coa_output_t)
|
|
(
|
|
struct Ipmipmn_api_context *data,
|
|
struct Ipmip_proc *proc,
|
|
struct Ipmipmn_api_node *node,
|
|
struct Ipmipmn_api_pktbuf *pbuf,
|
|
struct Ipmipmn_api_coa *coa,
|
|
Ip_bool deregister,
|
|
Ip_u32 src,
|
|
Ip_u32 dst,
|
|
void *extarg
|
|
);
|
|
|
|
typedef struct Ipmipmn_api_coa_fa
|
|
{
|
|
Ip_u16 adv_seq;
|
|
Ip_u16 adv_flags;
|
|
Ip_u16 lifetime;
|
|
Ip_u32 seen;
|
|
Ip_bool revoked;
|
|
|
|
Ipmip_lladdr_t *lladdr;
|
|
Ipmip_lladdr_t *lladdr_llh;
|
|
Ipmip4_msgext_uhdr_t *challenge;
|
|
Ipmip_timer_t timer;
|
|
} Ipmipmn_api_coa_fa_t;
|
|
|
|
typedef struct Ipmipmn_api_coa_ha
|
|
{
|
|
Ip_u16 lifetime;
|
|
|
|
Ip_u8 verify;
|
|
Ip_u8 __reserved;
|
|
|
|
Ipmip_lladdr_t *lladdr;
|
|
Ipmip_timer_t timer;
|
|
} Ipmipmn_api_coa_ha_t;
|
|
|
|
typedef struct Ipmipmn_api_coa_tia
|
|
{
|
|
Ip_u32 local_address;
|
|
Ip_u32 ike_address;
|
|
Ip_bool mobiked;
|
|
} Ipmipmn_api_coa_tia_t;
|
|
|
|
typedef struct Ipmipmn_api_coa_ccoa
|
|
{
|
|
Ip_bool ike_reconfigure;
|
|
Ip_bool ike_mobility;
|
|
} Ipmipmn_api_coa_ccoa_t;
|
|
|
|
typedef union Ipmipmn_api_coa_params
|
|
{
|
|
Ipmipmn_api_coa_fa_t fa;
|
|
Ipmipmn_api_coa_ha_t ha;
|
|
Ipmipmn_api_coa_tia_t tia;
|
|
Ipmipmn_api_coa_ccoa_t ccoa;
|
|
} Ipmipmn_api_coa_params_t;
|
|
|
|
typedef struct Ipmipmn_api_coa
|
|
{
|
|
Ipcom_list next;
|
|
|
|
/**/
|
|
Ip_u32 type;
|
|
Ip_u32 addr;
|
|
|
|
char *name;
|
|
Ip_u32 peer;
|
|
int route_reverse;
|
|
int route_ro;
|
|
|
|
/* Not seen since we've lost interface */
|
|
Ip_bool down;
|
|
Ip_bool sysref;
|
|
Ip_bool unreliable;
|
|
|
|
/* Number of current references; protected by the interface's
|
|
* lock
|
|
*/
|
|
Ip_u32 refcnt;
|
|
|
|
/* Notifier entry used for modification and verification */
|
|
Ip_u32 timestamp;
|
|
|
|
/**/
|
|
Ipmipmn_api_coa_output_t output;
|
|
|
|
/* Lock used for protecting COA information */
|
|
Ipmipmn_api_coa_params_t params;
|
|
} Ipmipmn_api_coa_t;
|
|
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|