CDEV_SCHED_MODE_USERDEFINED(3)
π CDEV_SCHED_MODE_COUNT(3) β¨
okay so before we even start β this page's manual name is rte_crypto...scheduler.h, section 3 of the Library Functions Manual, and yes the file we're stanning is rte_cryptodev_scheduler.h. Buckle up bestie, there's a whole scheduler device in here and it's honestly iconic π«Ά
πΈ NAME πΈ
rte_cryptodev_scheduler.h β that's the header, that's the vibe, that's the whole main character π
β¨ 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 π
<h2>RTE Cryptodev Scheduler Device</h2>
okay so picture this: the RTE Cryptodev Scheduler Device lets you aggregate multiple worker Cryptodevs into a single logical crypto device β like a group chat but for crypto devices, and honestly the teamwork is giving π«Ά. Then it schedules the crypto operations out to those workers based on the mode of the specified mode of operation that's specified and supported (yes, that's how it's worded, and yes we love a recursive sentence π).
This implementation supports 3 modes of operation: round robin, packet-size based, and fail-over. periodt.
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. eight. that's the limit bestie β¨
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. lowkey a whole RTE_MAX_LCORE minus one π§
Definition at line 33 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_ROUND_ROBIN round-robin
Round-robin scheduling mode string β the name string, not a vibe, an actual 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, and yes it's spelled packet-size-distr, no cap πΈ
Definition at line 38 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_FAIL_OVER fail-over
Fail-over scheduling mode string. hyphenated and hydrated β¨
Definition at line 40 of file rte_cryptodev_scheduler.h.
#define SCHEDULER_MODE_NAME_MULTI_CORE multi-core
multi-core scheduling mode string β note the lowercase multi-core, that's literally how it's written π₯
Definition at line 42 of file rte_cryptodev_scheduler.h.
#define RTE_CRYPTODEV_SCHEDULER_PARAM_THRES 'threshold'
Threshold option structure. it's 'threshold' with the single quotes, keep them, they're part of the fit π
Definition at line 79 of file rte_cryptodev_scheduler.h.
π¦ ENUMERATION TYPE DOCUMENTATION π¦
enum rte_cryptodev_scheduler_mode
Crypto scheduler PMD operation modes β the whole menu, bestie π
Enumerator
CDEV_SCHED_MODE_USERDEFINEDβ User defined mode, aka you bring your own, main character energy πCDEV_SCHED_MODE_ROUNDROBINβ Round-robin modeCDEV_SCHED_MODE_PKT_SIZE_DISTRβ Packet-size based distribution modeCDEV_SCHED_MODE_FAILOVERβ Fail-over modeCDEV_SCHED_MODE_MULTICOREβ multi-core mode (lowercase again, she's consistent π )CDEV_SCHED_MODE_COUNTβ number of modes. that's this page's whole title, we made it π
Definition at line 47 of file rte_cryptodev_scheduler.h.
enum rte_cryptodev_schedule_option_type
Crypto scheduler option types β no enumerators listed here, that's just how the docs are, don't come for me π
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. yes queen, inject your own logic π
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 β welcome to the group chat, you're in π«Ά
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.
ngl that -ENOMEM is the "chat is full" error and we've all been there π
int rte_cryptodev_scheduler_worker_detach (uint8_t scheduler_id, uint8_t worker_id)
Detach a crypto device from the scheduler. it's not you it's the topology β¨
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. pick your fighter π
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. vibe check, but for schedulers π
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 β the toggle of destiny π
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. is she ordered or is she chaos π¦
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. roll call π£
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. very specific, very mode, very demure β¨
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.
okay so head's up bestie: the summary line here literally says "Set" even though this is the _get function. that's just what the docs say, I'm not the one who wrote it π copying it faithfully, no notes π
Parameters
scheduler_idβ The target scheduler device IDoption_typeβ The option type enumerateoptionβ If successful, the function will write back the current
and yep, that parameter description trails off at "the current" in the original. we respect the cliffhanger π
Returns
0if successful- negative integer if otherwise.
π§ VARIABLE DOCUMENTATION π§
struct rte_cryptodev_scheduler* crypto_scheduler_roundrobin [extern]β Round-robin mode schedulerstruct rte_cryptodev_scheduler* crypto_scheduler_pkt_size_based_distr [extern]β Packet-size based distribution mode schedulerstruct rte_cryptodev_scheduler* crypto_scheduler_failover [extern]β Fail-over mode schedulerstruct rte_cryptodev_scheduler* crypto_scheduler_multicore [extern]β multi-core mode scheduler
π AUTHOR π
Generated automatically by Doxygen for DPDK from the source code. so like, a robot wrote it, and I just gave it a personality π«Ά
and that's the whole page bestie!! brought to you by DPDK, Version 26.03.0 β the rte_crypto...scheduler.h(3) manual page, section 3 of the Library Functions Manual. go forth and schedule your cryptodevs, you absolute icon π
β¨π
π¦ where this page comes from
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms