/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6ha_pktbuf.h,v $ $Revision: 1.13 $ * $Source: /home/interpeak/CVSRoot/ipmip6ha/config/ipmip6ha_pktbuf.h,v $ * $Author: jhorteli $ $Date: 2010-03-30 15:00:37 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIP6HA_PKTBUF_H #define IPMIP6HA_PKTBUF_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmip6ha_if; struct Ipmip6_if; struct Ipmip6ha_context; struct Ipmip6ha_mag; typedef struct Ipmip6ha_pktbuf_pktinfo { Ip_u32 mip6BindingCOAType; union Ipmip6_mib_InetAddress mip6BindingCOA; Ip_u16 mip6BindingUDPEncapPort; Ip_bool mip6BindingUDPEncapsulate; Ip_bool mip6BindingCOANAT; Ip_u32 mip6BindingHomeAddressType; union Ipmip6_mib_InetAddress mip6BindingHomeAddress; Ip_u8 iperr; Ip_u8 haMobilityError; Ip_u8 haMobilityBindingTunnelingType; Ip_u8 haMobilityBindingSuccessCode; Ip_time_t haBindingLastUpdated; Ip_u16 haMobilityBindingTimeGranted; Ip_u16 haMobilityBindingSequenceNumber; Ip_u16 haMobilityReason; Ip_u16 haMobilityBindingFlags; Ip_time_t haMobilityPrefixValid; Ip_time_t haMobilityPrefixTimestamp; Ip_bool haMobilityDeregistration; Ip_bool haMobilitySelectiveDeregistration; Ip_bool haMobilityRefreshRequest; } Ipmip6ha_pktbuf_pktinfo_t; typedef struct Ipmip6ha_pktbuf { Ipmip6_pktbuf_t ipmip6; Ip_u32 state; Ip_bool update_services; Ip_bool refresh_request; Ip_u32 extensions_processed; /* The arriving interface */ union { struct Ipmip6ha_if *priv; struct Ipmip6_if *pub; } iff_home; union { struct Ipmip6ha_if *priv; struct Ipmip6_if *pub; } iff_transport; Ipmip_buffer_t mo_reply; Ipmip6ha_pktbuf_pktinfo_t pktinfo; void **extensions; } Ipmip6ha_pktbuf_t; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /* *=========================================================================== * ipmip6ha_pktbuf_alloc *=========================================================================== * Description: Allocate a packet buffer * Parameters: ctx - Context * proc - Process * Returns: A newly allocated packet buffer * */ IP_GLOBAL Ipmip_pktbuf_t *ipmip6ha_pktbuf_alloc(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ip_size_t extra); /* *=========================================================================== * ipmip6ha_pktbuf_free *=========================================================================== * Description: Free a packet buffer * Parameters: ctx - Context * proc - Process * pbuf - The packet buffer * Returns: * */ IP_GLOBAL void ipmip6ha_pktbuf_free(struct Ipmip6ha_context *ctx, struct Ipmip_proc *proc, Ipmip6ha_pktbuf_t *pbuf); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */