24 #ifndef DOCA_TELEMETRY_EXPORTER_H_
25 #define DOCA_TELEMETRY_EXPORTER_H_
51 struct doca_telemetry_exporter_schema;
56 struct doca_telemetry_exporter_source;
71 struct doca_telemetry_exporter_field;
76 struct doca_telemetry_exporter_type;
83 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_BOOL "bool"
85 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_CHAR "char"
87 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_SHORT "short"
89 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT "int"
91 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_LONG "long"
93 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_LONGLONG "long long"
95 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UCHAR "unsigned char"
97 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_USHORT "unsigned short"
99 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT "unsigned int"
101 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_ULONG "unsigned long"
103 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_ULONGLONG "unsigned long long"
105 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_FLOAT "float"
107 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_DOUBLE "double"
109 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT8 "int8_t"
111 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT16 "int16_t"
113 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT32 "int32_t"
115 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_INT64 "int64_t"
117 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT8 "uint8_t"
119 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT16 "uint16_t"
121 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT32 "uint32_t"
123 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT64 "uint64_t"
125 #define DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_TIMESTAMP DOCA_TELEMETRY_EXPORTER_FIELD_TYPE_UINT64
128 #define DOCA_GUID_SIZE 16
153 struct doca_telemetry_exporter_schema **doca_schema);
321 const char *sockets_dir);
340 const char **sockets_dir);
484 struct doca_telemetry_exporter_field *field);
599 const char *new_type_name,
600 struct doca_telemetry_exporter_type *
type,
650 struct doca_telemetry_exporter_source **doca_source);
747 uint64_t user_defined1,
748 uint64_t user_defined2,
766 struct doca_telemetry_exporter_source *doca_source,
767 uint32_t *max_data_size);
char path[MAX_PATH_LEN+1]
doca_telemetry_exporter_timestamp_t timestamp
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
enum doca_error doca_error_t
DOCA API return codes.
uint8_t doca_guid_t[DOCA_GUID_SIZE]
DOCA GUID type.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_reconnect_tries(struct doca_telemetry_exporter_schema *doca_schema, uint8_t *tries)
Get maximum IPC reconnect tries.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_opaque_report(struct doca_telemetry_exporter_source *doca_source, const doca_guid_t app_id, uint64_t user_defined1, uint64_t user_defined2, const void *data, uint32_t data_size)
Report opaque event data via DOCA source.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_init(const char *schema_name, struct doca_telemetry_exporter_schema **doca_schema)
Initialize DOCA schema to prepare it for setting attributes and adding types. DOCA schema is used to ...
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_flush(struct doca_telemetry_exporter_source *doca_source)
Immediately flush the data of the DOCA source. This function is not thread-safe and should not be cal...
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_destroy(struct doca_telemetry_exporter_type *type)
Destroy doca telemetry type previously created by doca_telemetry_exporter_type_create()
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_type_name(struct doca_telemetry_exporter_field *field_info, const char *type)
Set doca telemetry field type.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_reconnect_time(struct doca_telemetry_exporter_schema *doca_schema, uint32_t *max_time)
Get IPC reconnect time in milliseconds.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_file_write_max_size(struct doca_telemetry_exporter_schema *doca_schema, size_t *size)
Get file maximum size.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_destroy(struct doca_telemetry_exporter_source *doca_source)
Destructor for DOCA source.
#define DOCA_GUID_SIZE
DOCA GUID size.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_description(struct doca_telemetry_exporter_field *field_info, const char *desc)
Set doca telemetry field description.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_field_destroy(struct doca_telemetry_exporter_field *field)
Destroy field previously created by doca_telemetry_exporter_field_create()
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_buf_size(struct doca_telemetry_exporter_schema *doca_schema, uint64_t *size)
Get buffer size.
enum doca_telemetry_exporter_ipc_status doca_telemetry_exporter_ipc_status_t
DOCA telemetry IPC status.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_enabled(struct doca_telemetry_exporter_schema *doca_schema)
Enable IPC IPC is disabled by default.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_source_set_id(struct doca_telemetry_exporter_source *doca_source, const char *source_id)
Set source id.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_buf_data_root(struct doca_telemetry_exporter_schema *doca_schema, const char *path)
Set buffer data root Default path is "/opt/mellanox/doca/services/telemetry/data/".
uint8_t doca_telemetry_exporter_type_index_t
DOCA schema field type index.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_array_len(struct doca_telemetry_exporter_field *field_info, uint16_t len)
Set doca telemetry field length.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_add_type(struct doca_telemetry_exporter_schema *doca_schema, const char *new_type_name, struct doca_telemetry_exporter_type *type, doca_telemetry_exporter_type_index_t *type_index)
Add user-defined fields to create new type in DOCA schema. The users loses the ownership of the type ...
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_reconnect_time(struct doca_telemetry_exporter_schema *doca_schema, uint32_t max_time)
Set IPC reconnect time in milliseconds Time limit for reconnect attempts. If the limit is reached,...
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_buf_size(struct doca_telemetry_exporter_schema *doca_schema, uint64_t size)
Set buffer size Default value is 60000 bytes.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_opaque_events_enabled(struct doca_telemetry_exporter_schema *doca_schema)
Enable opaque events Opaque events are disabled by default.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_socket_timeout(struct doca_telemetry_exporter_schema *doca_schema, uint32_t *timeout)
Get IPC socket timeout in milliseconds.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_create(struct doca_telemetry_exporter_schema *doca_schema, struct doca_telemetry_exporter_source **doca_source)
Creates a single DOCA source from schema.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_socket_timeout(struct doca_telemetry_exporter_schema *doca_schema, uint32_t timeout)
Set IPC socket timeout in milliseconds Timeout for IPC messaging socket. If timeout is reached during...
DOCA_EXPERIMENTAL void doca_telemetry_exporter_field_set_name(struct doca_telemetry_exporter_field *field_info, const char *name)
Set doca telemetry field name.
uint64_t doca_telemetry_exporter_timestamp_t
DOCA schema type index type.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_buf_data_root(struct doca_telemetry_exporter_schema *doca_schema, const char **path)
Get data root path.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_create(struct doca_telemetry_exporter_type **type)
Create new telemetry type.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_max_age(struct doca_telemetry_exporter_schema *doca_schema, doca_telemetry_exporter_timestamp_t max_age)
Set file maximum age Default value is 1 hour.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_get_timestamp(doca_telemetry_exporter_timestamp_t *timestamp)
Get timestamp in the proper format.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_ipc_sockets_dir(struct doca_telemetry_exporter_schema *doca_schema, const char **sockets_dir)
Get IPC socket directory.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_get_opaque_report_max_data_size(struct doca_telemetry_exporter_source *doca_source, uint32_t *max_data_size)
Get max data size for opaque report.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_source_set_tag(struct doca_telemetry_exporter_source *doca_source, const char *source_tag)
Set source tag.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_sockets_dir(struct doca_telemetry_exporter_schema *doca_schema, const char *sockets_dir)
Set IPC socket directory. Default path is "/opt/mellanox/doca/services/telemetry/ipc_sockets".
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_max_size(struct doca_telemetry_exporter_schema *doca_schema, size_t size)
Set file maximum size Default value is 1MB.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_field_create(struct doca_telemetry_exporter_field **field)
Create new telemetry field.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_file_write_enabled(struct doca_telemetry_exporter_schema *doca_schema)
Enable file write file write is disabled by default.
doca_telemetry_exporter_ipc_status
DOCA telemetry IPC status.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_destroy(struct doca_telemetry_exporter_schema *doca_schema)
Destructor for DOCA schema.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_start(struct doca_telemetry_exporter_schema *doca_schema)
Finalizes schema setup to start creating Doca Sources from the schema.
DOCA_EXPERIMENTAL void doca_telemetry_exporter_schema_set_ipc_reconnect_tries(struct doca_telemetry_exporter_schema *doca_schema, uint8_t tries)
Set maximum IPC reconnect tries. Number of reconnect attempts during reconnection period....
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_type_add_field(struct doca_telemetry_exporter_type *type, struct doca_telemetry_exporter_field *field)
Add DOCA telemetry field to type. The users loses the ownership of the field after a successful invoc...
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_schema_get_file_write_max_age(struct doca_telemetry_exporter_schema *doca_schema, doca_telemetry_exporter_timestamp_t *max_age)
Get file maximum age.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_start(struct doca_telemetry_exporter_source *doca_source)
Applies source attribute and starts DOCA source.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_source_report(struct doca_telemetry_exporter_source *doca_source, doca_telemetry_exporter_type_index_t index, void *data, int count)
Report events data of the same type via DOCA source.
DOCA_EXPERIMENTAL doca_error_t doca_telemetry_exporter_check_ipc_status(struct doca_telemetry_exporter_source *doca_source, doca_telemetry_exporter_ipc_status_t *status)
Return status of IPC transport.
@ DOCA_TELEMETRY_EXPORTER_IPC_STATUS_CONNECTED
@ DOCA_TELEMETRY_EXPORTER_IPC_STATUS_DISABLED
@ DOCA_TELEMETRY_EXPORTER_IPC_STATUS_FAILED