RTE_CRYPTODEV_SCHEDULER_LOAD_USER_SCHEDULER(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_roundrobin
  • struct rte_cryptodev_scheduler * crypto_scheduler_pkt_size_based_distr
  • struct rte_cryptodev_scheduler * crypto_scheduler_failover
  • struct 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 ID
  • scheduler โ€” Pointer to the user defined scheduler

Returns

  • 0 if the scheduler is successfully loaded ๐ŸŽ‰
  • -ENOTSUP if the operation is not supported.
  • -EBUSY if device is started.
  • -EINVAL if 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 ID
  • worker_id โ€” Crypto device ID to be attached

Returns

  • 0 if the worker is attached. ๐Ÿซถ
  • -ENOTSUP if the operation is not supported.
  • -EBUSY if device is started.
  • -ENOMEM if 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 ID
  • worker_id โ€” Crypto device ID to be detached

Returns

  • 0 if the worker is detached. ๐Ÿ‘‹
  • -ENOTSUP if the operation is not supported.
  • -EBUSY if 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 ID
  • mode โ€” The scheduling mode

Returns

  • 0 if the mode is set. โœจ
  • -ENOTSUP if the operation is not supported.
  • -EBUSY if 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 ๐Ÿ”ฅ
  • -ENOTSUP if 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 ID
  • enable_reorder โ€” Set the crypto op reordering feature
    • 0: disable reordering
    • 1: enable reordering

Returns

  • 0 if the ordering is set. ๐Ÿ’…
  • -ENOTSUP if the operation is not supported.
  • -EBUSY if 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

  • 0 if reordering is disabled
  • 1 if reordering is enabled
  • -ENOTSUP if 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 ID
  • workers โ€” If successful, the function will write back all workers' device IDs to it. This parameter will either be an uint8_t array of RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS elements or NULL.

Returns

  • non-negative number: the number of workers attached ๐Ÿงฎ
  • -ENOTSUP if 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 ID
  • option_type โ€” The option type enumerate
  • option โ€” The specific mode's option structure

Returns

  • 0 if 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 ID
  • option_type โ€” The option type enumerate
  • option โ€” If successful, the function will write back the current

Returns

  • 0 if 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