private.h File Reference

fixbuf IPFIX protocol library private interface. More...

#include <fixbuf/public.h>
#include <sp.h>
#include <pthread.h>

Go to the source code of this file.

Typedefs

typedef struct sp_groupname_st sp_groupname_t
 sp_groupname_t
 
typedef struct fbSpreadSpec_st fbSpreadSpec_t
 fbSpreadSpec_t
 
typedef struct fbUDPConnSpec_st fbUDPConnSpec_t
 An UDP Connection specifier. More...
 
typedef struct fbTemplateOptRec_st fbTemplateOptRec_t
 Template metadata options record structure. More...
 

Macros

#define IPFIX_ENTERPRISE_BIT   0x8000
 define the bit in ID's that marks the Enterprise ID's
 
#define FB_MSGLEN_MAX   65535
 definition of the max-size of an fbuf_t buffer, or the default/only size
 
#define FB_SPREAD_NUM_GROUPS   16
 maximum number of groups supported
 
#define FB_SPREAD_MTU   8192
 maximum size of expected message
 

Functions

void fBufRewind (fBuf_t *fbuf)
 fBufRewind More...
 
gboolean fBufAppendTemplate (fBuf_t *fbuf, uint16_t tmpl_id, fbTemplate_t *tmpl, gboolean revoked, GError **err)
 fBufAppendTemplate More...
 
void fBufSetExportGroups (fBuf_t *fbuf, char **groups, int num_groups, GError **err)
 fBufSetExportGroups More...
 
void fBufRemoveTemplateTcplan (fBuf_t *fbuf, fbTemplate_t *tmpl)
 fBufRemoveTemplateTcplan More...
 
void fBufSetSession (fBuf_t *fbuf, fbSession_t *session)
 fBufSetSession More...
 
uint16_t fBufGetExportTemplate (fBuf_t *fbuf)
 fBufGetExportTemplate More...
 
uint16_t fBufGetInternalTemplate (fBuf_t *fbuf)
 fBufGetInternalTemplate More...
 
uint32_t fbInfoElementHash (fbInfoElement_t *ie)
 fbInfoElementHash More...
 
gboolean fbInfoElementEqual (const fbInfoElement_t *a, const fbInfoElement_t *b)
 fbInfoElementEqual More...
 
void fbInfoElementDebug (gboolean tmpl, fbInfoElement_t *ie)
 fbInfoElementDebug More...
 
const fbInfoElement_tfbInfoModelGetElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie)
 fbInfoModelGetElement More...
 
gboolean fbInfoElementCopyToTemplate (fbInfoModel_t *model, fbInfoElement_t *ex_ie, fbInfoElement_t *tmpl_ie)
 fbInfoElementCopyToTemplate More...
 
gboolean fbInfoElementCopyToTemplateByName (fbInfoModel_t *model, const char *name, uint16_t len_override, fbInfoElement_t *tmpl_ie)
 fbInfoElementCopyToTemplateByName More...
 
const fbInfoElement_tfbInfoModelAddAlienElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie)
 fbInfoModelAddAlienElement More...
 
void fbTemplateRetain (fbTemplate_t *tmpl)
 fbTemplateRetain More...
 
void fbTemplateRelease (fbTemplate_t *tmpl)
 fbTemplateRelease More...
 
void fbTemplateFree (fbTemplate_t *tmpl)
 fbTemplateFree More...
 
void fbTemplateDebug (const char *label, uint16_t tid, fbTemplate_t *tmpl)
 fbTemplateDebug More...
 
fbNewTemplateCallback_fn fbSessionNewTemplateCallback (fbSession_t *session)
 Returns the callback function for a given session. More...
 
void * fbSessionNewTemplateCallbackAppCtx (fbSession_t *session)
 Return the callback function's application context for a given session. More...
 
fbSession_tfbSessionClone (fbSession_t *base)
 fbSessionClone More...
 
uint32_t fbSessionGetSequence (fbSession_t *session)
 fbSessionGetSequence More...
 
void fbSessionSetSequence (fbSession_t *session, uint32_t sequence)
 fbSessionSetSequence More...
 
void fbSessionSetTemplateBuffer (fbSession_t *session, fBuf_t *fbuf)
 fbSessionSetTemplateBuffer More...
 
void fbSessionSetCollector (fbSession_t *session, fbCollector_t *collector)
 fbSessionSetCollector More...
 
void fbSessionSetGroupParams (fbSession_t *session, sp_groupname_t *groups, int num_groups)
 fbSessionSetGroupParams More...
 
void fbSessionSetPrivateGroup (fbSession_t *session, char *group, char *privgroup)
 fbSessionSetPrivateGroup More...
 
void fbSessionSetGroup (fbSession_t *session, char *group)
 fbSessionSetGroup More...
 
unsigned int fbSessionGetGroupOffset (fbSession_t *session, char *group)
 fbSessionGetGroupOffset More...
 
unsigned int fbSessionGetGroup (fbSession_t *session)
 fbSessionGetGroup More...
 
void fbSessionClearIntTmplTableFlag (fbSession_t *session)
 fbSessionClearIntTmplTableFlag More...
 
void fbSessionClearExtTmplTableFlag (fbSession_t *session)
 fbSessionClearExtTmplTableFlag More...
 
int fbSessionIntTmplTableFlagIsSet (fbSession_t *session)
 fbSessionIntTmplTableFlagIsSet More...
 
int fbSessionExtTmplTableFlagIsSet (fbSession_t *session)
 fbSessionExtTmplTableFlagIsSet More...
 
gboolean fbConnSpecLookupAI (fbConnSpec_t *spec, gboolean passive, GError **err)
 fbConnSpecLookupAI More...
 
gboolean fbConnSpecInitTLS (fbConnSpec_t *spec, gboolean passive, GError **err)
 fbConnSpecInitTLS More...
 
fbConnSpec_tfbConnSpecCopy (fbConnSpec_t *spec)
 fbConnSpecCopy More...
 
void fbConnSpecFree (fbConnSpec_t *spec)
 fbConnSpecFree More...
 
fbSpreadSpec_tfbConnSpreadCopy (fbSpreadParams_t *spec)
 fbConnSpreadCopy More...
 
void fbConnSpreadFree (fbSpreadSpec_t *spec)
 fbConnSpreadFree More...
 
const char * fbConnSpreadError (int err)
 fbConnSpreadError More...
 
void fbExporterSetGroupsToSend (fbExporter_t *exporter, char **groups, int num_groups)
 fbExporterSetGroupToSend More...
 
gboolean fbExporterCheckGroups (fbExporter_t *exporter, char **groups, int num_groups)
 fbExporterCheckGroups More...
 
uint16_t fbExporterGetMTU (fbExporter_t *exporter)
 fbExporterGetMTU More...
 
gboolean fbExportMessage (fbExporter_t *exporter, uint8_t *msgbase, size_t msglen, GError **err)
 fbExportMessage More...
 
void fbExporterFree (fbExporter_t *exporter)
 fbExporterFree More...
 
void fbCollectorRemoveListenerLastBuf (fBuf_t *fbuf, fbCollector_t *collector)
 fbCollectorRemoveListenerLastBuf More...
 
fbCollector_tfbCollectorAllocSocket (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen)
 fbCollectorAllocSocket More...
 
fbCollector_tfbCollectorAllocTLS (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen, GError **err)
 fbCollectorAllocTLS More...
 
gboolean fbCollectMessage (fbCollector_t *collector, uint8_t *msgbase, size_t *msglen, GError **err)
 fbCollectMessage More...
 
int fbCollectorGetFD (fbCollector_t *collector)
 fbCollectorGetFD More...
 
void fbCollectorSetFD (fbCollector_t *collector, int fd)
 fbCollectorSetFD More...
 
void fbCollectorFree (fbCollector_t *collector)
 fbCollectorFree More...
 
gboolean fbCollectorHasTranslator (fbCollector_t *collector)
 fbCollectorHasTranslator More...
 
gboolean fbCollectMessageBuffer (uint8_t *hdr, size_t b_len, size_t *m_len, GError **err)
 fbCollectMessageBuffer More...
 
gboolean fbCollectorTestGroupMembership (fbCollector_t *collector, int group_offset)
 fbCollectorTestGroupMembership More...
 
void fbListenerAppFree (fbListener_t *listener, void *ctx)
 fbListenerAppFree More...
 
void fbListenerRemoveLastBuf (fBuf_t *fbuf, fbListener_t *listener)
 fbListenerRemoveLastBuf More...
 
void fbListenerRemove (fbListener_t *listener, int fd)
 fbListenerRemove More...
 
fbConnSpec_tfbListenerGetConnSpec (fbListener_t *listener)
 fbListenerGetConnSpec More...
 
void fbCollectorInterruptSocket (fbCollector_t *collector)
 Interrupt the socket for a given collector to stop it from reading more data. More...
 
gboolean fbListenerCallAppInit (fbListener_t *listener, fbUDPConnSpec_t *spec, GError **err)
 call appinit from UDP More...
 
fbSession_tfbListenerSetPeerSession (fbListener_t *listener, fbSession_t *session)
 Set the session on the fbuf and listener.
 

Data Structures

struct  sp_groupname_st
 sp_groupname_t More...
 
struct  fbSpreadSpec_st
 fbSpreadSpec_t More...
 
struct  fbUDPConnSpec_st
 An UDP Connection specifier. More...
 
struct  fbTemplateOptRec_st
 Template metadata options record structure. More...
 
struct  fbTemplate_st
 An IPFIX template or options template structure. More...
 
union  fbUDPConnSpec_st.peer
 key to this conn spec More...
 

Detailed Description

fixbuf IPFIX protocol library private interface.

These calls and structures are intended for the use of libfixbuf modules, and as such are not documented or guaranteed to remain stable in any way. Applications using these calls and structures may have to be modified to track changes to this interface across minor version releases of fixbuf.

Typedef Documentation

◆ fbTemplateOptRec_t

Template metadata options record structure.

◆ fbUDPConnSpec_t

An UDP Connection specifier.

These are managed by the collector. The collector creates one fbUDPConnSpec_t per "UDP session." A UDP session is defined by a unique IP and observation domain."

Function Documentation

◆ fbCollectMessage()

gboolean fbCollectMessage ( fbCollector_t collector,
uint8_t *  msgbase,
size_t *  msglen,
GError **  err 
)

fbCollectMessage

Parameters
collector
msgbase
msglen
err

◆ fbCollectMessageBuffer()

gboolean fbCollectMessageBuffer ( uint8_t *  hdr,
size_t  b_len,
size_t *  m_len,
GError **  err 
)

fbCollectMessageBuffer

used for applications that manage their own connection, file reading, etc.

Parameters
hdr
b_len
m_len
err
Returns
TRUE/FALSE

◆ fbCollectorAllocSocket()

fbCollector_t* fbCollectorAllocSocket ( fbListener_t listener,
void *  ctx,
int  fd,
struct sockaddr *  peer,
size_t  peerlen 
)

fbCollectorAllocSocket

Parameters
listener
ctx
fd
peer
peerlen

◆ fbCollectorAllocTLS()

fbCollector_t* fbCollectorAllocTLS ( fbListener_t listener,
void *  ctx,
int  fd,
struct sockaddr *  peer,
size_t  peerlen,
GError **  err 
)

fbCollectorAllocTLS

Parameters
listener
ctx
fd
peer
peerlen
err

◆ fbCollectorFree()

void fbCollectorFree ( fbCollector_t collector)

fbCollectorFree

Parameters
collector

◆ fbCollectorGetFD()

int fbCollectorGetFD ( fbCollector_t collector)

fbCollectorGetFD

Parameters
collector

◆ fbCollectorHasTranslator()

gboolean fbCollectorHasTranslator ( fbCollector_t collector)

fbCollectorHasTranslator

Parameters
collector

◆ fbCollectorInterruptSocket()

void fbCollectorInterruptSocket ( fbCollector_t collector)

Interrupt the socket for a given collector to stop it from reading more data.

Parameters
collectorpointer to the collector to stop reading from

◆ fbCollectorRemoveListenerLastBuf()

void fbCollectorRemoveListenerLastBuf ( fBuf_t fbuf,
fbCollector_t collector 
)

fbCollectorRemoveListenerLastBuf

Parameters
fbuf
collector

◆ fbCollectorSetFD()

void fbCollectorSetFD ( fbCollector_t collector,
int  fd 
)

fbCollectorSetFD

◆ fbCollectorTestGroupMembership()

gboolean fbCollectorTestGroupMembership ( fbCollector_t collector,
int  group_offset 
)

fbCollectorTestGroupMembership

Parameters
collector
group_offset

◆ fbConnSpecCopy()

fbConnSpec_t* fbConnSpecCopy ( fbConnSpec_t spec)

fbConnSpecCopy

Parameters
spec

◆ fbConnSpecFree()

void fbConnSpecFree ( fbConnSpec_t spec)

fbConnSpecFree

Parameters
spec

◆ fbConnSpecInitTLS()

gboolean fbConnSpecInitTLS ( fbConnSpec_t spec,
gboolean  passive,
GError **  err 
)

fbConnSpecInitTLS

Parameters
spec
passive
err

◆ fbConnSpecLookupAI()

gboolean fbConnSpecLookupAI ( fbConnSpec_t spec,
gboolean  passive,
GError **  err 
)

fbConnSpecLookupAI

Parameters
spec
passive
err

◆ fbConnSpreadCopy()

fbSpreadSpec_t* fbConnSpreadCopy ( fbSpreadParams_t spec)

fbConnSpreadCopy

Parameters
spec

◆ fbConnSpreadError()

const char* fbConnSpreadError ( int  err)

fbConnSpreadError

Return a string message for the given Spread error code

Parameters
errthe spread error code
Returns
the text message

◆ fbConnSpreadFree()

void fbConnSpreadFree ( fbSpreadSpec_t spec)

fbConnSpreadFree

Parameters
spec

◆ fbExporterCheckGroups()

gboolean fbExporterCheckGroups ( fbExporter_t exporter,
char **  groups,
int  num_groups 
)

fbExporterCheckGroups

Parameters
exporter
groups
num_groupsof groups in above group list
Returns
TRUE if group is in subscribed group list

◆ fbExporterFree()

void fbExporterFree ( fbExporter_t exporter)

fbExporterFree

Parameters
exporter

◆ fbExporterGetMTU()

uint16_t fbExporterGetMTU ( fbExporter_t exporter)

fbExporterGetMTU

Parameters
exporter

◆ fbExporterSetGroupsToSend()

void fbExporterSetGroupsToSend ( fbExporter_t exporter,
char **  groups,
int  num_groups 
)

fbExporterSetGroupToSend

Parameters
exporter
groups
num_groupsof groups in above group list

◆ fbExportMessage()

gboolean fbExportMessage ( fbExporter_t exporter,
uint8_t *  msgbase,
size_t  msglen,
GError **  err 
)

fbExportMessage

Parameters
exporter
msgbase
msglen
err

◆ fbInfoElementCopyToTemplate()

gboolean fbInfoElementCopyToTemplate ( fbInfoModel_t model,
fbInfoElement_t ex_ie,
fbInfoElement_t tmpl_ie 
)

fbInfoElementCopyToTemplate

Parameters
model
ex_ie
tmpl_ie

◆ fbInfoElementCopyToTemplateByName()

gboolean fbInfoElementCopyToTemplateByName ( fbInfoModel_t model,
const char *  name,
uint16_t  len_override,
fbInfoElement_t tmpl_ie 
)

fbInfoElementCopyToTemplateByName

Parameters
model
name
len_override
tmpl_ie

◆ fbInfoElementDebug()

void fbInfoElementDebug ( gboolean  tmpl,
fbInfoElement_t ie 
)

fbInfoElementDebug

Parameters
tmpl
ie

◆ fbInfoElementEqual()

gboolean fbInfoElementEqual ( const fbInfoElement_t a,
const fbInfoElement_t b 
)

fbInfoElementEqual

Parameters
a
b

◆ fbInfoElementHash()

uint32_t fbInfoElementHash ( fbInfoElement_t ie)

fbInfoElementHash

Parameters
ie

◆ fbInfoModelAddAlienElement()

const fbInfoElement_t* fbInfoModelAddAlienElement ( fbInfoModel_t model,
fbInfoElement_t ex_ie 
)

fbInfoModelAddAlienElement

Parameters
model
ex_ie
Returns
info_elemnt

◆ fbInfoModelGetElement()

const fbInfoElement_t* fbInfoModelGetElement ( fbInfoModel_t model,
fbInfoElement_t ex_ie 
)

fbInfoModelGetElement

Parameters
model
ex_ie

◆ fbListenerAppFree()

void fbListenerAppFree ( fbListener_t listener,
void *  ctx 
)

fbListenerAppFree

Parameters
listener
ctx

◆ fbListenerCallAppInit()

gboolean fbListenerCallAppInit ( fbListener_t listener,
fbUDPConnSpec_t spec,
GError **  err 
)

call appinit from UDP

◆ fbListenerGetConnSpec()

fbConnSpec_t* fbListenerGetConnSpec ( fbListener_t listener)

fbListenerGetConnSpec

Parameters
listener

◆ fbListenerRemove()

void fbListenerRemove ( fbListener_t listener,
int  fd 
)

fbListenerRemove

Parameters
listener
fd

◆ fbListenerRemoveLastBuf()

void fbListenerRemoveLastBuf ( fBuf_t fbuf,
fbListener_t listener 
)

fbListenerRemoveLastBuf

Parameters
fbuf
listener

◆ fbSessionClearExtTmplTableFlag()

void fbSessionClearExtTmplTableFlag ( fbSession_t session)

fbSessionClearExtTmplTableFlag

Parameters
session

◆ fbSessionClearIntTmplTableFlag()

void fbSessionClearIntTmplTableFlag ( fbSession_t session)

fbSessionClearIntTmplTableFlag

Parameters
session

◆ fbSessionClone()

fbSession_t* fbSessionClone ( fbSession_t base)

fbSessionClone

Parameters
base

◆ fbSessionExtTmplTableFlagIsSet()

int fbSessionExtTmplTableFlagIsSet ( fbSession_t session)

fbSessionExtTmplTableFlagIsSet

Parameters
session

◆ fbSessionGetGroup()

unsigned int fbSessionGetGroup ( fbSession_t session)

fbSessionGetGroup

Parameters
session

◆ fbSessionGetGroupOffset()

unsigned int fbSessionGetGroupOffset ( fbSession_t session,
char *  group 
)

fbSessionGetGroupOffset

◆ fbSessionGetSequence()

uint32_t fbSessionGetSequence ( fbSession_t session)

fbSessionGetSequence

Parameters
session

◆ fbSessionIntTmplTableFlagIsSet()

int fbSessionIntTmplTableFlagIsSet ( fbSession_t session)

fbSessionIntTmplTableFlagIsSet

Parameters
session

◆ fbSessionNewTemplateCallback()

fbNewTemplateCallback_fn fbSessionNewTemplateCallback ( fbSession_t session)

Returns the callback function for a given session.

Parameters
session
Returns
the callback function variable in the session

◆ fbSessionNewTemplateCallbackAppCtx()

void* fbSessionNewTemplateCallbackAppCtx ( fbSession_t session)

Return the callback function's application context for a given session.

Parameters
session
Returns
the Application context pointer added to the session

◆ fbSessionSetCollector()

void fbSessionSetCollector ( fbSession_t session,
fbCollector_t collector 
)

fbSessionSetCollector

Parameters
session
collector

◆ fbSessionSetGroup()

void fbSessionSetGroup ( fbSession_t session,
char *  group 
)

fbSessionSetGroup

◆ fbSessionSetGroupParams()

void fbSessionSetGroupParams ( fbSession_t session,
sp_groupname_t groups,
int  num_groups 
)

fbSessionSetGroupParams

◆ fbSessionSetPrivateGroup()

void fbSessionSetPrivateGroup ( fbSession_t session,
char *  group,
char *  privgroup 
)

fbSessionSetPrivateGroup

◆ fbSessionSetSequence()

void fbSessionSetSequence ( fbSession_t session,
uint32_t  sequence 
)

fbSessionSetSequence

Parameters
session
sequence

◆ fbSessionSetTemplateBuffer()

void fbSessionSetTemplateBuffer ( fbSession_t session,
fBuf_t fbuf 
)

fbSessionSetTemplateBuffer

Parameters
session
fbuf

◆ fbTemplateDebug()

void fbTemplateDebug ( const char *  label,
uint16_t  tid,
fbTemplate_t tmpl 
)

fbTemplateDebug

Parameters
label
tid
tmpl

◆ fbTemplateFree()

void fbTemplateFree ( fbTemplate_t tmpl)

fbTemplateFree

Parameters
tmpl

◆ fbTemplateRelease()

void fbTemplateRelease ( fbTemplate_t tmpl)

fbTemplateRelease

Parameters
tmpl

◆ fbTemplateRetain()

void fbTemplateRetain ( fbTemplate_t tmpl)

fbTemplateRetain

Parameters
tmpl

◆ fBufAppendTemplate()

gboolean fBufAppendTemplate ( fBuf_t fbuf,
uint16_t  tmpl_id,
fbTemplate_t tmpl,
gboolean  revoked,
GError **  err 
)

fBufAppendTemplate

Parameters
fbuf
tmpl_id
tmpl
revoked
err
Returns
TRUE on success, FALSE on error

◆ fBufGetExportTemplate()

uint16_t fBufGetExportTemplate ( fBuf_t fbuf)

fBufGetExportTemplate

◆ fBufGetInternalTemplate()

uint16_t fBufGetInternalTemplate ( fBuf_t fbuf)

fBufGetInternalTemplate

◆ fBufRemoveTemplateTcplan()

void fBufRemoveTemplateTcplan ( fBuf_t fbuf,
fbTemplate_t tmpl 
)

fBufRemoveTemplateTcplan

◆ fBufRewind()

void fBufRewind ( fBuf_t fbuf)

fBufRewind

Parameters
fbuf

◆ fBufSetExportGroups()

void fBufSetExportGroups ( fBuf_t fbuf,
char **  groups,
int  num_groups,
GError **  err 
)

fBufSetExportGroups

◆ fBufSetSession()

void fBufSetSession ( fBuf_t fbuf,
fbSession_t session 
)

fBufSetSession


Data Structure Documentation

◆ sp_groupname_st

struct sp_groupname_st

sp_groupname_t

Data Fields
char name[MAX_GROUP_NAME]

◆ fbSpreadSpec_st

struct fbSpreadSpec_st

fbSpreadSpec_t

Data Fields
char * daemon pointer to the daemon host address, in Spread format.

Must be set before the spec is passed to fbExporterAllocSpread

sp_groupname_t * groups pointer to array of group names, must have at least one, and must be null term array
sp_groupname_t * groups_to_send groups to send to
mailbox mbox the mailbox for the connection
int num_groups number of groups in groups
int num_groups_to_send
char privgroup[MAX_GROUP_NAME+2] the connection private name
GError * recv_err GError for thread errors, set by receiver, read by main.
int recv_exit flag to tell the thread to exit
sp_groupname_t * recv_groups groups array for SP_receive
int recv_max length of message buffer
int recv_max_groups max size of group name array
mailbox recv_mbox the receiver's mailbox
char * recv_mess message buffer for receive
int recv_num_groups actual size of group name array
char recv_privgroup[MAX_GROUP_NAME+2] the connection private name for the receiver
pthread_t recv_thread the receiver thread
fbSession_t * session pointer to the session, this MUST be set to a valid session before the spec is passed to fbExporterAllocSpread.
pthread_mutex_t write_lock Spread write lock.

◆ fbUDPConnSpec_st

struct fbUDPConnSpec_st

An UDP Connection specifier.

These are managed by the collector. The collector creates one fbUDPConnSpec_t per "UDP session." A UDP session is defined by a unique IP and observation domain."

Data Fields
void * ctx application context.

Created and owned by the app

time_t last_seen last seen time
struct fbUDPConnSpec_st * next link to next one in list
uint32_t obdomain with peer address this is the key
union fbUDPConnSpec_st peer key to this conn spec
size_t peerlen size of peer
struct fbUDPConnSpec_st * prev doubly linked to timeout faster
gboolean reject reject flag
fbSession_t * session pointer to the session for this peer address

◆ fbTemplateOptRec_st

struct fbTemplateOptRec_st

Template metadata options record structure.

Data Fields
fbVarfield_t template_description Template description (optional)
uint16_t template_id Template ID.
fbVarfield_t template_name List of PEN, IE num pairs.

Template name

◆ fbTemplate_st

struct fbTemplate_st

An IPFIX template or options template structure.

Part of the private interface. Applications should use the fbTemplate calls defined in public.h to manipulate templates instead of accessing this structure directly.

Data Fields
gboolean active TRUE if this template has been activated (is no longer mutable)
void * app_ctx The application's Context pointer for the ctx_free function.
fbTemplateCtxFree_fn ctx_free Callback to free the ctx pointer when template is freed.
gboolean default_length TRUE if any field was created using an fbInfoElementSpec_t with a defaulted length.
fbInfoElement_t ** ie_ary Ordered array of pointers to information elements in this template.
uint16_t ie_count Count of information elements in template.
uint16_t ie_internal_len Total length required to store this template in memory.

Uses sizeof(fbVarfield_t), sizeof(fbBasicList_t), etc instead of 0 as done with ie_len

uint16_t ie_len Total length of information elements in records described by this template.

If the is_varlen flag is set, this represents the minimum length of the information elements in the record (i.e. with each variable length IE's length set to 0).

GHashTable * indices Map of information element to index in ie_ary.
gboolean is_varlen Set to TRUE if this template contains any variable length IEs.
fbTemplateOptRec_t * metadata_rec
fbInfoModel_t * model Information model (for looking up information elements by spec)
uint16_t * off_cache Field offset cache.

For internal use by the transcoder.

int ref_count Reference count.
uint16_t scope_count Count of scope information elements in template.

If sie_count is greater than 0, this template is an options template.

void * tmpl_ctx Template context.

Created and owned by the application when the listener calls the fbNewTemplateCallback_fn.

uint16_t tmpl_len Total length of the template record or options template record defining this template.

Used during template input and output.

◆ fbUDPConnSpec_st.peer

union fbUDPConnSpec_st.peer

key to this conn spec

Data Fields
struct sockaddr_in ip4
struct sockaddr_in6 ip6
struct sockaddr so