fixbuf IPFIX protocol library private interface. More...
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. | |
| typedef struct fbTemplateOptRec_st | fbTemplateOptRec_t |
| Template metadata options record structure. | |
Functions | |
| void | fBufRewind (fBuf_t *fbuf) |
| fBufRewind | |
| gboolean | fBufAppendTemplate (fBuf_t *fbuf, uint16_t tmpl_id, fbTemplate_t *tmpl, gboolean revoked, GError **err) |
| fBufAppendTemplate | |
| void | fBufSetExportGroups (fBuf_t *fbuf, char **groups, int num_groups, GError **err) |
| fBufSetExportGroups | |
| void | fBufRemoveTemplateTcplan (fBuf_t *fbuf, fbTemplate_t *tmpl) |
| fBufRemoveTemplateTcplan | |
| void | fBufSetSession (fBuf_t *fbuf, fbSession_t *session) |
| fBufSetSession | |
| uint16_t | fBufGetExportTemplate (fBuf_t *fbuf) |
| fBufGetExportTemplate | |
| uint16_t | fBufGetInternalTemplate (fBuf_t *fbuf) |
| fBufGetInternalTemplate | |
| uint32_t | fbInfoElementHash (fbInfoElement_t *ie) |
| fbInfoElementHash | |
| gboolean | fbInfoElementEqual (const fbInfoElement_t *a, const fbInfoElement_t *b) |
| fbInfoElementEqual | |
| void | fbInfoElementDebug (gboolean tmpl, fbInfoElement_t *ie) |
| fbInfoElementDebug | |
| const fbInfoElement_t * | fbInfoModelGetElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie) |
| fbInfoModelGetElement | |
| gboolean | fbInfoElementCopyToTemplate (fbInfoModel_t *model, fbInfoElement_t *ex_ie, fbInfoElement_t *tmpl_ie, GError **err) |
| fbInfoElementCopyToTemplate | |
| gboolean | fbInfoElementCopyToTemplateByName (fbInfoModel_t *model, const char *name, uint16_t len_override, fbInfoElement_t *tmpl_ie, GError **err) |
| fbInfoElementCopyToTemplateByName | |
| const fbInfoElement_t * | fbInfoModelAddAlienElement (fbInfoModel_t *model, fbInfoElement_t *ex_ie) |
| fbInfoModelAddAlienElement | |
| fbTemplate_t * | fbInfoElementAllocTypeTemplate2 (fbInfoModel_t *model, gboolean internal, GError **err) |
| fbInfoElementAllocTypeTemplate2 | |
| void | fbTemplateRetain (fbTemplate_t *tmpl) |
| fbTemplateRetain | |
| void | fbTemplateRelease (fbTemplate_t *tmpl) |
| fbTemplateRelease | |
| void | fbTemplateFree (fbTemplate_t *tmpl) |
| fbTemplateFree | |
| void | fbTemplateDebug (const char *label, uint16_t tid, fbTemplate_t *tmpl) |
| fbTemplateDebug | |
| fbTemplate_t * | fbTemplateAllocTemplateMetadataTmpl (fbInfoModel_t *model, gboolean internal, GError **err) |
| Allocates a new Template to describe a record that holds Template Metadata. | |
| 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. | |
| fbNewTemplateCallback_fn | fbSessionNewTemplateCallback (fbSession_t *session) |
| Returns the callback function for a given session. | |
| void * | fbSessionNewTemplateCallbackAppCtx (fbSession_t *session) |
| Return the callback function's application context for a given session. | |
| fbSession_t * | fbSessionClone (fbSession_t *base) |
| fbSessionClone | |
| uint32_t | fbSessionGetSequence (fbSession_t *session) |
| fbSessionGetSequence | |
| void | fbSessionSetSequence (fbSession_t *session, uint32_t sequence) |
| fbSessionSetSequence | |
| void | fbSessionSetTemplateBuffer (fbSession_t *session, fBuf_t *fbuf) |
| fbSessionSetTemplateBuffer | |
| void | fbSessionSetCollector (fbSession_t *session, fbCollector_t *collector) |
| fbSessionSetCollector | |
| void | fbSessionSetGroupParams (fbSession_t *session, sp_groupname_t *groups, unsigned int num_groups) |
| fbSessionSetGroupParams | |
| void | fbSessionSetPrivateGroup (fbSession_t *session, char *group, char *privgroup) |
| fbSessionSetPrivateGroup | |
| void | fbSessionSetGroup (fbSession_t *session, char *group) |
| fbSessionSetGroup | |
| unsigned int | fbSessionGetGroupOffset (fbSession_t *session, char *group) |
| fbSessionGetGroupOffset | |
| unsigned int | fbSessionGetGroup (fbSession_t *session) |
| fbSessionGetGroup | |
| void | fbSessionClearIntTmplTableFlag (fbSession_t *session) |
| fbSessionClearIntTmplTableFlag | |
| void | fbSessionClearExtTmplTableFlag (fbSession_t *session) |
| fbSessionClearExtTmplTableFlag | |
| int | fbSessionIntTmplTableFlagIsSet (fbSession_t *session) |
| fbSessionIntTmplTableFlagIsSet | |
| int | fbSessionExtTmplTableFlagIsSet (fbSession_t *session) |
| fbSessionExtTmplTableFlagIsSet | |
| gboolean | fbConnSpecLookupAI (fbConnSpec_t *spec, gboolean passive, GError **err) |
| fbConnSpecLookupAI | |
| gboolean | fbConnSpecInitTLS (fbConnSpec_t *spec, gboolean passive, GError **err) |
| fbConnSpecInitTLS | |
| fbConnSpec_t * | fbConnSpecCopy (fbConnSpec_t *spec) |
| fbConnSpecCopy | |
| void | fbConnSpecFree (fbConnSpec_t *spec) |
| fbConnSpecFree | |
| fbSpreadSpec_t * | fbConnSpreadCopy (fbSpreadParams_t *spec) |
| fbConnSpreadCopy | |
| void | fbConnSpreadFree (fbSpreadSpec_t *spec) |
| fbConnSpreadFree | |
| const char * | fbConnSpreadError (int err) |
| fbConnSpreadError | |
| void | fbExporterSetGroupsToSend (fbExporter_t *exporter, char **groups, int num_groups) |
| fbExporterSetGroupToSend | |
| gboolean | fbExporterCheckGroups (fbExporter_t *exporter, char **groups, int num_groups) |
| fbExporterCheckGroups | |
| uint16_t | fbExporterGetMTU (fbExporter_t *exporter) |
| fbExporterGetMTU | |
| gboolean | fbExportMessage (fbExporter_t *exporter, uint8_t *msgbase, size_t msglen, GError **err) |
| fbExportMessage | |
| void | fbExporterFree (fbExporter_t *exporter) |
| fbExporterFree | |
| void | fbCollectorRemoveListenerLastBuf (fBuf_t *fbuf, fbCollector_t *collector) |
| fbCollectorRemoveListenerLastBuf | |
| fbCollector_t * | fbCollectorAllocSocket (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen, GError **err) |
| fbCollectorAllocSocket | |
| fbCollector_t * | fbCollectorAllocTLS (fbListener_t *listener, void *ctx, int fd, struct sockaddr *peer, size_t peerlen, GError **err) |
| fbCollectorAllocTLS | |
| gboolean | fbCollectMessage (fbCollector_t *collector, uint8_t *msgbase, size_t *msglen, GError **err) |
| fbCollectMessage | |
| int | fbCollectorGetFD (fbCollector_t *collector) |
| fbCollectorGetFD | |
| void | fbCollectorSetFD (fbCollector_t *collector, int fd) |
| fbCollectorSetFD | |
| void | fbCollectorFree (fbCollector_t *collector) |
| fbCollectorFree | |
| gboolean | fbCollectorHasTranslator (fbCollector_t *collector) |
| fbCollectorHasTranslator | |
| gboolean | fbCollectMessageBuffer (uint8_t *hdr, size_t b_len, size_t *m_len, GError **err) |
| fbCollectMessageBuffer | |
| gboolean | fbCollectorTestGroupMembership (fbCollector_t *collector, int group_offset) |
| fbCollectorTestGroupMembership | |
| void | fbListenerAppFree (fbListener_t *listener, void *ctx) |
| fbListenerAppFree | |
| void | fbListenerRemoveLastBuf (fBuf_t *fbuf, fbListener_t *listener) |
| fbListenerRemoveLastBuf | |
| void | fbListenerRemove (fbListener_t *listener, int fd) |
| fbListenerRemove | |
| fbConnSpec_t * | fbListenerGetConnSpec (fbListener_t *listener) |
| fbListenerGetConnSpec | |
| void | fbCollectorInterruptSocket (fbCollector_t *collector) |
| Interrupt the socket for a given collector to stop it from reading more data. | |
| gboolean | fbListenerCallAppInit (fbListener_t *listener, fbUDPConnSpec_t *spec, GError **err) |
| call appinit from UDP | |
| fbSession_t * | fbListenerSetPeerSession (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... | |
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 struct fbUDPConnSpec_st 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."
| void fBufRewind | ( | fBuf_t * | fbuf | ) |
fBufRewind
| fbuf |
| gboolean fBufAppendTemplate | ( | fBuf_t * | fbuf, |
| uint16_t | tmpl_id, | ||
| fbTemplate_t * | tmpl, | ||
| gboolean | revoked, | ||
| GError ** | err ) |
fBufAppendTemplate
| fbuf | |
| tmpl_id | |
| tmpl | |
| revoked | |
| err |
| uint32_t fbInfoElementHash | ( | fbInfoElement_t * | ie | ) |
fbInfoElementHash
| ie |
| gboolean fbInfoElementEqual | ( | const fbInfoElement_t * | a, |
| const fbInfoElement_t * | b ) |
fbInfoElementEqual
| a | |
| b |
| void fbInfoElementDebug | ( | gboolean | tmpl, |
| fbInfoElement_t * | ie ) |
fbInfoElementDebug
| tmpl | |
| ie |
| const fbInfoElement_t * fbInfoModelGetElement | ( | fbInfoModel_t * | model, |
| fbInfoElement_t * | ex_ie ) |
fbInfoModelGetElement
| model | |
| ex_ie |
| gboolean fbInfoElementCopyToTemplate | ( | fbInfoModel_t * | model, |
| fbInfoElement_t * | ex_ie, | ||
| fbInfoElement_t * | tmpl_ie, | ||
| GError ** | err ) |
fbInfoElementCopyToTemplate
| model | |
| ex_ie | |
| tmpl_ie | |
| err |
| gboolean fbInfoElementCopyToTemplateByName | ( | fbInfoModel_t * | model, |
| const char * | name, | ||
| uint16_t | len_override, | ||
| fbInfoElement_t * | tmpl_ie, | ||
| GError ** | err ) |
fbInfoElementCopyToTemplateByName
| model | |
| name | |
| len_override | |
| tmpl_ie | |
| err |
| const fbInfoElement_t * fbInfoModelAddAlienElement | ( | fbInfoModel_t * | model, |
| fbInfoElement_t * | ex_ie ) |
fbInfoModelAddAlienElement
| model | |
| ex_ie |
| fbTemplate_t * fbInfoElementAllocTypeTemplate2 | ( | fbInfoModel_t * | model, |
| gboolean | internal, | ||
| GError ** | err ) |
fbInfoElementAllocTypeTemplate2
| model | |
| internal | |
| err |
| void fbTemplateRetain | ( | fbTemplate_t * | tmpl | ) |
fbTemplateRetain
| tmpl |
| void fbTemplateRelease | ( | fbTemplate_t * | tmpl | ) |
fbTemplateRelease
| tmpl |
| void fbTemplateFree | ( | fbTemplate_t * | tmpl | ) |
fbTemplateFree
| tmpl |
| void fbTemplateDebug | ( | const char * | label, |
| uint16_t | tid, | ||
| fbTemplate_t * | tmpl ) |
fbTemplateDebug
| label | |
| tid | |
| tmpl |
| 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.
| model | |
| internal | |
| err |
| 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.
| tmpl | |
| tid | |
| name | Should not be NULL |
| description | May be NULL |
| fbNewTemplateCallback_fn fbSessionNewTemplateCallback | ( | fbSession_t * | session | ) |
Returns the callback function for a given session.
| session |
| void * fbSessionNewTemplateCallbackAppCtx | ( | fbSession_t * | session | ) |
Return the callback function's application context for a given session.
| session |
| fbSession_t * fbSessionClone | ( | fbSession_t * | base | ) |
fbSessionClone
| base |
| uint32_t fbSessionGetSequence | ( | fbSession_t * | session | ) |
fbSessionGetSequence
| session |
| void fbSessionSetSequence | ( | fbSession_t * | session, |
| uint32_t | sequence ) |
fbSessionSetSequence
| session | |
| sequence |
| void fbSessionSetTemplateBuffer | ( | fbSession_t * | session, |
| fBuf_t * | fbuf ) |
fbSessionSetTemplateBuffer
| session | |
| fbuf |
| void fbSessionSetCollector | ( | fbSession_t * | session, |
| fbCollector_t * | collector ) |
fbSessionSetCollector
| session | |
| collector |
| unsigned int fbSessionGetGroup | ( | fbSession_t * | session | ) |
fbSessionGetGroup
| session |
| void fbSessionClearIntTmplTableFlag | ( | fbSession_t * | session | ) |
fbSessionClearIntTmplTableFlag
| session |
| void fbSessionClearExtTmplTableFlag | ( | fbSession_t * | session | ) |
fbSessionClearExtTmplTableFlag
| session |
| int fbSessionIntTmplTableFlagIsSet | ( | fbSession_t * | session | ) |
fbSessionIntTmplTableFlagIsSet
| session |
| int fbSessionExtTmplTableFlagIsSet | ( | fbSession_t * | session | ) |
fbSessionExtTmplTableFlagIsSet
| session |
| gboolean fbConnSpecLookupAI | ( | fbConnSpec_t * | spec, |
| gboolean | passive, | ||
| GError ** | err ) |
fbConnSpecLookupAI
| spec | |
| passive | |
| err |
| gboolean fbConnSpecInitTLS | ( | fbConnSpec_t * | spec, |
| gboolean | passive, | ||
| GError ** | err ) |
fbConnSpecInitTLS
| spec | |
| passive | |
| err |
| fbConnSpec_t * fbConnSpecCopy | ( | fbConnSpec_t * | spec | ) |
fbConnSpecCopy
| spec |
| void fbConnSpecFree | ( | fbConnSpec_t * | spec | ) |
fbConnSpecFree
| spec |
| fbSpreadSpec_t * fbConnSpreadCopy | ( | fbSpreadParams_t * | spec | ) |
fbConnSpreadCopy
| spec |
| void fbConnSpreadFree | ( | fbSpreadSpec_t * | spec | ) |
fbConnSpreadFree
| spec |
| const char * fbConnSpreadError | ( | int | err | ) |
fbConnSpreadError
Return a string message for the given Spread error code
| err | the spread error code |
| void fbExporterSetGroupsToSend | ( | fbExporter_t * | exporter, |
| char ** | groups, | ||
| int | num_groups ) |
fbExporterSetGroupToSend
| exporter | |
| groups | |
| num_groups | of groups in above group list |
| gboolean fbExporterCheckGroups | ( | fbExporter_t * | exporter, |
| char ** | groups, | ||
| int | num_groups ) |
fbExporterCheckGroups
| exporter | |
| groups | |
| num_groups | of groups in above group list |
| uint16_t fbExporterGetMTU | ( | fbExporter_t * | exporter | ) |
fbExporterGetMTU
| exporter |
| gboolean fbExportMessage | ( | fbExporter_t * | exporter, |
| uint8_t * | msgbase, | ||
| size_t | msglen, | ||
| GError ** | err ) |
fbExportMessage
| exporter | |
| msgbase | |
| msglen | |
| err |
| void fbExporterFree | ( | fbExporter_t * | exporter | ) |
fbExporterFree
| exporter |
| void fbCollectorRemoveListenerLastBuf | ( | fBuf_t * | fbuf, |
| fbCollector_t * | collector ) |
fbCollectorRemoveListenerLastBuf
| fbuf | |
| collector |
| fbCollector_t * fbCollectorAllocSocket | ( | fbListener_t * | listener, |
| void * | ctx, | ||
| int | fd, | ||
| struct sockaddr * | peer, | ||
| size_t | peerlen, | ||
| GError ** | err ) |
fbCollectorAllocSocket
| listener | |
| ctx | |
| fd | |
| peer | |
| peerlen | |
| err |
| fbCollector_t * fbCollectorAllocTLS | ( | fbListener_t * | listener, |
| void * | ctx, | ||
| int | fd, | ||
| struct sockaddr * | peer, | ||
| size_t | peerlen, | ||
| GError ** | err ) |
fbCollectorAllocTLS
| listener | |
| ctx | |
| fd | |
| peer | |
| peerlen | |
| err |
| gboolean fbCollectMessage | ( | fbCollector_t * | collector, |
| uint8_t * | msgbase, | ||
| size_t * | msglen, | ||
| GError ** | err ) |
fbCollectMessage
| collector | |
| msgbase | |
| msglen | |
| err |
| int fbCollectorGetFD | ( | fbCollector_t * | collector | ) |
fbCollectorGetFD
| collector |
| void fbCollectorFree | ( | fbCollector_t * | collector | ) |
fbCollectorFree
| collector |
| gboolean fbCollectorHasTranslator | ( | fbCollector_t * | collector | ) |
fbCollectorHasTranslator
| collector |
| 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.
| hdr | |
| b_len | |
| m_len | |
| err |
| gboolean fbCollectorTestGroupMembership | ( | fbCollector_t * | collector, |
| int | group_offset ) |
fbCollectorTestGroupMembership
| collector | |
| group_offset |
| void fbListenerAppFree | ( | fbListener_t * | listener, |
| void * | ctx ) |
fbListenerAppFree
| listener | |
| ctx |
| void fbListenerRemoveLastBuf | ( | fBuf_t * | fbuf, |
| fbListener_t * | listener ) |
fbListenerRemoveLastBuf
| fbuf | |
| listener |
| void fbListenerRemove | ( | fbListener_t * | listener, |
| int | fd ) |
fbListenerRemove
| listener | |
| fd |
| fbConnSpec_t * fbListenerGetConnSpec | ( | fbListener_t * | listener | ) |
fbListenerGetConnSpec
| listener |
| void fbCollectorInterruptSocket | ( | fbCollector_t * | collector | ) |
Interrupt the socket for a given collector to stop it from reading more data.
| collector | pointer to the collector to stop reading from |
| struct fbSpreadSpec_st |
| 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 |
| 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 |
| 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). |
| 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. |