DPDK  18.11.11
rte_compressdev.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_COMPRESSDEV_H_
6 #define _RTE_COMPRESSDEV_H_
7 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #include <rte_common.h>
25 
26 #include "rte_comp.h"
27 
33  uint8_t min;
34  uint8_t max;
35  uint8_t increment;
41 };
42 
45  enum rte_comp_algorithm algo;
46  /* Compression algorithm */
51 };
52 
54 #define RTE_COMP_END_OF_CAPABILITIES_LIST() \
55  { RTE_COMP_ALGO_UNSPECIFIED }
56 
57 const struct rte_compressdev_capabilities * __rte_experimental
58 rte_compressdev_capability_get(uint8_t dev_id,
59  enum rte_comp_algorithm algo);
60 
68 #define RTE_COMPDEV_FF_HW_ACCELERATED (1ULL << 0)
69 
70 #define RTE_COMPDEV_FF_CPU_SSE (1ULL << 1)
71 
72 #define RTE_COMPDEV_FF_CPU_AVX (1ULL << 2)
73 
74 #define RTE_COMPDEV_FF_CPU_AVX2 (1ULL << 3)
75 
76 #define RTE_COMPDEV_FF_CPU_AVX512 (1ULL << 4)
77 
78 #define RTE_COMPDEV_FF_CPU_NEON (1ULL << 5)
79 
90 const char * __rte_experimental
92 
95  const char *driver_name;
96  uint64_t feature_flags;
103 };
104 
107  uint64_t enqueued_count;
109  uint64_t dequeued_count;
116 };
117 
118 
128 int __rte_experimental
129 rte_compressdev_get_dev_id(const char *name);
130 
140 const char * __rte_experimental
141 rte_compressdev_name_get(uint8_t dev_id);
142 
150 uint8_t __rte_experimental
152 
167 uint8_t __rte_experimental
168 rte_compressdev_devices_get(const char *driver_name, uint8_t *devices,
169  uint8_t nb_devices);
170 
171 /*
172  * Return the NUMA socket to which a device is connected.
173  *
174  * @param dev_id
175  * Compress device identifier
176  * @return
177  * The NUMA socket id to which the device is connected or
178  * a default of zero if the socket could not be determined.
179  * -1 if returned is the dev_id value is out of range.
180  */
181 int __rte_experimental
182 rte_compressdev_socket_id(uint8_t dev_id);
183 
188  uint16_t nb_queue_pairs;
192  uint16_t max_nb_streams;
194 };
195 
211 int __rte_experimental
213  struct rte_compressdev_config *config);
214 
229 int __rte_experimental
230 rte_compressdev_start(uint8_t dev_id);
231 
239 void __rte_experimental
240 rte_compressdev_stop(uint8_t dev_id);
241 
256 int __rte_experimental
257 rte_compressdev_close(uint8_t dev_id);
258 
282 int __rte_experimental
283 rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,
284  uint32_t max_inflight_ops, int socket_id);
285 
294 uint16_t __rte_experimental
296 
297 
311 int __rte_experimental
312 rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats);
313 
320 void __rte_experimental
322 
337 void __rte_experimental
338 rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info);
339 
394 uint16_t __rte_experimental
395 rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id,
396  struct rte_comp_op **ops, uint16_t nb_ops);
397 
448 uint16_t __rte_experimental
449 rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
450  struct rte_comp_op **ops, uint16_t nb_ops);
451 
476 int __rte_experimental
478  const struct rte_comp_xform *xform,
479  void **stream);
480 
497 int __rte_experimental
498 rte_compressdev_stream_free(uint8_t dev_id, void *stream);
499 
523 int __rte_experimental
525  const struct rte_comp_xform *xform,
526  void **private_xform);
527 
544 int __rte_experimental
545 rte_compressdev_private_xform_free(uint8_t dev_id, void *private_xform);
546 
547 #ifdef __cplusplus
548 }
549 #endif
550 
551 #endif /* _RTE_COMPRESSDEV_H_ */
rte_compressdev_config
Definition: rte_compressdev.h:185
rte_compressdev_info
Definition: rte_compressdev.h:94
rte_compressdev_devices_get
uint8_t __rte_experimental rte_compressdev_devices_get(const char *driver_name, uint8_t *devices, uint8_t nb_devices)
rte_compressdev_config::nb_queue_pairs
uint16_t nb_queue_pairs
Definition: rte_compressdev.h:188
rte_compressdev_get_feature_name
const char *__rte_experimental rte_compressdev_get_feature_name(uint64_t flag)
rte_comp_algorithm
rte_comp_algorithm
Definition: rte_comp.h:96
rte_compressdev_stream_free
int __rte_experimental rte_compressdev_stream_free(uint8_t dev_id, void *stream)
rte_compressdev_configure
int __rte_experimental rte_compressdev_configure(uint8_t dev_id, struct rte_compressdev_config *config)
rte_compressdev_stats_reset
void __rte_experimental rte_compressdev_stats_reset(uint8_t dev_id)
rte_compressdev_private_xform_create
int __rte_experimental rte_compressdev_private_xform_create(uint8_t dev_id, const struct rte_comp_xform *xform, void **private_xform)
rte_compressdev_capabilities::comp_feature_flags
uint64_t comp_feature_flags
Definition: rte_compressdev.h:47
rte_compressdev_queue_pair_setup
int __rte_experimental rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id, uint32_t max_inflight_ops, int socket_id)
rte_compressdev_stats::dequeued_count
uint64_t dequeued_count
Definition: rte_compressdev.h:109
rte_compressdev_close
int __rte_experimental rte_compressdev_close(uint8_t dev_id)
rte_compressdev_capabilities
Definition: rte_compressdev.h:44
rte_compressdev_info::max_nb_queue_pairs
uint16_t max_nb_queue_pairs
Definition: rte_compressdev.h:99
rte_compressdev_get_dev_id
int __rte_experimental rte_compressdev_get_dev_id(const char *name)
rte_compressdev_stop
void __rte_experimental rte_compressdev_stop(uint8_t dev_id)
rte_compressdev_stats::dequeue_err_count
uint64_t dequeue_err_count
Definition: rte_compressdev.h:114
rte_param_log2_range
Definition: rte_compressdev.h:32
rte_comp_xform
Definition: rte_comp.h:267
rte_compressdev_private_xform_free
int __rte_experimental rte_compressdev_private_xform_free(uint8_t dev_id, void *private_xform)
rte_compressdev_stats::enqueue_err_count
uint64_t enqueue_err_count
Definition: rte_compressdev.h:112
rte_common.h
rte_compressdev_info::feature_flags
uint64_t feature_flags
Definition: rte_compressdev.h:96
rte_compressdev_start
int __rte_experimental rte_compressdev_start(uint8_t dev_id)
rte_compressdev_config::max_nb_streams
uint16_t max_nb_streams
Definition: rte_compressdev.h:192
rte_compressdev_stats::enqueued_count
uint64_t enqueued_count
Definition: rte_compressdev.h:107
rte_comp.h
rte_comp_op
Definition: rte_comp.h:287
rte_compressdev_capabilities::window_size
struct rte_param_log2_range window_size
Definition: rte_compressdev.h:49
rte_compressdev_name_get
const char *__rte_experimental rte_compressdev_name_get(uint8_t dev_id)
rte_compressdev_config::max_nb_priv_xforms
uint16_t max_nb_priv_xforms
Definition: rte_compressdev.h:190
rte_param_log2_range::min
uint8_t min
Definition: rte_compressdev.h:33
rte_param_log2_range::increment
uint8_t increment
Definition: rte_compressdev.h:35
rte_compressdev_queue_pair_count
uint16_t __rte_experimental rte_compressdev_queue_pair_count(uint8_t dev_id)
rte_compressdev_info::capabilities
const struct rte_compressdev_capabilities * capabilities
Definition: rte_compressdev.h:97
rte_compressdev_enqueue_burst
uint16_t __rte_experimental rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id, struct rte_comp_op **ops, uint16_t nb_ops)
rte_compressdev_info_get
void __rte_experimental rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info)
rte_compressdev_dequeue_burst
uint16_t __rte_experimental rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id, struct rte_comp_op **ops, uint16_t nb_ops)
rte_compressdev_config::socket_id
int socket_id
Definition: rte_compressdev.h:186
rte_compressdev_count
uint8_t __rte_experimental rte_compressdev_count(void)
rte_compressdev_stats
Definition: rte_compressdev.h:106
rte_param_log2_range::max
uint8_t max
Definition: rte_compressdev.h:34
rte_compressdev_info::driver_name
const char * driver_name
Definition: rte_compressdev.h:95
rte_compressdev_stream_create
int __rte_experimental rte_compressdev_stream_create(uint8_t dev_id, const struct rte_comp_xform *xform, void **stream)
rte_compressdev_stats_get
int __rte_experimental rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats)