rte_cryptodev_scheduler.h(3) | DPDK | rte_cryptodev_scheduler.h(3) |
NAME¶
rte_cryptodev_scheduler.h
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 { ,
CDEV_SCHED_MODE_USERDEFINED, CDEV_SCHED_MODE_ROUNDROBIN,
CDEV_SCHED_MODE_PKT_SIZE_DISTR, CDEV_SCHED_MODE_FAILOVER,
CDEV_SCHED_MODE_MULTICORE, CDEV_SCHED_MODE_COUNT }
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
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.
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 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:
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:
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:
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:
Returns:
- 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:
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:
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:
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:
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:
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¶
Round-robin mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_pkt_size_based_distr¶
Packet-size based distribution mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_failover¶
Fail-over mode scheduler
struct rte_cryptodev_scheduler* crypto_scheduler_multicore¶
multi-core mode scheduler
Author¶
Generated automatically by Doxygen for DPDK from the source code.
Thu May 23 2024 | Version 23.11.0 |