/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6mn_pktbuf.h,v $ $Revision: 1.7 $ * $Source: /home/interpeak/CVSRoot/ipmip6mn/config/ipmip6mn_pktbuf.h,v $ * $Author: jhorteli $ $Date: 2009-03-31 15:00:25 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIP6MN_PKTBUF_H #define IPMIP6MN_PKTBUF_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmip6_bc; struct Ipmip6mn_context; typedef struct Ipmip6mn_pktbuf_pktinfo { struct Ip_in6_addr *src; struct Ip_in6_addr *home; Ip_u8 iperr; Ip_u32 refresh; Ip_u16 flags; } Ipmip6mn_pktbuf_pktinfo_t; typedef struct Ipmip6mn_pktbuf { Ipmip6_pktbuf_t ipmip6; Ip_u32 state; Ip_u32 extensions_processed; struct Ipmip6_bc *bc; Ipmip6mn_pktbuf_pktinfo_t pktinfo; void **extensions; } Ipmip6mn_pktbuf_t; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /* *=========================================================================== * ipmip6mn_pktbuf_alloc *=========================================================================== * Description: Allocate a packet buffer * Parameters: ctx - Context * proc - Process * Returns: A newly allocated packet buffer * */ IP_GLOBAL Ipmip_pktbuf_t *ipmip6mn_pktbuf_alloc(struct Ipmip6mn_context *ctx, struct Ipmip_proc *proc, Ip_size_t extra); /* *=========================================================================== * ipmip6mn_pktbuf_free *=========================================================================== * Description: Free a packet buffer * Parameters: ctx - Context * proc - Process * pbuf - The packet buffer * Returns: * */ IP_GLOBAL void ipmip6mn_pktbuf_free(struct Ipmip6mn_context *ctx, struct Ipmip_proc *proc, Ipmip6mn_pktbuf_t *pbuf); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */