/* ipmipmn_node.h - ipmipmn_node.h */ /* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmipmn_node.h,v $ $Revision: 1.21 $ * $Source: /home/interpeak/CVSRoot/ipmipmn/src/ipmipmn_node.h,v $ * $Author: ulf $ $Date: 2009-06-08 11:05:54 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIPMN_NODE_H #define IPMIPMN_NODE_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* DESCRIPTION No description currently provided */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include "ipmipmn_if.h" #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ enum { IPMIPMN_NODE_IFP_SOLICIT_DONE = 0, IPMIPMN_NODE_IFP_SOLICIT_MAY = 1, IPMIPMN_NODE_IFP_SOLICIT_REQUIRED = 2 }; /* **************************************************************************** * 5 TYPES **************************************************************************** */ /* Changing the config data below requires a complete reboot */ typedef struct Ipmipmn_node_conf_primary { Ip_u32 home_address; /* home address */ Ip_u32 home_netmask; /* home network mask */ Ip_u32 home_gateway; /* home network mask */ Ip_bool reordering; /* Dynamically allocated data below this line */ Ipmip4_msgext_uhdr_t *nai_mn; int *coa_lookup; } Ipmipmn_node_conf_primary_t; /* Changing this config data allows current connections to survive */ typedef struct Ipmipmn_node_conf_secondary { Ip_bool nat_t; Ip_bool nat_t_forced; Ip_bool ipike_reconfigure; Ip_bool ipike_mobility; Ip_bool revocation; Ip_bool simbind; Ip_u16 nat_t_keepalive; Ip_s8 nat_t_tunnel; Ip_s8 tunneltype; int mtu; int solicitations; /* Dynamically allocated data below this line */ char *ifname; } Ipmipmn_node_conf_secondary_t; typedef struct Ipmipmn_node_conf { Ipmipmn_api_node_conf_t api; Ipmipmn_node_conf_primary_t primary; Ipmipmn_node_conf_secondary_t secondary; char **excluded; } Ipmipmn_node_conf_t; struct Ipmipmn_route_node; typedef struct Ipmipmn_node { /* Generic Node */ Ipmipmn_api_node_t api; Ipmipmn_node_conf_t *conf; /* Configuration name */ char *name; /* Policy, tunnel and routes */ struct Ipmipmn_route_node *route; Ipmipmn_iff_notify_t mnRegIFPNotifier; int mnRegIFPSyncCounter; Ip_u8 mnRegIFPSolicit; Ipmipmn_api_coa_t *mnRegLastCoA; Ipmip_timer_t mnProbeTimer; } Ipmipmn_node_t; extern Ipmipmn_api_node_functable_t ipmipmn_node_func; extern Ipmipmn_api_node_state_functable_t ipmipmn_node_state_func; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /******************************************************************************* * * ipmipmn_node_reconfigure - ipmipmn_node_reconfigure * * Reconfigure the nodes in the context * * Parameters: * \is * \i data * The context * \i proc * The process * \ie * * RETURNS: No return value * * ERRNO: * * \NOMANUAL */ IP_GLOBAL void ipmipmn_node_reconfigure ( struct Ipmipmn_context *data, struct Ipmip_proc *proc ); /******************************************************************************* * * ipmipmn_node_alloc - ipmipmn_node_alloc * * Create a node. * * Parameters: * \is * \i data * Context * \i proc * Process * \i name * Node name * \ie * * RETURNS: The allocated node. * * ERRNO: * * \NOMANUAL */ IP_GLOBAL Ipmipmn_node_t * ipmipmn_node_alloc ( struct Ipmipmn_context *data, struct Ipmip_proc *proc, const char *name ); /******************************************************************************* * * ipmipmn_node_init_coa - ipmipmn_node_init_coa * * Init parameters for a new CoA * * Parameters: * \is * \i data * Context * \i proc * Process * \i node * The Node * \ie * * RETURNS: No return value * * ERRNO: * * \NOMANUAL */ IP_GLOBAL void ipmipmn_node_init_coa ( struct Ipmipmn_context *data, struct Ipmip_proc *proc, Ipmipmn_node_t *node ); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */