Files
2026-07-30 11:19:44 +05:30

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
****************************************************************************
*/