/* ****************************************************************************** * HEADER FILE * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmippm_pktbuf.h,v $ $Revision: 1.6 $ * $Source: /home/interpeak/CVSRoot/ipmippm/config/ipmippm_pktbuf.h,v $ * $Author: ulf $ $Date: 2009-06-08 11:05:57 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Joel Hortelius ****************************************************************************** */ #ifndef IPMIPMN_PKTBUF_H #define IPMIPMN_PKTBUF_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** */ /* **************************************************************************** * 2 CONFIGURATION **************************************************************************** */ /* **************************************************************************** * 3 INCLUDE FILES **************************************************************************** */ #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 4 DEFINES **************************************************************************** */ /* **************************************************************************** * 5 TYPES **************************************************************************** */ struct Ipmippm_context; struct Ipmippm_pktbuf; struct Ipmippm_client; struct Ipmip_proc; struct Ipmipmn_api_coa; typedef void (*Ipmippm_pktbuf_trigger_complete_t) (struct Ipmippm_context *ctx, struct Ipmip_proc *proc, struct Ipmippm_client *client, struct Ipmippm_pktbuf *pbuf, Ip_u8 status); typedef struct Ipmippm_pktbuf_trigger_info { struct Ipmip_attr *pmTriggerAttr[IPMIP4_CLI_PMIPV4_ATTR_MAX + 1]; Ip_u8 pmTriggerParsingState; Ip_u8 pmTriggerSubscriberType; struct Ip_iovec pmTriggerSubscriber; Ip_u8 pmTriggerPerNodeAuthMethod; Ip_u32 pmTriggerType; Ipmipmn_api_coa_output_t pmTriggerCOAOutput; void *pmTriggerCOAOutputAuxData; Ip_size_t pmTriggerCOAOutputAuxSize; Ipmippm_pktbuf_trigger_complete_t pmTriggerCompletion; void *pmTriggerCompletionData; /* Internal */ struct Ipmipmn_api_coa *pmTriggerCOA; } Ipmippm_pktbuf_trigger_info_t; typedef struct Ipmippm_pktbuf { Ipmipmn_api_pktbuf_t api; Ipmippm_pktbuf_trigger_info_t trigger; } Ipmippm_pktbuf_t; /* **************************************************************************** * 6 FUNCTIONS **************************************************************************** */ /* *=========================================================================== * ipmippm_pktbuf_alloc *=========================================================================== * Description: Allocate a packet buffer * Parameters: ctx - Context * proc - Process * Returns: A newly allocated packet buffer * */ IP_GLOBAL Ipmip_pktbuf_t *ipmippm_pktbuf_alloc(struct Ipmippm_context *ctx, struct Ipmip_proc *proc, Ip_size_t extra); /* *=========================================================================== * ipmippm_pktbuf_free *=========================================================================== * Description: Free a packet buffer * Parameters: ctx - Context * proc - Process * pbuf - The packet buffer * Returns: * */ IP_GLOBAL void ipmippm_pktbuf_free(struct Ipmippm_context *ctx, struct Ipmip_proc *proc, Ipmippm_pktbuf_t *pbuf); #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */