5 #ifndef _RTE_CRYPTO_SCHEDULER_H
6 #define _RTE_CRYPTO_SCHEDULER_H
21 #include "rte_cryptodev_scheduler_operations.h"
28 #ifndef RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS
29 #define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS (8)
33 #define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKER_CORES (RTE_MAX_LCORE - 1)
36 #define SCHEDULER_MODE_NAME_ROUND_ROBIN round-robin
38 #define SCHEDULER_MODE_NAME_PKT_SIZE_DISTR packet-size-distr
40 #define SCHEDULER_MODE_NAME_FAIL_OVER fail-over
42 #define SCHEDULER_MODE_NAME_MULTI_CORE multi-core
48 CDEV_SCHED_MODE_NOT_SET = 0,
63 #define RTE_CRYPTODEV_SCHEDULER_NAME_MAX_LEN (64)
64 #define RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN (256)
70 CDEV_SCHED_OPTION_NOT_SET = 0,
71 CDEV_SCHED_OPTION_THRESHOLD,
73 CDEV_SCHED_OPTION_COUNT
79 #define RTE_CRYPTODEV_SCHEDULER_PARAM_THRES "threshold"
80 struct rte_cryptodev_scheduler_threshold_option {
184 uint32_t enable_reorder);
255 typedef uint16_t (*rte_cryptodev_scheduler_burst_enqueue_t)(
void *qp_ctx,
258 typedef uint16_t (*rte_cryptodev_scheduler_burst_dequeue_t)(
void *qp_ctx,
268 struct rte_cryptodev_scheduler_ops *
ops;
struct rte_cryptodev_scheduler * crypto_scheduler_multicore
enum rte_cryptodev_scheduler_mode mode
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get(uint8_t scheduler_id)
int rte_cryptodev_scheduler_worker_detach(uint8_t scheduler_id, uint8_t worker_id)
struct rte_cryptodev_scheduler * crypto_scheduler_roundrobin
int rte_cryptodev_scheduler_ordering_get(uint8_t scheduler_id)
int rte_cryptodev_scheduler_option_set(uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void *option)
int rte_cryptodev_scheduler_option_get(uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void *option)
struct rte_cryptodev_scheduler * crypto_scheduler_failover
struct rte_cryptodev_scheduler_ops * ops
int rte_cryptodev_scheduler_worker_attach(uint8_t scheduler_id, uint8_t worker_id)
struct rte_cryptodev_scheduler * crypto_scheduler_pkt_size_based_distr
rte_cryptodev_scheduler_mode
rte_cryptodev_schedule_option_type
int rte_cryptodev_scheduler_ordering_set(uint8_t scheduler_id, uint32_t enable_reorder)
int rte_cryptodev_scheduler_workers_get(uint8_t scheduler_id, uint8_t *workers)
int rte_cryptodev_scheduler_mode_set(uint8_t scheduler_id, enum rte_cryptodev_scheduler_mode mode)
int rte_cryptodev_scheduler_load_user_scheduler(uint8_t scheduler_id, struct rte_cryptodev_scheduler *scheduler)