DPDK 25.11.0-rc1
rte_comp.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2017-2018 Intel Corporation
3 */
4
5#ifndef _RTE_COMP_H_
6#define _RTE_COMP_H_
7
14#include <rte_common.h>
15#include <rte_mbuf.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
28#define RTE_COMP_FF_STATEFUL_COMPRESSION (1ULL << 0)
30#define RTE_COMP_FF_STATEFUL_DECOMPRESSION (1ULL << 1)
32#define RTE_COMP_FF_OOP_SGL_IN_SGL_OUT (1ULL << 2)
36#define RTE_COMP_FF_OOP_SGL_IN_LB_OUT (1ULL << 3)
41#define RTE_COMP_FF_OOP_LB_IN_SGL_OUT (1ULL << 4)
45#define RTE_COMP_FF_ADLER32_CHECKSUM (1ULL << 5)
47#define RTE_COMP_FF_CRC32_CHECKSUM (1ULL << 6)
49#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM (1ULL << 7)
51#define RTE_COMP_FF_MULTI_PKT_CHECKSUM (1ULL << 8)
53#define RTE_COMP_FF_SHA1_HASH (1ULL << 9)
55#define RTE_COMP_FF_SHA2_SHA256_HASH (1ULL << 10)
57#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS (1ULL << 11)
59#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM (1ULL << 12)
65#define RTE_COMP_FF_HUFFMAN_FIXED (1ULL << 13)
67#define RTE_COMP_FF_HUFFMAN_DYNAMIC (1ULL << 14)
69#define RTE_COMP_FF_XXHASH32_CHECKSUM (1ULL << 15)
71#define RTE_COMP_FF_LZ4_DICT_ID (1ULL << 16)
73#define RTE_COMP_FF_LZ4_CONTENT_WITH_CHECKSUM (1ULL << 17)
75#define RTE_COMP_FF_LZ4_CONTENT_SIZE (1ULL << 18)
77#define RTE_COMP_FF_LZ4_BLOCK_INDEPENDENCE (1ULL << 19)
79#define RTE_COMP_FF_LZ4_BLOCK_WITH_CHECKSUM (1ULL << 20)
108};
109
112 RTE_COMP_ALGO_UNSPECIFIED = 0,
131};
132
141};
142
148#define RTE_COMP_LEVEL_PMD_DEFAULT (-1)
150#define RTE_COMP_LEVEL_NONE (0)
152#define RTE_COMP_LEVEL_MIN (1)
154#define RTE_COMP_LEVEL_MAX (9)
177};
178
187};
188
211
218};
219
234
239 uint8_t *dictionary;
243};
244
247 uint8_t *dictionary;
251};
252
258#define RTE_COMP_LZ4_FLAG_DICT_ID (1 << 0)
259
265#define RTE_COMP_LZ4_FLAG_CONTENT_CHECKSUM (1 << 2)
266
273#define RTE_COMP_LZ4_FLAG_CONTENT_SIZE (1 << 3)
274
283#define RTE_COMP_LZ4_FLAG_BLOCK_CHECKSUM (1 << 4)
284
294#define RTE_COMP_LZ4_FLAG_BLOCK_INDEPENDENCE (1 << 5)
295
298 uint8_t flags;
303};
304
309 union {
314 };
315 int level;
317 uint8_t window_size;
328};
329
338 uint8_t window_size;
343 union {
348 };
353};
354
365 union {
370 };
371};
372
383 enum rte_comp_op_type op_type;
384 union {
390 void *stream;
399 };
400
429 struct {
430 uint32_t offset;
438 uint32_t length;
444 } src;
445 struct {
446 uint32_t offset;
455 } dst;
456 struct {
457 uint8_t *digest;
466 rte_iova_t iova_addr;
468 } hash;
473 uint64_t input_chksum;
482 uint32_t consumed;
486 uint32_t produced;
490 uint64_t debug_status;
496 uint8_t status;
504};
505
515void
517
536struct rte_mempool *
538 unsigned int nb_elts, unsigned int cache_size,
539 uint16_t user_size, int socket_id)
541
552struct rte_comp_op *
554
568int
570 struct rte_comp_op **ops, uint16_t nb_ops);
571
583void
584rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops);
585
595const char *
597
598#ifdef __cplusplus
599}
600#endif
601
602#endif /* _RTE_COMP_H_ */
#define __rte_dealloc(dealloc, argno)
Definition: rte_common.h:339
uint64_t rte_iova_t
Definition: rte_common.h:770
#define __rte_cache_aligned
Definition: rte_common.h:739
#define __rte_malloc
Definition: rte_common.h:328
rte_comp_flush_flag
Definition: rte_comp.h:190
@ RTE_COMP_FLUSH_SYNC
Definition: rte_comp.h:196
@ RTE_COMP_FLUSH_NONE
Definition: rte_comp.h:191
@ RTE_COMP_FLUSH_FULL
Definition: rte_comp.h:201
@ RTE_COMP_FLUSH_FINAL
Definition: rte_comp.h:206
rte_comp_hash_algorithm
Definition: rte_comp.h:134
@ RTE_COMP_HASH_ALGO_NONE
Definition: rte_comp.h:135
@ RTE_COMP_HASH_ALGO_SHA1
Definition: rte_comp.h:137
@ RTE_COMP_HASH_ALGO_SHA2_256
Definition: rte_comp.h:139
rte_comp_xform_type
Definition: rte_comp.h:213
@ RTE_COMP_COMPRESS
Definition: rte_comp.h:214
@ RTE_COMP_DECOMPRESS
Definition: rte_comp.h:216
void rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops)
rte_comp_checksum_type
Definition: rte_comp.h:158
@ RTE_COMP_CHECKSUM_ADLER32
Definition: rte_comp.h:163
@ RTE_COMP_CHECKSUM_CRC32
Definition: rte_comp.h:161
@ RTE_COMP_CHECKSUM_CRC32_ADLER32
Definition: rte_comp.h:165
@ RTE_COMP_CHECKSUM_3GPP_PDCP_UDC
Definition: rte_comp.h:173
@ RTE_COMP_CHECKSUM_NONE
Definition: rte_comp.h:159
@ RTE_COMP_CHECKSUM_XXHASH32
Definition: rte_comp.h:169
struct rte_mempool * rte_comp_op_pool_create(const char *name, unsigned int nb_elts, unsigned int cache_size, uint16_t user_size, int socket_id) __rte_malloc __rte_dealloc(rte_comp_op_free
rte_comp_op_status
Definition: rte_comp.h:83
@ RTE_COMP_OP_STATUS_CHECKSUM_VALIDATION_FAILED
Definition: rte_comp.h:104
@ RTE_COMP_OP_STATUS_NOT_PROCESSED
Definition: rte_comp.h:86
@ RTE_COMP_OP_STATUS_OUT_OF_SPACE_TERMINATED
Definition: rte_comp.h:94
@ RTE_COMP_OP_STATUS_INVALID_STATE
Definition: rte_comp.h:92
@ RTE_COMP_OP_STATUS_INVALID_ARGS
Definition: rte_comp.h:88
@ RTE_COMP_OP_STATUS_ERROR
Definition: rte_comp.h:90
@ RTE_COMP_OP_STATUS_SUCCESS
Definition: rte_comp.h:84
@ RTE_COMP_OP_STATUS_OUT_OF_SPACE_RECOVERABLE
Definition: rte_comp.h:99
struct rte_mempool struct rte_comp_op * rte_comp_op_alloc(struct rte_mempool *mempool)
const char * rte_comp_get_feature_name(uint64_t flag)
rte_comp_op_type
Definition: rte_comp.h:221
@ RTE_COMP_OP_STATEFUL
Definition: rte_comp.h:227
@ RTE_COMP_OP_STATELESS
Definition: rte_comp.h:222
void rte_comp_op_free(struct rte_comp_op *op)
rte_comp_huffman
Definition: rte_comp.h:180
@ RTE_COMP_HUFFMAN_FIXED
Definition: rte_comp.h:183
@ RTE_COMP_HUFFMAN_DEFAULT
Definition: rte_comp.h:181
@ RTE_COMP_HUFFMAN_DYNAMIC
Definition: rte_comp.h:185
int rte_comp_op_bulk_alloc(struct rte_mempool *mempool, struct rte_comp_op **ops, uint16_t nb_ops)
rte_comp_algorithm
Definition: rte_comp.h:111
@ RTE_COMP_ALGO_DEFLATE
Definition: rte_comp.h:119
@ RTE_COMP_ALGO_NULL
Definition: rte_comp.h:114
@ RTE_COMP_ALGO_LZS
Definition: rte_comp.h:123
@ RTE_COMP_ALGO_LZ4
Definition: rte_comp.h:127
enum rte_comp_algorithm algo
Definition: rte_comp.h:307
enum rte_comp_checksum_type chksum
Definition: rte_comp.h:322
struct rte_comp_lz4_params lz4
Definition: rte_comp.h:312
enum rte_comp_hash_algorithm hash_algo
Definition: rte_comp.h:324
struct rte_comp_deflate_params deflate
Definition: rte_comp.h:310
enum rte_comp_algorithm algo
Definition: rte_comp.h:334
enum rte_comp_checksum_type chksum
Definition: rte_comp.h:336
struct rte_comp_lz4_params lz4
Definition: rte_comp.h:346
enum rte_comp_hash_algorithm hash_algo
Definition: rte_comp.h:349
struct rte_comp_inflate_params inflate
Definition: rte_comp.h:344
enum rte_comp_huffman huffman
Definition: rte_comp.h:237
void * private_xform
Definition: rte_comp.h:385
uint32_t produced
Definition: rte_comp.h:486
uint64_t debug_status
Definition: rte_comp.h:490
uint32_t consumed
Definition: rte_comp.h:482
uint8_t * digest
Definition: rte_comp.h:457
struct rte_mempool * mempool
Definition: rte_comp.h:401
uint64_t input_chksum
Definition: rte_comp.h:473
rte_iova_t iova_addr
Definition: rte_comp.h:403
uint32_t offset
Definition: rte_comp.h:430
uint64_t output_chksum
Definition: rte_comp.h:478
struct rte_mbuf * m_dst
Definition: rte_comp.h:413
enum rte_comp_flush_flag flush_flag
Definition: rte_comp.h:469
uint8_t status
Definition: rte_comp.h:496
uint32_t length
Definition: rte_comp.h:438
struct rte_mbuf * m_src
Definition: rte_comp.h:405
void * stream
Definition: rte_comp.h:390
enum rte_comp_xform_type type
Definition: rte_comp.h:363
struct rte_comp_compress_xform compress
Definition: rte_comp.h:366
struct rte_comp_decompress_xform decompress
Definition: rte_comp.h:368
char name[RTE_MEMPOOL_NAMESIZE]
Definition: rte_mempool.h:231
uint32_t cache_size
Definition: rte_mempool.h:241