38#ifndef PROTOCORE_FLOW_EXPORT_H
39#define PROTOCORE_FLOW_EXPORT_H
43#if PROTOCORE_ENABLE_FLOW_EXPORT
47#define FLOW_V5_HEADER_SIZE 24
48#define FLOW_V5_RECORD_SIZE 48
57 uint32_t flow_sequence;
60 uint16_t sampling_interval;
92 uint16_t information_element_id;
93 uint16_t field_length;
106 const FlowV5Header *header;
107 const FlowV5Record *record;
115 uint32_t export_time;
116 uint32_t sequence_number;
117 uint32_t observation_domain_id;
123 const FlowFieldSpecifier *fields;
130 const uint8_t *record;
162 uint16_t template_id;
165 FlowMessageArgs message;
166 FlowTemplateArgs tmpl;
173extern FlowExportVars FlowExportV;
178 void (*
const v5_header)(uint8_t *work);
179 void (*
const v5_record)(uint8_t *work);
180 void (*
const ipfix_begin)(uint8_t *work);
181 void (*
const v9_begin)(uint8_t *work);
182 void (*
const template_set)(uint8_t *work);
183 void (*
const data_set_begin)(uint8_t *work);
184 void (*
const data_record)(uint8_t *work);
185 void (*
const data_set_end)(uint8_t *work);
186 void (*
const message_finish)(uint8_t *work);
191void protocore_flow_export_v5_header(uint8_t *work);
192void protocore_flow_export_v5_record(uint8_t *work);
193void protocore_flow_export_ipfix_begin(uint8_t *work);
194void protocore_flow_export_v9_begin(uint8_t *work);
195void protocore_flow_export_template_set(uint8_t *work);
196void protocore_flow_export_data_set_begin(uint8_t *work);
197void protocore_flow_export_data_record(uint8_t *work);
198void protocore_flow_export_data_set_end(uint8_t *work);
199void protocore_flow_export_message_finish(uint8_t *work);
205static const FlowExportNs FlowExport __attribute__((unused)) = {
206 .v5_header = protocore_flow_export_v5_header,
207 .v5_record = protocore_flow_export_v5_record,
208 .ipfix_begin = protocore_flow_export_ipfix_begin,
209 .v9_begin = protocore_flow_export_v9_begin,
210 .template_set = protocore_flow_export_template_set,
211 .data_set_begin = protocore_flow_export_data_set_begin,
212 .data_record = protocore_flow_export_data_record,
213 .data_set_end = protocore_flow_export_data_set_end,
214 .message_finish = protocore_flow_export_message_finish,
226uint8_t *protocore_flow_export_span(
void);
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS