NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_telemetry_exporter_netflow.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES, ALL RIGHTS RESERVED.
3  *
4  * This software product is a proprietary product of NVIDIA CORPORATION &
5  * AFFILIATES (the "Company") and all right, title, and interest in and to the
6  * software product, including all associated intellectual property rights, are
7  * and shall remain exclusively with the Company.
8  *
9  * This software product is governed by the End User License Agreement
10  * provided with the software product.
11  *
12  */
13 
39 #ifndef DOCA_TELEMETRY_EXPORTER_NETFLOW_H_
40 #define DOCA_TELEMETRY_EXPORTER_NETFLOW_H_
41 
42 #include <stddef.h>
43 #include <stdint.h>
44 
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 
57 /* 9910c128-3961-47e6-be6c-715a0f03add6 */
58 #define DOCA_NETFLOW_APP_ID \
59  { \
60  0x99, 0x10, 0xc1, 0x28, 0x39, 0x61, 0x47, 0xe6, 0xbe, 0x6c, 0x71, 0x5a, 0x0f, 0x03, 0xad, 0xd6 \
61  }
62 
64 #define DOCA_NETFLOW_DEFAULT_PORT 2055
65 
69 struct doca_telemetry_exporter_netflow_flowset_field;
70 
93 struct doca_telemetry_exporter_netflow_template;
94 
115 
125 void doca_telemetry_exporter_netflow_set_collector_addr(const char *collector_addr);
126 
138 
149 
150 /* ================================ NETFLOW FIELD ================================ */
151 
163 doca_error_t doca_telemetry_exporter_netflow_field_create(struct doca_telemetry_exporter_netflow_flowset_field **field);
164 
175 void doca_telemetry_exporter_netflow_field_set_type(struct doca_telemetry_exporter_netflow_flowset_field *field,
176  uint16_t type);
177 
189 void doca_telemetry_exporter_netflow_field_set_len(struct doca_telemetry_exporter_netflow_flowset_field *field,
190  uint16_t length);
191 
203 doca_error_t doca_telemetry_exporter_netflow_field_destroy(struct doca_telemetry_exporter_netflow_flowset_field *field);
204 
205 /* ================================ NETFLOW TEMPLATE ================================ */
206 
218 
232 
244 
259 
272  struct doca_telemetry_exporter_netflow_template **netflow_template);
273 
290  struct doca_telemetry_exporter_netflow_template *netflow_template,
291  struct doca_telemetry_exporter_netflow_flowset_field *field);
292 
305  struct doca_telemetry_exporter_netflow_template *netflow_template);
306 
315 
327 
341 
353 
367 
376 
388 
404 
415 
426 
438 
463  const struct doca_telemetry_exporter_netflow_template *netflow_template,
464  const void **records,
465  size_t nof_records,
466  size_t *nof_records_sent);
467 
477 
485 
486 #ifdef __cplusplus
487 } /* extern "C" */
488 #endif
489 
492 #endif /* DOCA_TELEMETRY_EXPORTER_NETFLOW_H_ */
char path[MAX_PATH_LEN+1]
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
Definition: doca_compat.h:103
enum doca_error doca_error_t
DOCA API return codes.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_source_set_id(const char *source_id)
Set source id.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_get_buf_data_root(const char **path)
Get data root path.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_destroy(void)
Free the exporter memory and close the connection.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_get_file_write_max_size(size_t *size)
Get file maximum size.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_file_write_enabled(void)
Enable file write file write is disabled by default.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_source_set_tag(const char *source_tag)
Set source tag.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_field_set_len(struct doca_telemetry_exporter_netflow_flowset_field *field, uint16_t length)
Set doca telemetry netflow field length.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_send(const struct doca_telemetry_exporter_netflow_template *netflow_template, const void **records, size_t nof_records, size_t *nof_records_sent)
Sending netflow records. Need to init first.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_start(void)
Finalizes netflow setup.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_buf_data_root(const char *path)
Set buffer data root Default path is "/opt/mellanox/doca/services/telemetry/data/".
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_get_buf_size(uint64_t *size)
Get buffer size.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_ipc_enabled(void)
Enable IPC IPC is disabled by default.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_template_destroy(struct doca_telemetry_exporter_netflow_template *netflow_template)
Destructor for DOCA netflow template.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_file_write_max_size(size_t size)
Set file maximum size Default value is 1MB.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_field_destroy(struct doca_telemetry_exporter_netflow_flowset_field *field)
Destructor for DOCA netflow field.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_buf_size(uint64_t size)
Set buffer size Default value is 60000 bytes.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_collector_addr(const char *collector_addr)
Set collector address.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_field_set_type(struct doca_telemetry_exporter_netflow_flowset_field *field, uint16_t type)
Set doca telemetry netflow field type.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_collector_port(uint16_t collector_port)
Set collector port. See DOCA_NETFLOW_DEFAULT_PORT for default value.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_ipc_sockets_dir(const char *path)
Set IPC socket directory. Default path is "/opt/mellanox/doca/services/telemetry/ipc_sockets".
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_template_create(struct doca_telemetry_exporter_netflow_template **netflow_template)
Create new telemetry netflow template.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_init(uint16_t source_id)
Init exporter memory, set configs and open connection.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_get_file_write_max_age(doca_telemetry_exporter_timestamp_t *max_age)
Get file maximum age.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_get_ipc_sockets_dir(const char **path)
Get IPC socket directory.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_template_add_field(struct doca_telemetry_exporter_netflow_template *netflow_template, struct doca_telemetry_exporter_netflow_flowset_field *field)
Add DOCA telemetry netflow field to netflow_template. The user loses the ownership of the field after...
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_flush(void)
Immediately flush the data of the DOCA internal Netflow source.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_max_packet_size(uint16_t max_packet_size)
Set max packet size.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_netflow_set_file_write_max_age(doca_telemetry_exporter_timestamp_t max_age)
Set file maximum age Default value is 1 hour.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_netflow_field_create(struct doca_telemetry_exporter_netflow_flowset_field **field)
Create new telemetry netflow field.
uint64_t doca_telemetry_exporter_timestamp_t
DOCA schema type index type.
uint8_t type
Definition: packets.h:0
static struct doca_telemetry_exporter_netflow_template * netflow_template