private.h File Reference
#include <fixbuf/public.h>
#include <sp.h>
#include <pthread.h>

Go to the source code of this file.

Typedefs

typedef struct fbSpreadSpec_st fbSpreadSpec_t
 
typedef struct fbTemplateOptRec_st fbTemplateOptRec_t
 
typedef struct fbUDPConnSpec_st fbUDPConnSpec_t
 
typedef struct sp_groupname_st sp_groupname_t
 

Macros

#define FB_MSGLEN_MAX   65535
 
#define FB_SPREAD_MTU   8192
 
#define FB_SPREAD_NUM_GROUPS   16
 
#define FB_SSL_ERR_BUFSIZ   512
 
#define IPFIX_ENTERPRISE_BIT   0x8000
 

Functions

gboolean fbCollectMessage (fbCollector_t *collector, uint8_t *msgbase, size_t *msglen, GError **err)
 
gboolean fbCollectMessageBuffer (uint8_t *hdr, size_t b_len, size_t *m_len, GError **err)
 
fbCollector_tfbCollectorAllocSocket (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen, GError **err)
 
fbCollector_tfbCollectorAllocTLS (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen, GError **err)
 
void fbCollectorFree (fbCollector_t *collector)
 
int fbCollectorGetFD (fbCollector_t *collector)
 
gboolean fbCollectorHasTranslator (fbCollector_t *collector)
 
void fbCollectorInterruptSocket (fbCollector_t *collector)
 
void fbCollectorRemoveListenerLastBuf (fBuf_t *fbuf, fbCollector_t *collector)
 
void fbCollectorSetFD (fbCollector_t *collector, int fd)
 
gboolean fbCollectorTestGroupMembership (fbCollector_t *collector, int group_offset)
 
fbConnSpec_tfbConnSpecCopy (fbConnSpec_t *spec)
 
void fbConnSpecFree (fbConnSpec_t *spec)
 
gboolean fbConnSpecInitTLS (fbConnSpec_t *spec, gboolean passive, GError **err)
 
gboolean fbConnSpecLookupAI (fbConnSpec_t *spec, gboolean passive, GError **err)
 
fbSpreadSpec_tfbConnSpreadCopy (fbSpreadParams_t *spec)
 
const char * fbConnSpreadError (int err)
 
void fbConnSpreadFree (fbSpreadSpec_t *spec)
 
gboolean fbExporterCheckGroups (fbExporter_t *exporter, char **groups, int num_groups)
 
void fbExporterFree (fbExporter_t *exporter)
 
uint16_t fbExporterGetMTU (fbExporter_t *exporter)
 
void fbExporterSetGroupsToSend (fbExporter_t *exporter, char **groups, int num_groups)
 
gboolean fbExportMessage (fbExporter_t *exporter, uint8_t *msgbase, size_t msglen, GError **err)
 
fbTemplate_tfbInfoElementAllocTypeTemplate2 (fbInfoModel_t *model, gboolean internal, GError **err)
 
gboolean fbInfoElementCopyToTemplate (fbInfoModel_t *model, fbInfoElement_t *ex_ie, fbInfoElement_t *tmpl_ie, GError **err)
 
gboolean fbInfoElementCopyToTemplateByName (fbInfoModel_t *model, const char *name, uint16_t len_override, fbInfoElement_t *tmpl_ie, GError **err)
 
void fbInfoElementDebug (gboolean tmpl, fbInfoElement_t *ie)
 
gboolean fbInfoElementEqual (const fbInfoElement_t *a, const fbInfoElement_t *b)
 
uint32_t fbInfoElementHash (fbInfoElement_t *ie)
 
const fbInfoElement_tfbInfoModelAddAlienElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie)
 
const fbInfoElement_tfbInfoModelGetElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie)
 
void fbListenerAppFree (fbListener_t *listener, void *ctx)
 
gboolean fbListenerCallAppInit (fbListener_t *listener, fbUDPConnSpec_t *spec, GError **err)
 
fbConnSpec_tfbListenerGetConnSpec (fbListener_t *listener)
 
void fbListenerRemove (fbListener_t *listener, int fd)
 
void fbListenerRemoveLastBuf (fBuf_t *fbuf, fbListener_t *listener)
 
fbSession_tfbListenerSetPeerSession (fbListener_t *listener, fbSession_t *session)
 
void fbSessionClearExtTmplTableFlag (fbSession_t *session)
 
void fbSessionClearIntTmplTableFlag (fbSession_t *session)
 
fbSession_tfbSessionClone (fbSession_t *base)
 
int fbSessionExtTmplTableFlagIsSet (fbSession_t *session)
 
unsigned int fbSessionGetGroup (fbSession_t *session)
 
unsigned int fbSessionGetGroupOffset (fbSession_t *session, char *group)
 
uint32_t fbSessionGetSequence (fbSession_t *session)
 
int fbSessionIntTmplTableFlagIsSet (fbSession_t *session)
 
fbNewTemplateCallback_fn fbSessionNewTemplateCallback (fbSession_t *session)
 
void * fbSessionNewTemplateCallbackAppCtx (fbSession_t *session)
 
void fbSessionSetCollector (fbSession_t *session, fbCollector_t *collector)
 
void fbSessionSetGroup (fbSession_t *session, char *group)
 
void fbSessionSetGroupParams (fbSession_t *session, sp_groupname_t *groups, unsigned int num_groups)
 
void fbSessionSetPrivateGroup (fbSession_t *session, char *group, char *privgroup)
 
void fbSessionSetSequence (fbSession_t *session, uint32_t sequence)
 
void fbSessionSetTemplateBuffer (fbSession_t *session, fBuf_t *fbuf)
 
void fbTemplateAddMetadataRecord (fbTemplate_t *tmpl, uint16_t tid, const char *name, const char *description)
 
fbTemplate_tfbTemplateAllocTemplateMetadataTmpl (fbInfoModel_t *model, gboolean internal, GError **err)
 
void fbTemplateDebug (const char *label, uint16_t tid, fbTemplate_t *tmpl)
 
void fbTemplateFree (fbTemplate_t *tmpl)
 
void fbTemplateRelease (fbTemplate_t *tmpl)
 
void fbTemplateRetain (fbTemplate_t *tmpl)
 
gboolean fBufAppendTemplate (fBuf_t *fbuf, uint16_t tmpl_id, fbTemplate_t *tmpl, gboolean revoked, GError **err)
 
uint16_t fBufGetExportTemplate (fBuf_t *fbuf)
 
uint16_t fBufGetInternalTemplate (fBuf_t *fbuf)
 
void fBufRemoveTemplateTcplan (fBuf_t *fbuf, fbTemplate_t *tmpl)
 
void fBufRewind (fBuf_t *fbuf)
 
void fBufSetExportGroups (fBuf_t *fbuf, char **groups, int num_groups, GError **err)
 
void fBufSetSession (fBuf_t *fbuf, fbSession_t *session)
 

Data Structures

struct  fbSpreadSpec_st
 
struct  fbTemplate_st
 
struct  fbTemplateOptRec_st
 
struct  fbUDPConnSpec_st
 
union  fbUDPConnSpec_st.peer
 
struct  sp_groupname_st
 

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

◆ sp_groupname_t

sp_groupname_t

◆ fbSpreadSpec_t

fbSpreadSpec_t

◆ 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."

◆ fbTemplateOptRec_t

Template metadata options record structure.

Macro Definition Documentation

◆ IPFIX_ENTERPRISE_BIT

#define IPFIX_ENTERPRISE_BIT   0x8000

define the bit in ID's that marks the Enterprise ID's

◆ FB_MSGLEN_MAX

#define FB_MSGLEN_MAX   65535

definition of the max-size of an fbuf_t buffer, or the default/only size

◆ FB_SSL_ERR_BUFSIZ

#define FB_SSL_ERR_BUFSIZ   512

size of the buffer for OpenSSL error messages

◆ FB_SPREAD_NUM_GROUPS

#define FB_SPREAD_NUM_GROUPS   16

maximum number of groups supported

◆ FB_SPREAD_MTU

#define FB_SPREAD_MTU   8192

maximum size of expected message

Function Documentation

◆ fBufRewind()

void fBufRewind ( fBuf_t * fbuf)

fBufRewind

Parameters
fbuf

◆ 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

◆ fBufSetExportGroups()

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

fBufSetExportGroups

◆ fBufRemoveTemplateTcplan()

void fBufRemoveTemplateTcplan ( fBuf_t * fbuf,
fbTemplate_t * tmpl )

fBufRemoveTemplateTcplan

◆ fBufSetSession()

void fBufSetSession ( fBuf_t * fbuf,
fbSession_t * session )

fBufSetSession

◆ fBufGetExportTemplate()

uint16_t fBufGetExportTemplate ( fBuf_t * fbuf)

fBufGetExportTemplate

◆ fBufGetInternalTemplate()

uint16_t fBufGetInternalTemplate ( fBuf_t * fbuf)

fBufGetInternalTemplate

◆ fbInfoElementHash()

uint32_t fbInfoElementHash ( fbInfoElement_t * ie)

fbInfoElementHash

Parameters
ie

◆ fbInfoElementEqual()

gboolean fbInfoElementEqual ( const fbInfoElement_t * a,
const fbInfoElement_t * b )

fbInfoElementEqual

Parameters
a
b

◆ fbInfoElementDebug()

void fbInfoElementDebug ( gboolean tmpl,
fbInfoElement_t * ie )

fbInfoElementDebug

Parameters
tmpl
ie

◆ fbInfoModelGetElement()

const fbInfoElement_t * fbInfoModelGetElement ( fbInfoModel_t * model,
fbInfoElement_t * ex_ie )

fbInfoModelGetElement

Parameters
model
ex_ie

◆ fbInfoElementCopyToTemplate()

gboolean fbInfoElementCopyToTemplate ( fbInfoModel_t * model,
fbInfoElement_t * ex_ie,
fbInfoElement_t * tmpl_ie,
GError ** err )

fbInfoElementCopyToTemplate

Parameters
model
ex_ie
tmpl_ie
err

◆ fbInfoElementCopyToTemplateByName()

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

fbInfoElementCopyToTemplateByName

Parameters
model
name
len_override
tmpl_ie
err

◆ fbInfoModelAddAlienElement()

const fbInfoElement_t * fbInfoModelAddAlienElement ( fbInfoModel_t * model,
fbInfoElement_t * ex_ie )

fbInfoModelAddAlienElement

Parameters
model
ex_ie
Returns
info_elemnt

◆ fbInfoElementAllocTypeTemplate2()

fbTemplate_t * fbInfoElementAllocTypeTemplate2 ( fbInfoModel_t * model,
gboolean internal,
GError ** err )

fbInfoElementAllocTypeTemplate2

Parameters
model
internal
err
Returns
tmpl

◆ fbTemplateRetain()

void fbTemplateRetain ( fbTemplate_t * tmpl)

fbTemplateRetain

Parameters
tmpl

◆ fbTemplateRelease()

void fbTemplateRelease ( fbTemplate_t * tmpl)

fbTemplateRelease

Parameters
tmpl

◆ fbTemplateFree()

void fbTemplateFree ( fbTemplate_t * tmpl)

fbTemplateFree

Parameters
tmpl

◆ fbTemplateDebug()

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

fbTemplateDebug

Parameters
label
tid
tmpl

◆ fbTemplateAllocTemplateMetadataTmpl()

fbTemplate_t * fbTemplateAllocTemplateMetadataTmpl ( fbInfoModel_t * model,
gboolean internal,
GError ** err )

Allocates a new Template to describe a record that holds Template Metadata.

This is, the template_metadata_spec.

When internal is TRUE the padding is included; otherwise it is not.

Parameters
model
internal
err
Returns
The new template or NULL.

◆ fbTemplateAddMetadataRecord()

void fbTemplateAddMetadataRecord ( fbTemplate_t * tmpl,
uint16_t tid,
const char * name,
const char * description )

Sets the metadata_rec member of tmpl to a newly allocated fbTemplateOptRec_t, and sets its template ID, name, and description to the given parameters.

Frees any metadata_rec that already existed on the template.

Parameters
tmpl
tid
nameShould not be NULL
descriptionMay be NULL

◆ 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

◆ fbSessionClone()

fbSession_t * fbSessionClone ( fbSession_t * base)

fbSessionClone

Parameters
base

◆ fbSessionGetSequence()

uint32_t fbSessionGetSequence ( fbSession_t * session)

fbSessionGetSequence

Parameters
session

◆ 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

◆ fbSessionSetCollector()

void fbSessionSetCollector ( fbSession_t * session,
fbCollector_t * collector )

fbSessionSetCollector

Parameters
session
collector

◆ fbSessionSetGroupParams()

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

fbSessionSetGroupParams

◆ fbSessionSetPrivateGroup()

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

fbSessionSetPrivateGroup

◆ fbSessionSetGroup()

void fbSessionSetGroup ( fbSession_t * session,
char * group )

fbSessionSetGroup

◆ fbSessionGetGroupOffset()

unsigned int fbSessionGetGroupOffset ( fbSession_t * session,
char * group )

fbSessionGetGroupOffset

◆ fbSessionGetGroup()

unsigned int fbSessionGetGroup ( fbSession_t * session)

fbSessionGetGroup

Parameters
session

◆ fbSessionClearIntTmplTableFlag()

void fbSessionClearIntTmplTableFlag ( fbSession_t * session)

fbSessionClearIntTmplTableFlag

Parameters
session

◆ fbSessionClearExtTmplTableFlag()

void fbSessionClearExtTmplTableFlag ( fbSession_t * session)

fbSessionClearExtTmplTableFlag

Parameters
session

◆ fbSessionIntTmplTableFlagIsSet()

int fbSessionIntTmplTableFlagIsSet ( fbSession_t * session)

fbSessionIntTmplTableFlagIsSet

Parameters
session

◆ fbSessionExtTmplTableFlagIsSet()

int fbSessionExtTmplTableFlagIsSet ( fbSession_t * session)

fbSessionExtTmplTableFlagIsSet

Parameters
session

◆ fbConnSpecLookupAI()

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

fbConnSpecLookupAI

Parameters
spec
passive
err

◆ fbConnSpecInitTLS()

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

fbConnSpecInitTLS

Parameters
spec
passive
err

◆ fbConnSpecCopy()

fbConnSpec_t * fbConnSpecCopy ( fbConnSpec_t * spec)

fbConnSpecCopy

Parameters
spec

◆ fbConnSpecFree()

void fbConnSpecFree ( fbConnSpec_t * spec)

fbConnSpecFree

Parameters
spec

◆ fbConnSpreadCopy()

fbSpreadSpec_t * fbConnSpreadCopy ( fbSpreadParams_t * spec)

fbConnSpreadCopy

Parameters
spec

◆ fbConnSpreadFree()

void fbConnSpreadFree ( fbSpreadSpec_t * spec)

fbConnSpreadFree

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

◆ fbExporterSetGroupsToSend()

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

fbExporterSetGroupToSend

Parameters
exporter
groups
num_groupsof groups in above group list

◆ 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

◆ fbExporterGetMTU()

uint16_t fbExporterGetMTU ( fbExporter_t * exporter)

fbExporterGetMTU

Parameters
exporter

◆ fbExportMessage()

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

fbExportMessage

Parameters
exporter
msgbase
msglen
err

◆ fbExporterFree()

void fbExporterFree ( fbExporter_t * exporter)

fbExporterFree

Parameters
exporter

◆ fbCollectorRemoveListenerLastBuf()

void fbCollectorRemoveListenerLastBuf ( fBuf_t * fbuf,
fbCollector_t * collector )

fbCollectorRemoveListenerLastBuf

Parameters
fbuf
collector

◆ fbCollectorAllocSocket()

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

fbCollectorAllocSocket

Parameters
listener
ctx
fd
peer
peerlen
err

◆ 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

◆ fbCollectMessage()

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

fbCollectMessage

Parameters
collector
msgbase
msglen
err

◆ fbCollectorGetFD()

int fbCollectorGetFD ( fbCollector_t * collector)

fbCollectorGetFD

Parameters
collector

◆ fbCollectorSetFD()

void fbCollectorSetFD ( fbCollector_t * collector,
int fd )

fbCollectorSetFD

◆ fbCollectorFree()

void fbCollectorFree ( fbCollector_t * collector)

fbCollectorFree

Parameters
collector

◆ fbCollectorHasTranslator()

gboolean fbCollectorHasTranslator ( fbCollector_t * collector)

fbCollectorHasTranslator

Parameters
collector

◆ 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

◆ fbCollectorTestGroupMembership()

gboolean fbCollectorTestGroupMembership ( fbCollector_t * collector,
int group_offset )

fbCollectorTestGroupMembership

Parameters
collector
group_offset

◆ fbListenerAppFree()

void fbListenerAppFree ( fbListener_t * listener,
void * ctx )

fbListenerAppFree

Parameters
listener
ctx

◆ fbListenerRemoveLastBuf()

void fbListenerRemoveLastBuf ( fBuf_t * fbuf,
fbListener_t * listener )

fbListenerRemoveLastBuf

Parameters
fbuf
listener

◆ fbListenerRemove()

void fbListenerRemove ( fbListener_t * listener,
int fd )

fbListenerRemove

Parameters
listener
fd

◆ fbListenerGetConnSpec()

fbConnSpec_t * fbListenerGetConnSpec ( fbListener_t * listener)

fbListenerGetConnSpec

Parameters
listener

◆ 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

◆ fbListenerCallAppInit()

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

call appinit from UDP

◆ fbListenerSetPeerSession()

fbSession_t * fbListenerSetPeerSession ( fbListener_t * listener,
fbSession_t * session )

Set the session on the fbuf and listener.


Data Structure Documentation

◆ fbSpreadSpec_st

struct fbSpreadSpec_st

fbSpreadSpec_t

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

◆ 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
fbInfoModel_t * model Information model (for looking up information elements by spec)
int ref_count Reference count.
uint16_t ie_count Count of information elements in template.
uint16_t scope_count Count of scope information elements in template.

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

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).

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 tmpl_len Total length of the template record or options template record defining this template.

Used during template input and output.

gboolean is_varlen Set to TRUE if this template contains any variable length IEs.
fbInfoElement_t ** ie_ary Ordered array of pointers to information elements in this template.
GHashTable * indices Map of information element to index in ie_ary.
uint16_t * off_cache Field offset cache.

For internal use by the transcoder.

gboolean active TRUE if this template has been activated (is no longer mutable)
gboolean default_length TRUE if any field was created using an fbInfoElementSpec_t with a defaulted length.
fbTemplateOptRec_t * metadata_rec
void * tmpl_ctx Template context.

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

fbTemplateCtxFree_fn ctx_free Callback to free the ctx pointer when template is freed.
void * app_ctx The application's Context pointer for the ctx_free function.

◆ fbTemplateOptRec_st

struct fbTemplateOptRec_st

Template metadata options record structure.

Data Fields
uint16_t template_id Template ID.
uint8_t template_padding[6]
fbVarfield_t template_name Template name.
fbVarfield_t template_description Template description (optional)

◆ 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
fbSession_t * session pointer to the session for this peer address
void * ctx application context.

Created and owned by the app

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

◆ fbUDPConnSpec_st.peer

union fbUDPConnSpec_st.peer

key to this conn spec

Data Fields
struct sockaddr so
struct sockaddr_in ip4
struct sockaddr_in6 ip6

◆ sp_groupname_st

struct sp_groupname_st

sp_groupname_t

Data Fields
char name[MAX_GROUP_NAME]