DPDK
25.11.0
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_cryptodev_scheduler.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_CRYPTO_SCHEDULER_H
6
#define _RTE_CRYPTO_SCHEDULER_H
7
19
20
#include <stdint.h>
21
#include "rte_cryptodev_scheduler_operations.h"
22
23
#ifdef __cplusplus
24
extern
"C"
{
25
#endif
26
28
#ifndef RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS
29
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS (8)
30
#endif
31
33
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKER_CORES (RTE_MAX_LCORE - 1)
34
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
43
47
enum
rte_cryptodev_scheduler_mode
{
48
CDEV_SCHED_MODE_NOT_SET = 0,
50
CDEV_SCHED_MODE_USERDEFINED
,
52
CDEV_SCHED_MODE_ROUNDROBIN
,
54
CDEV_SCHED_MODE_PKT_SIZE_DISTR
,
56
CDEV_SCHED_MODE_FAILOVER
,
58
CDEV_SCHED_MODE_MULTICORE
,
59
60
CDEV_SCHED_MODE_COUNT
61
};
62
63
#define RTE_CRYPTODEV_SCHEDULER_NAME_MAX_LEN (64)
64
#define RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN (256)
65
69
enum
rte_cryptodev_schedule_option_type
{
70
CDEV_SCHED_OPTION_NOT_SET = 0,
71
CDEV_SCHED_OPTION_THRESHOLD,
72
73
CDEV_SCHED_OPTION_COUNT
74
};
75
79
#define RTE_CRYPTODEV_SCHEDULER_PARAM_THRES "threshold"
80
struct
rte_cryptodev_scheduler_threshold_option {
81
uint32_t threshold;
82
};
83
84
struct
rte_cryptodev_scheduler
;
85
100
int
101
rte_cryptodev_scheduler_load_user_scheduler
(uint8_t scheduler_id,
102
struct
rte_cryptodev_scheduler
*scheduler);
103
118
int
119
rte_cryptodev_scheduler_worker_attach
(uint8_t scheduler_id, uint8_t worker_id);
120
134
int
135
rte_cryptodev_scheduler_worker_detach
(uint8_t scheduler_id, uint8_t worker_id);
136
150
int
151
rte_cryptodev_scheduler_mode_set
(uint8_t scheduler_id,
152
enum
rte_cryptodev_scheduler_mode
mode
);
153
164
enum
rte_cryptodev_scheduler_mode
165
rte_cryptodev_scheduler_mode_get
(uint8_t scheduler_id);
166
182
int
183
rte_cryptodev_scheduler_ordering_set
(uint8_t scheduler_id,
184
uint32_t enable_reorder);
185
197
int
198
rte_cryptodev_scheduler_ordering_get
(uint8_t scheduler_id);
199
214
int
215
rte_cryptodev_scheduler_workers_get
(uint8_t scheduler_id, uint8_t *workers);
216
231
int
232
rte_cryptodev_scheduler_option_set
(uint8_t scheduler_id,
233
enum
rte_cryptodev_schedule_option_type
option_type,
234
void
*option);
235
250
int
251
rte_cryptodev_scheduler_option_get
(uint8_t scheduler_id,
252
enum
rte_cryptodev_schedule_option_type
option_type,
253
void
*option);
254
255
typedef
uint16_t (*rte_cryptodev_scheduler_burst_enqueue_t)(
void
*qp_ctx,
256
struct
rte_crypto_op
**ops, uint16_t nb_ops);
257
258
typedef
uint16_t (*rte_cryptodev_scheduler_burst_dequeue_t)(
void
*qp_ctx,
259
struct
rte_crypto_op
**ops, uint16_t nb_ops);
260
262
struct
rte_cryptodev_scheduler
{
263
const
char
*
name
;
264
const
char
*
description
;
265
enum
rte_cryptodev_scheduler_mode
mode
;
266
268
struct
rte_cryptodev_scheduler_ops *
ops
;
269
};
270
272
extern
struct
rte_cryptodev_scheduler
*
crypto_scheduler_roundrobin
;
274
extern
struct
rte_cryptodev_scheduler
*
crypto_scheduler_pkt_size_based_distr
;
276
extern
struct
rte_cryptodev_scheduler
*
crypto_scheduler_failover
;
278
extern
struct
rte_cryptodev_scheduler
*
crypto_scheduler_multicore
;
279
280
#ifdef __cplusplus
281
}
282
#endif
283
#endif
/* _RTE_CRYPTO_SCHEDULER_H */
crypto_scheduler_roundrobin
struct rte_cryptodev_scheduler * crypto_scheduler_roundrobin
crypto_scheduler_failover
struct rte_cryptodev_scheduler * crypto_scheduler_failover
rte_cryptodev_scheduler_worker_attach
int rte_cryptodev_scheduler_worker_attach(uint8_t scheduler_id, uint8_t worker_id)
crypto_scheduler_pkt_size_based_distr
struct rte_cryptodev_scheduler * crypto_scheduler_pkt_size_based_distr
rte_cryptodev_scheduler_option_get
int rte_cryptodev_scheduler_option_get(uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void *option)
rte_cryptodev_scheduler_mode_set
int rte_cryptodev_scheduler_mode_set(uint8_t scheduler_id, enum rte_cryptodev_scheduler_mode mode)
rte_cryptodev_scheduler_workers_get
int rte_cryptodev_scheduler_workers_get(uint8_t scheduler_id, uint8_t *workers)
rte_cryptodev_schedule_option_type
rte_cryptodev_schedule_option_type
Definition
rte_cryptodev_scheduler.h:69
rte_cryptodev_scheduler_mode_get
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get(uint8_t scheduler_id)
rte_cryptodev_scheduler_mode
rte_cryptodev_scheduler_mode
Definition
rte_cryptodev_scheduler.h:47
CDEV_SCHED_MODE_MULTICORE
@ CDEV_SCHED_MODE_MULTICORE
Definition
rte_cryptodev_scheduler.h:58
CDEV_SCHED_MODE_FAILOVER
@ CDEV_SCHED_MODE_FAILOVER
Definition
rte_cryptodev_scheduler.h:56
CDEV_SCHED_MODE_COUNT
@ CDEV_SCHED_MODE_COUNT
Definition
rte_cryptodev_scheduler.h:60
CDEV_SCHED_MODE_PKT_SIZE_DISTR
@ CDEV_SCHED_MODE_PKT_SIZE_DISTR
Definition
rte_cryptodev_scheduler.h:54
CDEV_SCHED_MODE_ROUNDROBIN
@ CDEV_SCHED_MODE_ROUNDROBIN
Definition
rte_cryptodev_scheduler.h:52
CDEV_SCHED_MODE_USERDEFINED
@ CDEV_SCHED_MODE_USERDEFINED
Definition
rte_cryptodev_scheduler.h:50
rte_cryptodev_scheduler_worker_detach
int rte_cryptodev_scheduler_worker_detach(uint8_t scheduler_id, uint8_t worker_id)
crypto_scheduler_multicore
struct rte_cryptodev_scheduler * crypto_scheduler_multicore
rte_cryptodev_scheduler_ordering_set
int rte_cryptodev_scheduler_ordering_set(uint8_t scheduler_id, uint32_t enable_reorder)
rte_cryptodev_scheduler_load_user_scheduler
int rte_cryptodev_scheduler_load_user_scheduler(uint8_t scheduler_id, struct rte_cryptodev_scheduler *scheduler)
rte_cryptodev_scheduler_ordering_get
int rte_cryptodev_scheduler_ordering_get(uint8_t scheduler_id)
rte_cryptodev_scheduler_option_set
int rte_cryptodev_scheduler_option_set(uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void *option)
rte_crypto_op
Definition
rte_crypto.h:91
rte_cryptodev_scheduler
Definition
rte_cryptodev_scheduler.h:262
rte_cryptodev_scheduler::mode
enum rte_cryptodev_scheduler_mode mode
Definition
rte_cryptodev_scheduler.h:265
rte_cryptodev_scheduler::description
const char * description
Definition
rte_cryptodev_scheduler.h:264
rte_cryptodev_scheduler::name
const char * name
Definition
rte_cryptodev_scheduler.h:263
rte_cryptodev_scheduler::ops
struct rte_cryptodev_scheduler_ops * ops
Definition
rte_cryptodev_scheduler.h:268
drivers
crypto
scheduler
rte_cryptodev_scheduler.h
Generated by
1.17.0