/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip6pm_pktbuf.h,v $ $Revision: 1.10 $ * $Source: /home/interpeak/CVSRoot/ipmip6pm/config/ipmip6pm_pktbuf.h,v $ * $Author: jhorteli $ $Date: 2009-12-02 15:33:30 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIP6PM_PKTBUF_H #define IPMIP6PM_PKTBUF_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmip6pm_if; struct Ipmip6_if; struct Ipmip6pm_context; typedef struct Ipmip6pm_pktbuf_pktinfo { struct Ip_in6_addr *src; struct Ip_in6_addr *home; Ip_u8 iperr; Ip_u8 pmBindingStatus; Ip_u16 pmMobilityBindingTimeGranted; Ip_u16 pmMobilityBindingSequenceNumber; Ip_u16 pmMobilityBindingFlags; Ip_time_t pmBindingLastUpdated; Ip_bool pmMobilityDeregistration; Ip_u32 pmMobilityBindingRefresh; Ip_u32 pmMobilityTransport; Ip_bool pmMobilityTransportChanged; Ip_u32 *pmMobilityTransportGREUplink; } Ipmip6pm_pktbuf_pktinfo_t; typedef struct Ipmip6pm_pktbuf { Ipmip6_pktbuf_t ipmip6; Ip_u32 state; Ip_u32 processed[IPMIP6PM_FUNCTION_MAX]; Ipmip6pm_pktbuf_pktinfo_t pktinfo; union { struct Ipmip6pm_if *priv; struct Ipmip6_if *pub; } iff; void **extdata[IPMIP6PM_FUNCTION_MAX]; } Ipmip6pm_pktbuf_t; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /* *=========================================================================== * ipmip6pm_pktbuf_alloc *=========================================================================== * Description: Allocate a packet buffer * Parameters: ctx - Context * proc - Process * Returns: A newly allocated packet buffer * */ IP_GLOBAL Ipmip_pktbuf_t *ipmip6pm_pktbuf_alloc(struct Ipmip6pm_context *ctx, struct Ipmip_proc *proc, Ip_size_t extra); /* *=========================================================================== * ipmip6pm_pktbuf_free *=========================================================================== * Description: Free a packet buffer * Parameters: ctx - Context * proc - Process * pbuf - The packet buffer * Returns: * */ IP_GLOBAL void ipmip6pm_pktbuf_free(struct Ipmip6pm_context *ctx, struct Ipmip_proc *proc, Ipmip6pm_pktbuf_t *pbuf); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */