DPDK 22.11.0-rc2
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
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include <rte_mbuf.h>
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)
92};
93
96 RTE_COMP_ALGO_UNSPECIFIED = 0,
111 RTE_COMP_ALGO_LIST_END
112};
113
122 RTE_COMP_HASH_ALGO_LIST_END
123};
124
130#define RTE_COMP_LEVEL_PMD_DEFAULT (-1)
132#define RTE_COMP_LEVEL_NONE (0)
134#define RTE_COMP_LEVEL_MIN (1)
136#define RTE_COMP_LEVEL_MAX (9)
151};
152
153
162};
163
186
193};
194
209
210
215};
216
221 union {
224 };
225 int level;
227 uint8_t window_size;
238};
239
248 uint8_t window_size;
257};
258
269 union {
274 };
275};
276
287 enum rte_comp_op_type op_type;
288 union {
294 void *stream;
303 };
304
333 struct {
334 uint32_t offset;
342 uint32_t length;
348 } src;
349 struct {
350 uint32_t offset;
359 } dst;
360 struct {
361 uint8_t *digest;
372 } hash;
377 uint64_t input_chksum;
386 uint32_t consumed;
390 uint32_t produced;
394 uint64_t debug_status;
400 uint8_t status;
409
428__rte_experimental
429struct rte_mempool *
431 unsigned int nb_elts, unsigned int cache_size,
432 uint16_t user_size, int socket_id);
433
444__rte_experimental
445struct rte_comp_op *
447
461__rte_experimental
462int
464 struct rte_comp_op **ops, uint16_t nb_ops);
465
475__rte_experimental
476void
478
490__rte_experimental
491void
492rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops);
493
503__rte_experimental
504const char *
506
507#ifdef __cplusplus
508}
509#endif
510
511#endif /* _RTE_COMP_H_ */
#define __rte_cache_aligned
Definition: rte_common.h:440
uint64_t rte_iova_t
Definition: rte_common.h:458
rte_comp_flush_flag
Definition: rte_comp.h:165
@ RTE_COMP_FLUSH_SYNC
Definition: rte_comp.h:171
@ RTE_COMP_FLUSH_NONE
Definition: rte_comp.h:166
@ RTE_COMP_FLUSH_FULL
Definition: rte_comp.h:176
@ RTE_COMP_FLUSH_FINAL
Definition: rte_comp.h:181
rte_comp_hash_algorithm
Definition: rte_comp.h:115
@ RTE_COMP_HASH_ALGO_NONE
Definition: rte_comp.h:116
@ RTE_COMP_HASH_ALGO_SHA1
Definition: rte_comp.h:118
@ RTE_COMP_HASH_ALGO_SHA2_256
Definition: rte_comp.h:120
rte_comp_xform_type
Definition: rte_comp.h:188
@ RTE_COMP_COMPRESS
Definition: rte_comp.h:189
@ RTE_COMP_DECOMPRESS
Definition: rte_comp.h:191
rte_comp_checksum_type
Definition: rte_comp.h:140
@ RTE_COMP_CHECKSUM_ADLER32
Definition: rte_comp.h:145
@ RTE_COMP_CHECKSUM_CRC32
Definition: rte_comp.h:143
@ RTE_COMP_CHECKSUM_CRC32_ADLER32
Definition: rte_comp.h:147
@ RTE_COMP_CHECKSUM_NONE
Definition: rte_comp.h:141
__rte_experimental void rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops)
rte_comp_op_status
Definition: rte_comp.h:71
@ RTE_COMP_OP_STATUS_NOT_PROCESSED
Definition: rte_comp.h:74
@ RTE_COMP_OP_STATUS_OUT_OF_SPACE_TERMINATED
Definition: rte_comp.h:82
@ RTE_COMP_OP_STATUS_INVALID_STATE
Definition: rte_comp.h:80
@ RTE_COMP_OP_STATUS_INVALID_ARGS
Definition: rte_comp.h:76
@ RTE_COMP_OP_STATUS_ERROR
Definition: rte_comp.h:78
@ RTE_COMP_OP_STATUS_SUCCESS
Definition: rte_comp.h:72
@ RTE_COMP_OP_STATUS_OUT_OF_SPACE_RECOVERABLE
Definition: rte_comp.h:87
__rte_experimental void rte_comp_op_free(struct rte_comp_op *op)
__rte_experimental const char * rte_comp_get_feature_name(uint64_t flag)
__rte_experimental int rte_comp_op_bulk_alloc(struct rte_mempool *mempool, struct rte_comp_op **ops, uint16_t nb_ops)
__rte_experimental 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_comp_op_type
Definition: rte_comp.h:196
@ RTE_COMP_OP_STATEFUL
Definition: rte_comp.h:202
@ RTE_COMP_OP_STATELESS
Definition: rte_comp.h:197
rte_comp_huffman
Definition: rte_comp.h:155
@ RTE_COMP_HUFFMAN_FIXED
Definition: rte_comp.h:158
@ RTE_COMP_HUFFMAN_DEFAULT
Definition: rte_comp.h:156
@ RTE_COMP_HUFFMAN_DYNAMIC
Definition: rte_comp.h:160
__rte_experimental struct rte_comp_op * rte_comp_op_alloc(struct rte_mempool *mempool)
rte_comp_algorithm
Definition: rte_comp.h:95
@ RTE_COMP_ALGO_DEFLATE
Definition: rte_comp.h:103
@ RTE_COMP_ALGO_NULL
Definition: rte_comp.h:98
@ RTE_COMP_ALGO_LZS
Definition: rte_comp.h:107
enum rte_comp_algorithm algo
Definition: rte_comp.h:219
enum rte_comp_checksum_type chksum
Definition: rte_comp.h:232
enum rte_comp_hash_algorithm hash_algo
Definition: rte_comp.h:234
struct rte_comp_deflate_params deflate
Definition: rte_comp.h:222
enum rte_comp_algorithm algo
Definition: rte_comp.h:244
enum rte_comp_checksum_type chksum
Definition: rte_comp.h:246
enum rte_comp_hash_algorithm hash_algo
Definition: rte_comp.h:253
enum rte_comp_huffman huffman
Definition: rte_comp.h:213
void * private_xform
Definition: rte_comp.h:289
uint32_t produced
Definition: rte_comp.h:390
uint64_t debug_status
Definition: rte_comp.h:394
uint32_t consumed
Definition: rte_comp.h:386
uint8_t * digest
Definition: rte_comp.h:361
struct rte_mempool * mempool
Definition: rte_comp.h:305
uint64_t input_chksum
Definition: rte_comp.h:377
rte_iova_t iova_addr
Definition: rte_comp.h:307
uint32_t offset
Definition: rte_comp.h:334
uint64_t output_chksum
Definition: rte_comp.h:382
struct rte_mbuf * m_dst
Definition: rte_comp.h:317
enum rte_comp_flush_flag flush_flag
Definition: rte_comp.h:373
uint8_t status
Definition: rte_comp.h:400
uint32_t length
Definition: rte_comp.h:342
struct rte_mbuf * m_src
Definition: rte_comp.h:309
void * stream
Definition: rte_comp.h:294
enum rte_comp_xform_type type
Definition: rte_comp.h:267
struct rte_comp_compress_xform compress
Definition: rte_comp.h:270
struct rte_comp_decompress_xform decompress
Definition: rte_comp.h:272
char name[RTE_MEMPOOL_NAMESIZE]
Definition: rte_mempool.h:205
uint32_t cache_size
Definition: rte_mempool.h:216