DPDK 26.11.0-rc2
rte_bbdev.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2017 Intel Corporation
3 */
4
5#ifndef _RTE_BBDEV_H_
6#define _RTE_BBDEV_H_
7
23#include <stdint.h>
24#include <stdbool.h>
25
26#include <rte_compat.h>
27#include <rte_cpuflags.h>
28
29#include "rte_bbdev_op.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#include "rte_bbdev_trace_fp.h"
36
37#ifndef RTE_BBDEV_MAX_DEVS
38#define RTE_BBDEV_MAX_DEVS 128
39#endif
40
41/*
42 * Maximum size to be used to manage the enum rte_bbdev_enqueue_status
43 * including padding for future enum insertion.
44 * The enum values must be explicitly kept smaller or equal to this padded maximum size.
45 */
46#define RTE_BBDEV_ENQ_STATUS_SIZE_MAX 6
47
50 RTE_BBDEV_UNUSED,
51 RTE_BBDEV_INITIALIZED
52};
53
60uint16_t
62
72bool
73rte_bbdev_is_valid(uint16_t dev_id);
74
85uint16_t
86rte_bbdev_find_next(uint16_t dev_id);
87
89#define RTE_BBDEV_FOREACH(i) for (i = rte_bbdev_find_next(-1); \
90 i < RTE_BBDEV_MAX_DEVS; \
91 i = rte_bbdev_find_next(i))
92
114int
115rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
116
131int
132rte_bbdev_intr_enable(uint16_t dev_id);
133
136 int socket;
137 uint32_t queue_size;
138 uint8_t priority;
141};
142
160int
161rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
162 const struct rte_bbdev_queue_conf *conf);
163
175int
176rte_bbdev_start(uint16_t dev_id);
177
188int
189rte_bbdev_stop(uint16_t dev_id);
190
201int
202rte_bbdev_close(uint16_t dev_id);
203
218int
219rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
220
233int
234rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);
235
249 /* Note: RTE_BBDEV_ENQ_STATUS_SIZE_MAX must be larger or equal to maximum enum value. */
250};
251
265};
266
269 uint64_t enqueued_count;
270 uint64_t dequeued_count;
280 uint64_t enqueue_status_count[RTE_BBDEV_ENQ_STATUS_SIZE_MAX];
290};
291
305int
306rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
307
316int
317rte_bbdev_stats_reset(uint16_t dev_id);
318
336__rte_experimental
337int rte_bbdev_queue_stats_get(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_stats *stats);
338
341/* Structure rte_bbdev_driver_info 8< */
344 const char *driver_name;
345
347 unsigned int max_num_queues;
349 unsigned int num_queues[RTE_BBDEV_OP_TYPE_SIZE_MAX];
351 unsigned int queue_priority[RTE_BBDEV_OP_TYPE_SIZE_MAX];
377 const enum rte_cpu_flag_t *cpu_flag_reqs;
380};
381/* >8 End of structure rte_bbdev_driver_info. */
382
384#define RTE_BBDEV_END_OF_CAPABILITIES_LIST() \
385 { RTE_BBDEV_OP_NONE }
386
392/* Structure rte_bbdev_info 8< */
395 const char *dev_name;
396 const struct rte_device *device;
397 uint16_t num_queues;
398 bool started;
400};
401/* >8 End of structure rte_bbdev_info. */
402
416int
417rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);
418
425};
426
442int
443rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
444 struct rte_bbdev_queue_info *queue_info);
445
447struct rte_bbdev_queue_data {
448 void *queue_private;
449 struct rte_bbdev_queue_conf conf;
450 struct rte_bbdev_stats queue_stats;
451 enum rte_bbdev_enqueue_status enqueue_status;
452 bool started;
453};
454
456typedef uint16_t (*rte_bbdev_enqueue_enc_ops_t)(
457 struct rte_bbdev_queue_data *q_data,
458 struct rte_bbdev_enc_op **ops,
459 uint16_t num);
460
462typedef uint16_t (*rte_bbdev_enqueue_dec_ops_t)(
463 struct rte_bbdev_queue_data *q_data,
464 struct rte_bbdev_dec_op **ops,
465 uint16_t num);
466
468typedef uint16_t (*rte_bbdev_enqueue_fft_ops_t)(
469 struct rte_bbdev_queue_data *q_data,
470 struct rte_bbdev_fft_op **ops,
471 uint16_t num);
472
474typedef uint16_t (*rte_bbdev_enqueue_mldts_ops_t)(
475 struct rte_bbdev_queue_data *q_data,
476 struct rte_bbdev_mldts_op **ops,
477 uint16_t num);
478
480typedef uint16_t (*rte_bbdev_dequeue_enc_ops_t)(
481 struct rte_bbdev_queue_data *q_data,
482 struct rte_bbdev_enc_op **ops, uint16_t num);
483
485typedef uint16_t (*rte_bbdev_dequeue_dec_ops_t)(
486 struct rte_bbdev_queue_data *q_data,
487 struct rte_bbdev_dec_op **ops, uint16_t num);
488
490typedef uint16_t (*rte_bbdev_dequeue_fft_ops_t)(
491 struct rte_bbdev_queue_data *q_data,
492 struct rte_bbdev_fft_op **ops, uint16_t num);
493
495typedef uint16_t (*rte_bbdev_dequeue_mldts_ops_t)(
496 struct rte_bbdev_queue_data *q_data,
497 struct rte_bbdev_mldts_op **ops, uint16_t num);
498
499#define RTE_BBDEV_NAME_MAX_LEN 64
507struct rte_bbdev_data {
508 char name[RTE_BBDEV_NAME_MAX_LEN];
509 void *dev_private;
510 uint16_t num_queues;
511 struct rte_bbdev_queue_data *queues;
512 uint16_t dev_id;
513 int socket_id;
514 bool started;
515 RTE_ATOMIC(uint16_t) process_cnt;
516};
517
518/* Forward declarations */
519struct rte_bbdev_ops;
520struct rte_bbdev_callback;
521struct rte_intr_handle;
522
524RTE_TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback);
525
530struct __rte_cache_aligned rte_bbdev {
532 rte_bbdev_enqueue_enc_ops_t enqueue_enc_ops;
534 rte_bbdev_enqueue_dec_ops_t enqueue_dec_ops;
536 rte_bbdev_dequeue_enc_ops_t dequeue_enc_ops;
538 rte_bbdev_dequeue_dec_ops_t dequeue_dec_ops;
540 rte_bbdev_enqueue_enc_ops_t enqueue_ldpc_enc_ops;
542 rte_bbdev_enqueue_dec_ops_t enqueue_ldpc_dec_ops;
544 rte_bbdev_dequeue_enc_ops_t dequeue_ldpc_enc_ops;
546 rte_bbdev_dequeue_dec_ops_t dequeue_ldpc_dec_ops;
548 rte_bbdev_enqueue_fft_ops_t enqueue_fft_ops;
550 rte_bbdev_dequeue_fft_ops_t dequeue_fft_ops;
551 const struct rte_bbdev_ops *dev_ops;
552 struct rte_bbdev_data *data;
553 enum rte_bbdev_state state;
554 struct rte_device *device;
556 struct rte_bbdev_cb_list list_cbs;
557 struct rte_intr_handle *intr_handle;
559 rte_bbdev_enqueue_mldts_ops_t enqueue_mldts_ops;
561 rte_bbdev_dequeue_mldts_ops_t dequeue_mldts_ops;
562};
563
565extern struct rte_bbdev rte_bbdev_devices[];
566
588static inline uint16_t
589rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id,
590 struct rte_bbdev_enc_op **ops, uint16_t num_ops)
591{
592 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
593 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
594 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
596 return dev->enqueue_enc_ops(q_data, ops, num_ops);
597}
598
620static inline uint16_t
621rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id,
622 struct rte_bbdev_dec_op **ops, uint16_t num_ops)
623{
624 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
625 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
626 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
628 return dev->enqueue_dec_ops(q_data, ops, num_ops);
629}
630
652static inline uint16_t
653rte_bbdev_enqueue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id,
654 struct rte_bbdev_enc_op **ops, uint16_t num_ops)
655{
656 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
657 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
658 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
660 return dev->enqueue_ldpc_enc_ops(q_data, ops, num_ops);
661}
662
684static inline uint16_t
685rte_bbdev_enqueue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id,
686 struct rte_bbdev_dec_op **ops, uint16_t num_ops)
687{
688 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
689 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
690 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
692 return dev->enqueue_ldpc_dec_ops(q_data, ops, num_ops);
693}
694
716static inline uint16_t
717rte_bbdev_enqueue_fft_ops(uint16_t dev_id, uint16_t queue_id,
718 struct rte_bbdev_fft_op **ops, uint16_t num_ops)
719{
720 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
721 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
722 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
724 return dev->enqueue_fft_ops(q_data, ops, num_ops);
725}
726
748static inline uint16_t
749rte_bbdev_enqueue_mldts_ops(uint16_t dev_id, uint16_t queue_id,
750 struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
751{
752 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
753 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
754 rte_bbdev_trace_enqueue(dev_id, queue_id, (void **)ops, num_ops,
756 return dev->enqueue_mldts_ops(q_data, ops, num_ops);
757}
758
781static inline uint16_t
782rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id,
783 struct rte_bbdev_enc_op **ops, uint16_t num_ops)
784{
785 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
786 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
787 uint16_t num_ops_dequeued = dev->dequeue_enc_ops(q_data, ops, num_ops);
788 if (num_ops_dequeued > 0)
789 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
791 return num_ops_dequeued;
792}
793
817static inline uint16_t
818rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id,
819 struct rte_bbdev_dec_op **ops, uint16_t num_ops)
820{
821 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
822 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
823 uint16_t num_ops_dequeued = dev->dequeue_dec_ops(q_data, ops, num_ops);
824 if (num_ops_dequeued > 0)
825 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
827 return num_ops_dequeued;
828}
829
830
852static inline uint16_t
853rte_bbdev_dequeue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id,
854 struct rte_bbdev_enc_op **ops, uint16_t num_ops)
855{
856 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
857 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
858 uint16_t num_ops_dequeued = dev->dequeue_ldpc_enc_ops(q_data, ops, num_ops);
859 if (num_ops_dequeued > 0)
860 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
862 return num_ops_dequeued;
863}
864
886static inline uint16_t
887rte_bbdev_dequeue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id,
888 struct rte_bbdev_dec_op **ops, uint16_t num_ops)
889{
890 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
891 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
892 uint16_t num_ops_dequeued = dev->dequeue_ldpc_dec_ops(q_data, ops, num_ops);
893 if (num_ops_dequeued > 0)
894 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
896 return num_ops_dequeued;
897}
898
920static inline uint16_t
921rte_bbdev_dequeue_fft_ops(uint16_t dev_id, uint16_t queue_id,
922 struct rte_bbdev_fft_op **ops, uint16_t num_ops)
923{
924 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
925 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
926 uint16_t num_ops_dequeued = dev->dequeue_fft_ops(q_data, ops, num_ops);
927 if (num_ops_dequeued > 0)
928 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
929 num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_FFT));
930 return num_ops_dequeued;
931}
932
954static inline uint16_t
955rte_bbdev_dequeue_mldts_ops(uint16_t dev_id, uint16_t queue_id,
956 struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
957{
958 struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
959 struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
960 uint16_t num_ops_dequeued = dev->dequeue_mldts_ops(q_data, ops, num_ops);
961 if (num_ops_dequeued > 0)
962 rte_bbdev_trace_dequeue(dev_id, queue_id, (void **)ops, num_ops,
963 num_ops_dequeued, rte_bbdev_op_type_str(RTE_BBDEV_OP_MLDTS));
964 return num_ops_dequeued;
965}
966
974
988typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,
989 enum rte_bbdev_event_type event, void *cb_arg,
990 void *ret_param);
991
1009int
1011 rte_bbdev_cb_fn cb_fn, void *cb_arg);
1012
1032int
1034 rte_bbdev_cb_fn cb_fn, void *cb_arg);
1035
1052int
1053rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
1054
1068int
1069rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
1070
1095int
1096rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
1097 void *data);
1098
1108const char*
1110
1120const char*
1122
1141__rte_experimental
1142int
1143rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_index, FILE *file);
1144
1145
1164__rte_experimental
1165char *
1166rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len);
1167
1177__rte_experimental
1178void
1180
1181#ifdef __cplusplus
1182}
1183#endif
1184
1185#endif /* _RTE_BBDEV_H_ */
int rte_bbdev_start(uint16_t dev_id)
rte_bbdev_device_status
Definition: rte_bbdev.h:255
@ RTE_BBDEV_DEV_FATAL_ERR
Definition: rte_bbdev.h:261
@ RTE_BBDEV_DEV_CORRECT_ERR
Definition: rte_bbdev.h:264
@ RTE_BBDEV_DEV_NOT_SUPPORTED
Definition: rte_bbdev.h:257
@ RTE_BBDEV_DEV_RECONFIG_REQ
Definition: rte_bbdev.h:263
@ RTE_BBDEV_DEV_CONFIGURED
Definition: rte_bbdev.h:259
@ RTE_BBDEV_DEV_RESTART_REQ
Definition: rte_bbdev.h:262
@ RTE_BBDEV_DEV_RESET
Definition: rte_bbdev.h:258
@ RTE_BBDEV_DEV_ACTIVE
Definition: rte_bbdev.h:260
@ RTE_BBDEV_DEV_NOSTATUS
Definition: rte_bbdev.h:256
int rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id)
rte_bbdev_enqueue_status
Definition: rte_bbdev.h:244
@ RTE_BBDEV_ENQ_STATUS_INVALID_OP
Definition: rte_bbdev.h:248
@ RTE_BBDEV_ENQ_STATUS_RING_FULL
Definition: rte_bbdev.h:247
@ RTE_BBDEV_ENQ_STATUS_QUEUE_FULL
Definition: rte_bbdev.h:246
@ RTE_BBDEV_ENQ_STATUS_NONE
Definition: rte_bbdev.h:245
int rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id)
__rte_experimental int rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_index, FILE *file)
RTE_TAILQ_HEAD(rte_bbdev_cb_list, rte_bbdev_callback)
__rte_experimental int rte_bbdev_queue_stats_get(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_stats *stats)
static uint16_t rte_bbdev_dequeue_fft_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:921
int rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg)
static uint16_t rte_bbdev_dequeue_mldts_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:955
int rte_bbdev_stop(uint16_t dev_id)
__rte_experimental void rte_bbdev_ops_trace(void *op, enum rte_bbdev_op_type op_type)
int rte_bbdev_close(uint16_t dev_id)
rte_bbdev_state
Definition: rte_bbdev.h:49
uint16_t rte_bbdev_find_next(uint16_t dev_id)
__rte_experimental char * rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len)
static uint16_t rte_bbdev_dequeue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:887
static uint16_t rte_bbdev_enqueue_mldts_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_mldts_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:749
int rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info)
uint16_t rte_bbdev_count(void)
int rte_bbdev_stats_reset(uint16_t dev_id)
static uint16_t rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:589
rte_bbdev_event_type
Definition: rte_bbdev.h:968
@ RTE_BBDEV_EVENT_ERROR
Definition: rte_bbdev.h:970
@ RTE_BBDEV_EVENT_DEQUEUE
Definition: rte_bbdev.h:971
@ RTE_BBDEV_EVENT_UNKNOWN
Definition: rte_bbdev.h:969
@ RTE_BBDEV_EVENT_MAX
Definition: rte_bbdev.h:972
int rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, const struct rte_bbdev_queue_conf *conf)
const char * rte_bbdev_device_status_str(enum rte_bbdev_device_status status)
static uint16_t rte_bbdev_enqueue_fft_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_fft_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:717
void(* rte_bbdev_cb_fn)(uint16_t dev_id, enum rte_bbdev_event_type event, void *cb_arg, void *ret_param)
Definition: rte_bbdev.h:988
static uint16_t rte_bbdev_dequeue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:853
int rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_queue_info *queue_info)
static uint16_t rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:818
static uint16_t rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:782
static uint16_t rte_bbdev_enqueue_ldpc_enc_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_enc_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:653
bool rte_bbdev_is_valid(uint16_t dev_id)
int rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id)
const char * rte_bbdev_enqueue_status_str(enum rte_bbdev_enqueue_status status)
static uint16_t rte_bbdev_enqueue_ldpc_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:685
int rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats)
int rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg)
int rte_bbdev_intr_enable(uint16_t dev_id)
int rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id)
int rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op, void *data)
static uint16_t rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_dec_op **ops, uint16_t num_ops)
Definition: rte_bbdev.h:621
int rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id)
#define RTE_BBDEV_NAME_MAX_LEN
Definition: rte_bbdev.h:499
rte_bbdev_op_type
Definition: rte_bbdev_op.h:930
@ RTE_BBDEV_OP_FFT
Definition: rte_bbdev_op.h:936
@ RTE_BBDEV_OP_TURBO_DEC
Definition: rte_bbdev_op.h:932
@ RTE_BBDEV_OP_LDPC_DEC
Definition: rte_bbdev_op.h:934
@ RTE_BBDEV_OP_TURBO_ENC
Definition: rte_bbdev_op.h:933
@ RTE_BBDEV_OP_MLDTS
Definition: rte_bbdev_op.h:937
@ RTE_BBDEV_OP_LDPC_ENC
Definition: rte_bbdev_op.h:935
const char * rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
#define __rte_cache_aligned
Definition: rte_common.h:939
unsigned int max_num_queues
Definition: rte_bbdev.h:347
uint8_t max_dl_queue_priority
Definition: rte_bbdev.h:357
struct rte_bbdev_queue_conf default_queue_conf
Definition: rte_bbdev.h:373
unsigned int num_queues[RTE_BBDEV_OP_TYPE_SIZE_MAX]
Definition: rte_bbdev.h:349
uint16_t min_alignment
Definition: rte_bbdev.h:367
unsigned int queue_priority[RTE_BBDEV_OP_TYPE_SIZE_MAX]
Definition: rte_bbdev.h:351
enum rte_cpu_flag_t * cpu_flag_reqs
Definition: rte_bbdev.h:377
uint32_t harq_buffer_size
Definition: rte_bbdev.h:365
const struct rte_bbdev_op_cap * capabilities
Definition: rte_bbdev.h:375
const char * driver_name
Definition: rte_bbdev.h:344
uint32_t queue_size_lim
Definition: rte_bbdev.h:353
enum rte_bbdev_device_status device_status
Definition: rte_bbdev.h:363
uint8_t max_ul_queue_priority
Definition: rte_bbdev.h:359
uint16_t * fft_window_width
Definition: rte_bbdev.h:379
struct rte_bbdev_driver_info drv
Definition: rte_bbdev.h:399
const char * dev_name
Definition: rte_bbdev.h:395
uint16_t num_queues
Definition: rte_bbdev.h:397
const struct rte_device * device
Definition: rte_bbdev.h:396
enum rte_bbdev_op_type op_type
Definition: rte_bbdev.h:140
struct rte_bbdev_queue_conf conf
Definition: rte_bbdev.h:422
uint64_t enqueue_status_count[RTE_BBDEV_ENQ_STATUS_SIZE_MAX]
Definition: rte_bbdev.h:280
uint64_t acc_offload_cycles
Definition: rte_bbdev.h:287
uint64_t enqueue_err_count
Definition: rte_bbdev.h:272
uint64_t enqueued_count
Definition: rte_bbdev.h:269
uint64_t enqueue_warn_count
Definition: rte_bbdev.h:276
uint64_t dequeue_err_count
Definition: rte_bbdev.h:274
uint16_t enqueue_depth_avail
Definition: rte_bbdev.h:289
uint64_t dequeued_count
Definition: rte_bbdev.h:270
uint64_t dequeue_warn_count
Definition: rte_bbdev.h:278