DPDK
21.11.8
|
#include <stdint.h>
#include "rte_cryptodev_scheduler_operations.h"
Go to the source code of this file.
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" |
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 |
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.
#define RTE_CRYPTODEV_SCHEDULER_MAX_NB_WORKERS (8) |
Maximum number of bonded 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.
Crypto scheduler PMD operation modes
Definition at line 47 of file rte_cryptodev_scheduler.h.
Crypto scheduler option types
Definition at line 69 of file rte_cryptodev_scheduler.h.
int rte_cryptodev_scheduler_load_user_scheduler | ( | uint8_t | scheduler_id, |
struct rte_cryptodev_scheduler * | scheduler | ||
) |
Load a user defined scheduler
scheduler_id | The target scheduler device ID |
scheduler | Pointer to the user defined scheduler |
int rte_cryptodev_scheduler_worker_attach | ( | uint8_t | scheduler_id, |
uint8_t | worker_id | ||
) |
Attach a crypto device to the scheduler
scheduler_id | The target scheduler device ID |
worker_id | Crypto device ID to be attached |
int rte_cryptodev_scheduler_worker_detach | ( | uint8_t | scheduler_id, |
uint8_t | worker_id | ||
) |
Detach a crypto device from the scheduler
scheduler_id | The target scheduler device ID |
worker_id | Crypto device ID to be detached |
int rte_cryptodev_scheduler_mode_set | ( | uint8_t | scheduler_id, |
enum rte_cryptodev_scheduler_mode | mode | ||
) |
Set the scheduling mode
scheduler_id | The target scheduler device ID |
mode | The scheduling mode |
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get | ( | uint8_t | scheduler_id | ) |
Get the current scheduling mode
scheduler_id | The target scheduler device ID |
int rte_cryptodev_scheduler_ordering_set | ( | uint8_t | scheduler_id, |
uint32_t | enable_reorder | ||
) |
Set the crypto ops reordering feature on/off
scheduler_id | The target scheduler device ID |
enable_reorder | Set the crypto op reordering feature
|
int rte_cryptodev_scheduler_ordering_get | ( | uint8_t | scheduler_id | ) |
Get the current crypto ops reordering feature
scheduler_id | The target scheduler device ID |
int rte_cryptodev_scheduler_workers_get | ( | uint8_t | scheduler_id, |
uint8_t * | workers | ||
) |
Get the attached workers' count and/or ID
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. |
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
scheduler_id | The target scheduler device ID |
option_type | The option type enumerate |
option | The specific mode's option structure |
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
scheduler_id | The target scheduler device ID |
option_type | The option type enumerate |
option | If successful, the function will write back the current |
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