Files
m241Neelima/components/ip_net2-6.9/ipmip6ha/src/ipmip6ha_nemo_dsmipv6.h
T
2026-07-30 11:19:44 +05:30

175 lines
7.3 KiB
C

/*
******************************************************************************
* 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 <joel.hortelius@interpeak.se>
******************************************************************************
*/
#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
****************************************************************************
*/