/* 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 ****************************************************************************** */ #ifndef IPMIPMN_COA_API_H #define IPMIPMN_COA_API_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* DESCRIPTION No description currently provided */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #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 **************************************************************************** */