/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6ha_nemo_dsmipv6.h,v $ $Revision: 1.6 $ * $Source: /home/interpeak/CVSRoot/ipmip6ha/src/ipmip6ha_nemo_dsmipv6.h,v $ * $Author: jhorteli $ $Date: 2009-02-25 14:33:56 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIP6HA_NEMO_DSMIPV6_H #define IPMIP6HA_NEMO_DSMIPV6_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #ifdef IPMIP_USE_INET #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmip6ha_node; struct Ipmip6ha_context; struct Ipmip_proc; struct Ipmip_dhcp_pool; struct Ipmip_dhcp_option; typedef struct Ipmip6ha_nemo_dsmipv6 { Ipcom_list next; struct Ipmip6ha_nemo_dsmipv6 *acl_next; Ip_u32 prefix; Ip_u32 len; Ip_u32 netmask; Ip_u8 flags; } Ipmip6ha_nemo_dsmipv6_t; typedef struct Ipmip6ha_nemo_dsmipv6_config { Ip_u32 netmask; Ipcom_list opts; struct Ipmip6ha_nemo_dsmipv6_config *parent; } Ipmip6ha_nemo_dsmipv6_config_t; typedef struct Ipmip6ha_nemo_dsmipv6_acl { Ipmip6ha_nemo_dsmipv6_t *hoa; Ipmip6ha_nemo_dsmipv6_t *pd; struct Ipmip_dhcp_pool *pool; Ip_bool mobile_router; Ip_u32 limit_prefix; Ip_u32 limit_hoa; } Ipmip6ha_nemo_dsmipv6_acl_t; typedef struct Ipmip6ha_nemo_dsmipv6_context { struct Ipmip_dhcp_rtab *nemo_dhcp_rtab; Ipcom_list nemo_dsmipv6_pools; Ipcom_route *nemo_dsmipv6_acl_mr_hoa; Ipcom_hash *nemo_dsmipv6_acl_mr_nai; Ipcom_route *nemo_inet_config; Ipcom_hash *nemo_dsmipv6_acl_lma_nai; } Ipmip6ha_nemo_dsmipv6_context_t; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ IP_GLOBAL Ipmip6ha_nemo_dsmipv6_config_t *ipmip6ha_nemo_dsmipv6_subnet_config_get(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t *nctx, Ip_u32 addr); IP_GLOBAL Ip_u32 ipmip6ha_nemo_dsmipv6_subnet_config_gateway(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t *nemo, Ip_u32 addr); IP_GLOBAL Ip_u32 ipmip6ha_nemo_dsmipv6_subnet_config_netmask(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t *nemo, Ip_u32 addr); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_free(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, struct Ipmip6ha_node *node, Ipmip6ha_nemo_dsmipv6_t *nemo); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_free_list(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, struct Ipmip6ha_node *node, Ipcom_list *nemos); IP_GLOBAL int ipmip6ha_nemo_dsmipv6_verify(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, struct Ipmip6ha_node *node, struct Ipmip6ha_pktbuf *pbuf, Ip_bool *changed); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_dump_config(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t *nemo, const char *ifname, struct Ipmip_buffer *buffer); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_unconfigure(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t *nemo); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_configure(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_nemo_dsmipv6_context_t **nemop, const char *ifname); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_context_init(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc); IP_GLOBAL void ipmip6ha_nemo_dsmipv6_context_destroy(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc); #ifdef __cplusplus } #endif #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */