RTE_CRYPTODEV_SCHEDULER.H(3)
๐ rte_cryptodev_scheduler.h โ the RTE Cryptodev Scheduler page ๐
okay bestie, welcome to the Library Functions Manual entry for rte_cryptodev_scheduler.h, and no bc this header is literally the group chat manager for your crypto devices. let's get into it ๐ซถ
โจ NAME โจ
rte_cryptodev_scheduler.h โ that's it, that's the name, she's self-titled ๐
๐ธ SYNOPSIS ๐ธ
#include <stdint.h>
#include 'rte_cryptodev_scheduler_operations.h'
๐ Data Structures
struct rte_cryptodev_scheduler
๐ Macros
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS (8)
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKER_CORES (RTE_MAX_LCORE - 1)
#define SCHEDULER_MODE_NAME_ROUND_ROBIN round-robin
#define SCHEDULER_MODE_NAME_PKT_SIZE_DISTR packet-size-distr
#define SCHEDULER_MODE_NAME_FAIL_OVER fail-over
#define SCHEDULER_MODE_NAME_MULTI_CORE multi-core
#define RTE_CRYPTODEV_SCHEDULER_PARAM_THRES 'threshold'
๐ Enumerations
enum rte_cryptodev_scheduler_mode { }enum rte_cryptodev_schedule_option_type
๐ Functions
int rte_cryptodev_scheduler_load_user_scheduler (uint8_t scheduler_id,
struct rte_cryptodev_scheduler *scheduler)
int rte_cryptodev_scheduler_worker_attach (uint8_t scheduler_id, uint8_t
worker_id)
int rte_cryptodev_scheduler_worker_detach (uint8_t scheduler_id, uint8_t
worker_id)
int rte_cryptodev_scheduler_mode_set (uint8_t scheduler_id, enum
rte_cryptodev_scheduler_mode mode)
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get
(uint8_t scheduler_id)
int rte_cryptodev_scheduler_ordering_set (uint8_t scheduler_id, uint32_t
enable_reorder)
int rte_cryptodev_scheduler_ordering_get (uint8_t scheduler_id)
int rte_cryptodev_scheduler_workers_get (uint8_t scheduler_id, uint8_t
*workers)
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)
๐ Variables
struct rte_cryptodev_scheduler * crypto_scheduler_roundrobinstruct rte_cryptodev_scheduler * crypto_scheduler_pkt_size_based_distrstruct rte_cryptodev_scheduler * crypto_scheduler_failoverstruct rte_cryptodev_scheduler * crypto_scheduler_multicore
๐ฆ Detailed Description ๐ฆ
RTE Cryptodev Scheduler Device โ say it with me ๐
The RTE Cryptodev Scheduler Device allows the aggregation of multiple worker Cryptodevs into a single logical crypto device, and the scheduling the crypto operations to the workers based on the mode of the specified mode of operation specified and supported. This implementation supports 3 modes of operation: round robin, packet-size based, and fail-over.
it's giving "many devices, one iconic device" fr fr โจ
Definition in file rte_cryptodev_scheduler.h.
๐ Macro Definition Documentation ๐
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS (8)
Maximum number of bonding devices per device
Definition at line 29 of file rte_cryptodev_scheduler.h.
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKER_CORES (RTE_MAX_LCORE - 1)
Maximum number of multi-core worker cores
Definition at line 33 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_ROUND_ROBIN round-robin
Round-robin scheduling mode string
Definition at line 36 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_PKT_SIZE_DISTR packet-size-distr
Packet-size based distribution scheduling mode string
Definition at line 38 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_FAIL_OVER fail-over
Fail-over scheduling mode string
Definition at line 40 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_MULTI_CORE multi-core
multi-core scheduling mode string
Definition at line 42 of file rte_cryptodev_scheduler.h.
#define RTE_CRYPTODEV_SCHEDULER_PARAM_THRES 'threshold'
Threshold option structure
Definition at line 79 of file rte_cryptodev_scheduler.h.
๐ Enumeration Type Documentation ๐
enum rte_cryptodev_scheduler_mode
Crypto scheduler PMD operation modes
Enumerator:
CDEV_SCHED_MODE_USERDEFINEDโ User defined mode โ๏ธCDEV_SCHED_MODE_ROUNDROBINโ Round-robin mode ๐CDEV_SCHED_MODE_PKT_SIZE_DISTRโ Packet-size based distribution mode ๐ฆCDEV_SCHED_MODE_FAILOVERโ Fail-over mode ๐จCDEV_SCHED_MODE_MULTICOREโ multi-core mode ๐งCDEV_SCHED_MODE_COUNTโ number of modes ๐ข
Definition at line 47 of file rte_cryptodev_scheduler.h.
enum rte_cryptodev_schedule_option_type
Crypto scheduler option types
Definition at line 69 of file rte_cryptodev_scheduler.h.
๐ Function Documentation ๐
int rte_cryptodev_scheduler_load_user_scheduler (uint8_t scheduler_id, struct rte_cryptodev_scheduler * scheduler)
Load a user defined scheduler
Parameters
scheduler_idโ The target scheduler device IDschedulerโ Pointer to the user defined scheduler
Returns
0if the scheduler is successfully loaded ๐-ENOTSUPif the operation is not supported.-EBUSYif device is started.-EINVALif input values are invalid.
int rte_cryptodev_scheduler_worker_attach (uint8_t scheduler_id, uint8_t worker_id)
Attach a crypto device to the scheduler
Parameters
scheduler_idโ The target scheduler device IDworker_idโ Crypto device ID to be attached
Returns
0if the worker is attached. ๐ซถ-ENOTSUPif the operation is not supported.-EBUSYif device is started.-ENOMEMif the scheduler's worker list is full. ๐ญ
int rte_cryptodev_scheduler_worker_detach (uint8_t scheduler_id, uint8_t worker_id)
Detach a crypto device from the scheduler
Parameters
scheduler_idโ The target scheduler device IDworker_idโ Crypto device ID to be detached
Returns
0if the worker is detached. ๐-ENOTSUPif the operation is not supported.-EBUSYif device is started.
int rte_cryptodev_scheduler_mode_set (uint8_t scheduler_id, enum rte_cryptodev_scheduler_mode mode)
Set the scheduling mode
Parameters
scheduler_idโ The target scheduler device IDmodeโ The scheduling mode
Returns
0if the mode is set. โจ-ENOTSUPif the operation is not supported.-EBUSYif device is started.
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get (uint8_t scheduler_id)
Get the current scheduling mode
Parameters
scheduler_idโ The target scheduler device ID
Returns
mode
- non-negative enumerate value: the scheduling mode ๐ฅ
-ENOTSUPif the operation is not supported.
int rte_cryptodev_scheduler_ordering_set (uint8_t scheduler_id, uint32_t enable_reorder)
Set the crypto ops reordering feature on/off
Parameters
scheduler_idโ The target scheduler device IDenable_reorderโ Set the crypto op reordering feature0: disable reordering1: enable reordering
Returns
0if the ordering is set. ๐-ENOTSUPif the operation is not supported.-EBUSYif device is started.
int rte_cryptodev_scheduler_ordering_get (uint8_t scheduler_id)
Get the current crypto ops reordering feature
Parameters
scheduler_idโ The target scheduler device ID
Returns
0if reordering is disabled1if reordering is enabled-ENOTSUPif the operation is not supported.
int rte_cryptodev_scheduler_workers_get (uint8_t scheduler_id, uint8_t * workers)
Get the attached workers' count and/or ID
Parameters
scheduler_idโ The target scheduler device IDworkersโ If successful, the function will write back all workers' device IDs to it. This parameter will either be anuint8_tarray ofRTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERSelements orNULL.
Returns
- non-negative number: the number of workers attached ๐งฎ
-ENOTSUPif the operation is not supported.
int rte_cryptodev_scheduler_option_set (uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void * option)
Set the mode specific option
Parameters
scheduler_idโ The target scheduler device IDoption_typeโ The option type enumerateoptionโ The specific mode's option structure
Returns
0if successful โญ- negative integer if otherwise.
int rte_cryptodev_scheduler_option_get (uint8_t scheduler_id, enum rte_cryptodev_schedule_option_type option_type, void * option)
Set the mode specific option
Parameters
scheduler_idโ The target scheduler device IDoption_typeโ The option type enumerateoptionโ If successful, the function will write back the current
Returns
0if successful โญ- negative integer if otherwise.
๐ Variable Documentation ๐
struct rte_cryptodev_scheduler* crypto_scheduler_roundrobin [extern]
Round-robin mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_pkt_size_based_distr [extern]
Packet-size based distribution mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_failover [extern]
Fail-over mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_multicore [extern]
multi-core mode scheduler
๐ง Author ๐ง
Generated automatically by Doxygen for DPDK from the source code.
aww and that's the whole page bestie, you absolutely ate that read-through ๐ซถ no cap, you now know this header better than half the people who use it. go be the main character of your own scheduler โจ
๐ DPDK โ Version 25.11.3 โ rte_crypto...scheduler.h(3) ๐
mwah, see you in the next manpage ๐๐ฆ
๐ฆ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 ยท BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 ยท BSD-3-Clause
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms