NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
file_compression_core.c File Reference
#include <arpa/inet.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <time.h>
#include <unistd.h>
#include <zlib.h>
#include <doca_argp.h>
#include <doca_log.h>
#include <pack.h>
#include <utils.h>
#include "file_compression_core.h"
Include dependency graph for file_compression_core.c:

Go to the source code of this file.

Data Structures

struct  file_info_message
 

Macros

#define MAX_MSG   512 /* Maximum number of messages in CC queue */
 
#define SW_MAX_FILE_SIZE   128 * 1024 * 1024 /* 128 MB */
 
#define SLEEP_IN_NANOS   (10 * 1000) /* Sample the task every 10 microseconds */
 
#define DECOMPRESS_RATIO   1032 /* Maximal decompress ratio size */
 
#define DEFAULT_TIMEOUT   10 /* default timeout for receiving messages */
 

Functions

 DOCA_LOG_REGISTER (FILE_COMPRESSION::Core)
 
static doca_error_t get_compress_max_buf_size (struct compress_resources *resources, uint64_t *max_buf_size)
 
static doca_error_t get_compress_resources (enum file_compression_mode mode, struct compress_resources *resources)
 
static doca_error_t init_compress_resources (struct file_compression_config *compress_cfg, struct compress_resources *resources, enum file_compression_compress_method *method, uint64_t *max_buf_size)
 
static void unmap_cb (void *addr, size_t len, void *opaque)
 
static doca_error_t populate_dst_buf (struct program_core_objects *state, uint8_t *dst_buffer, size_t dst_buf_size, struct doca_buf **dst_doca_buf)
 
static doca_error_t compress_file_hw (char *file_data, size_t file_size, size_t dst_buf_size, struct compress_resources *resources, uint8_t *compressed_file, size_t *compressed_file_len, uint64_t *output_chksum)
 
static doca_error_t compress_file_sw (char *file_data, size_t file_size, size_t dst_buf_size, Byte **compressed_file, uLong *compressed_file_len)
 
static void calculate_checksum_sw (char *file_data, size_t file_size, uint64_t *output_chksum)
 
static doca_error_t compress_file (char *file_data, size_t file_size, uint64_t max_buf_size, struct compress_resources *resources, enum file_compression_compress_method method, uint8_t **compressed_file, size_t *compressed_file_len, uint64_t *output_chksum)
 
static doca_error_t send_file (struct file_compression_config *compress_cfg, struct comch_cfg *comch_cfg, char *file_data, size_t file_size, uint64_t checksum)
 
void client_recv_event_cb (struct doca_comch_event_msg_recv *event, uint8_t *recv_buffer, uint32_t msg_len, struct doca_comch_connection *comch_connection)
 
doca_error_t file_compression_client (struct comch_cfg *comch_cfg, struct file_compression_config *compress_cfg, struct compress_resources *resources)
 
void server_recv_event_cb (struct doca_comch_event_msg_recv *event, uint8_t *recv_buffer, uint32_t msg_len, struct doca_comch_connection *comch_connection)
 
doca_error_t file_compression_server (struct comch_cfg *comch_cfg, struct file_compression_config *compress_cfg, struct compress_resources *resources)
 
doca_error_t file_compression_init (struct file_compression_config *compress_cfg, struct compress_resources *resources)
 
void file_compression_cleanup (struct file_compression_config *compress_cfg, struct compress_resources *resources)
 
static doca_error_t file_callback (void *param, void *config)
 
static doca_error_t dev_pci_addr_callback (void *param, void *config)
 
static doca_error_t rep_pci_addr_callback (void *param, void *config)
 
static doca_error_t timeout_callback (void *param, void *config)
 
static doca_error_t args_validation_callback (void *cfg)
 
doca_error_t register_file_compression_params (void)
 

Macro Definition Documentation

◆ DECOMPRESS_RATIO

#define DECOMPRESS_RATIO   1032 /* Maximal decompress ratio size */

Definition at line 46 of file file_compression_core.c.

◆ DEFAULT_TIMEOUT

#define DEFAULT_TIMEOUT   10 /* default timeout for receiving messages */

Definition at line 47 of file file_compression_core.c.

◆ MAX_MSG

#define MAX_MSG   512 /* Maximum number of messages in CC queue */

Definition at line 43 of file file_compression_core.c.

◆ SLEEP_IN_NANOS

#define SLEEP_IN_NANOS   (10 * 1000) /* Sample the task every 10 microseconds */

Definition at line 45 of file file_compression_core.c.

◆ SW_MAX_FILE_SIZE

#define SW_MAX_FILE_SIZE   128 * 1024 * 1024 /* 128 MB */

Definition at line 44 of file file_compression_core.c.

Function Documentation

◆ args_validation_callback()

static doca_error_t args_validation_callback ( void *  cfg)
static

Definition at line 886 of file file_compression_core.c.

◆ calculate_checksum_sw()

static void calculate_checksum_sw ( char *  file_data,
size_t  file_size,
uint64_t *  output_chksum 
)
static

Definition at line 366 of file file_compression_core.c.

◆ client_recv_event_cb()

void client_recv_event_cb ( struct doca_comch_event_msg_recv *  event,
uint8_t *  recv_buffer,
uint32_t  msg_len,
struct doca_comch_connection *  comch_connection 
)

Definition at line 505 of file file_compression_core.c.

◆ compress_file()

static doca_error_t compress_file ( char *  file_data,
size_t  file_size,
uint64_t  max_buf_size,
struct compress_resources resources,
enum file_compression_compress_method  method,
uint8_t **  compressed_file,
size_t compressed_file_len,
uint64_t *  output_chksum 
)
static

Definition at line 397 of file file_compression_core.c.

◆ compress_file_hw()

static doca_error_t compress_file_hw ( char *  file_data,
size_t  file_size,
size_t  dst_buf_size,
struct compress_resources resources,
uint8_t *  compressed_file,
size_t compressed_file_len,
uint64_t *  output_chksum 
)
static

Definition at line 217 of file file_compression_core.c.

◆ compress_file_sw()

static doca_error_t compress_file_sw ( char *  file_data,
size_t  file_size,
size_t  dst_buf_size,
Byte **  compressed_file,
uLong *  compressed_file_len 
)
static

Definition at line 311 of file file_compression_core.c.

◆ dev_pci_addr_callback()

static doca_error_t dev_pci_addr_callback ( void *  param,
void *  config 
)
static

Definition at line 821 of file file_compression_core.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( FILE_COMPRESSION::Core  )

◆ file_callback()

static doca_error_t file_callback ( void *  param,
void *  config 
)
static

Definition at line 801 of file file_compression_core.c.

◆ file_compression_cleanup()

void file_compression_cleanup ( struct file_compression_config compress_cfg,
struct compress_resources resources 
)

Definition at line 778 of file file_compression_core.c.

◆ file_compression_client()

doca_error_t file_compression_client ( struct comch_cfg comch_cfg,
struct file_compression_config compress_cfg,
struct compress_resources resources 
)

Definition at line 521 of file file_compression_core.c.

◆ file_compression_init()

doca_error_t file_compression_init ( struct file_compression_config compress_cfg,
struct compress_resources resources 
)

Definition at line 750 of file file_compression_core.c.

◆ file_compression_server()

doca_error_t file_compression_server ( struct comch_cfg comch_cfg,
struct file_compression_config compress_cfg,
struct compress_resources resources 
)

Definition at line 656 of file file_compression_core.c.

◆ get_compress_max_buf_size()

static doca_error_t get_compress_max_buf_size ( struct compress_resources resources,
uint64_t *  max_buf_size 
)
static

Definition at line 63 of file file_compression_core.c.

◆ get_compress_resources()

static doca_error_t get_compress_resources ( enum file_compression_mode  mode,
struct compress_resources resources 
)
static

Definition at line 88 of file file_compression_core.c.

◆ init_compress_resources()

static doca_error_t init_compress_resources ( struct file_compression_config compress_cfg,
struct compress_resources resources,
enum file_compression_compress_method method,
uint64_t *  max_buf_size 
)
static

Definition at line 114 of file file_compression_core.c.

◆ populate_dst_buf()

static doca_error_t populate_dst_buf ( struct program_core_objects state,
uint8_t *  dst_buffer,
size_t  dst_buf_size,
struct doca_buf **  dst_doca_buf 
)
static

Definition at line 173 of file file_compression_core.c.

◆ register_file_compression_params()

doca_error_t register_file_compression_params ( void  )

Definition at line 900 of file file_compression_core.c.

◆ rep_pci_addr_callback()

static doca_error_t rep_pci_addr_callback ( void *  param,
void *  config 
)
static

Definition at line 842 of file file_compression_core.c.

◆ send_file()

static doca_error_t send_file ( struct file_compression_config compress_cfg,
struct comch_cfg comch_cfg,
char *  file_data,
size_t  file_size,
uint64_t  checksum 
)
static

Definition at line 446 of file file_compression_core.c.

◆ server_recv_event_cb()

void server_recv_event_cb ( struct doca_comch_event_msg_recv *  event,
uint8_t *  recv_buffer,
uint32_t  msg_len,
struct doca_comch_connection *  comch_connection 
)

Definition at line 601 of file file_compression_core.c.

◆ timeout_callback()

static doca_error_t timeout_callback ( void *  param,
void *  config 
)
static

Definition at line 867 of file file_compression_core.c.

◆ unmap_cb()

static void unmap_cb ( void *  addr,
size_t  len,
void *  opaque 
)
static

Definition at line 156 of file file_compression_core.c.