DPDK
18.05.1
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_compressdev
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
16
extern
"C"
{
17
#endif
18
19
#include <
rte_mempool.h
>
20
#include <
rte_mbuf.h
>
21
29
#define RTE_COMP_FF_STATEFUL_COMPRESSION (1ULL << 0)
30
31
#define RTE_COMP_FF_STATEFUL_DECOMPRESSION (1ULL << 1)
32
33
#define RTE_COMP_FF_MBUF_SCATTER_GATHER (1ULL << 2)
34
35
#define RTE_COMP_FF_ADLER32_CHECKSUM (1ULL << 3)
36
37
#define RTE_COMP_FF_CRC32_CHECKSUM (1ULL << 4)
38
39
#define RTE_COMP_FF_CRC32_ADLER32_CHECKSUM (1ULL << 5)
40
41
#define RTE_COMP_FF_MULTI_PKT_CHECKSUM (1ULL << 6)
42
43
#define RTE_COMP_FF_SHA1_HASH (1ULL << 7)
44
45
#define RTE_COMP_FF_SHA2_SHA256_HASH (1ULL << 8)
46
47
#define RTE_COMP_FF_NONCOMPRESSED_BLOCKS (1ULL << 9)
48
49
#define RTE_COMP_FF_SHAREABLE_PRIV_XFORM (1ULL << 10)
50
57
enum
rte_comp_op_status
{
58
RTE_COMP_OP_STATUS_SUCCESS
= 0,
60
RTE_COMP_OP_STATUS_NOT_PROCESSED
,
62
RTE_COMP_OP_STATUS_INVALID_ARGS
,
64
RTE_COMP_OP_STATUS_ERROR
,
66
RTE_COMP_OP_STATUS_INVALID_STATE
,
68
RTE_COMP_OP_STATUS_OUT_OF_SPACE_TERMINATED
,
73
RTE_COMP_OP_STATUS_OUT_OF_SPACE_RECOVERABLE
,
78
};
79
81
enum
rte_comp_algorithm
{
82
RTE_COMP_ALGO_UNSPECIFIED = 0,
84
RTE_COMP_ALGO_NULL
,
89
RTE_COMP_ALGO_DEFLATE
,
93
RTE_COMP_ALGO_LZS
,
97
RTE_COMP_ALGO_LIST_END
98
};
99
101
enum
rte_comp_hash_algorithm
{
102
RTE_COMP_HASH_ALGO_NONE
= 0,
104
RTE_COMP_HASH_ALGO_SHA1
,
106
RTE_COMP_HASH_ALGO_SHA2_256
,
108
RTE_COMP_HASH_ALGO_LIST_END
109
};
110
116
#define RTE_COMP_LEVEL_PMD_DEFAULT (-1)
117
118
#define RTE_COMP_LEVEL_NONE (0)
119
120
#define RTE_COMP_LEVEL_MIN (1)
121
122
#define RTE_COMP_LEVEL_MAX (9)
123
126
enum
rte_comp_checksum_type
{
127
RTE_COMP_CHECKSUM_NONE
,
129
RTE_COMP_CHECKSUM_CRC32
,
131
RTE_COMP_CHECKSUM_ADLER32
,
133
RTE_COMP_CHECKSUM_CRC32_ADLER32
,
137
};
138
139
141
enum
rte_comp_huffman
{
142
RTE_COMP_HUFFMAN_DEFAULT
,
144
RTE_COMP_HUFFMAN_FIXED
,
146
RTE_COMP_HUFFMAN_DYNAMIC
,
148
};
149
151
enum
rte_comp_flush_flag
{
152
RTE_COMP_FLUSH_NONE
,
157
RTE_COMP_FLUSH_SYNC
,
162
RTE_COMP_FLUSH_FULL
,
167
RTE_COMP_FLUSH_FINAL
171
};
172
174
enum
rte_comp_xform_type
{
175
RTE_COMP_COMPRESS
,
177
RTE_COMP_DECOMPRESS
,
179
};
180
182
enum
rte_comp_op_type
{
183
RTE_COMP_OP_STATELESS
,
188
RTE_COMP_OP_STATEFUL
194
};
195
196
198
struct
rte_comp_deflate_params
{
199
enum
rte_comp_huffman
huffman
;
201
};
202
204
struct
rte_comp_compress_xform
{
205
enum
rte_comp_algorithm
algo
;
207
union
{
208
struct
rte_comp_deflate_params
deflate
;
210
};
211
int
level
;
213
uint8_t
window_size
;
218
enum
rte_comp_checksum_type
chksum
;
220
enum
rte_comp_hash_algorithm
hash_algo
;
224
};
225
229
struct
rte_comp_decompress_xform
{
230
enum
rte_comp_algorithm
algo
;
232
enum
rte_comp_checksum_type
chksum
;
234
uint8_t
window_size
;
239
enum
rte_comp_hash_algorithm
hash_algo
;
243
};
244
252
struct
rte_comp_xform
{
253
enum
rte_comp_xform_type
type
;
255
union
{
256
struct
rte_comp_compress_xform
compress
;
258
struct
rte_comp_decompress_xform
decompress
;
260
};
261
};
262
272
struct
rte_comp_op
{
273
enum
rte_comp_op_type
op_type;
274
union
{
275
void
*
private_xform
;
280
void
*
stream
;
289
};
290
291
struct
rte_mempool
*
mempool
;
293
rte_iova_t
iova_addr
;
295
struct
rte_mbuf
*
m_src
;
303
struct
rte_mbuf
*
m_dst
;
313
struct
{
314
uint32_t
offset
;
322
uint32_t
length
;
328
} src;
329
struct
{
330
uint32_t
offset
;
339
} dst;
340
struct
{
341
uint8_t *
digest
;
350
rte_iova_t
iova_addr
;
352
} hash;
353
enum
rte_comp_flush_flag
flush_flag
;
357
uint64_t
input_chksum
;
362
uint64_t
output_chksum
;
366
uint32_t
consumed
;
370
uint32_t
produced
;
374
uint64_t
debug_status
;
380
uint8_t
status
;
388
}
__rte_cache_aligned
;
389
408
struct
rte_mempool
* __rte_experimental
409
rte_comp_op_pool_create
(
const
char
*
name
,
410
unsigned
int
nb_elts,
unsigned
int
cache_size
,
411
uint16_t user_size,
int
socket_id
);
412
423
struct
rte_comp_op
* __rte_experimental
424
rte_comp_op_alloc
(
struct
rte_mempool
*
mempool
);
425
439
int
__rte_experimental
440
rte_comp_op_bulk_alloc
(
struct
rte_mempool
*
mempool
,
441
struct
rte_comp_op
**ops, uint16_t nb_ops);
442
451
void
__rte_experimental
452
rte_comp_op_free
(
struct
rte_comp_op
*op);
453
463
const
char
* __rte_experimental
464
rte_comp_get_feature_name
(uint64_t flag);
465
466
#ifdef __cplusplus
467
}
468
#endif
469
470
#endif
/* _RTE_COMP_H_ */
Generated by
1.8.1.2