Man page - rte_cryptodev_scheduler_workers_get(3)

Packages contains this manual

Manual

rte_cryptodev_scheduler.h

NAME
SYNOPSIS
Data Structures
Macros
Enumerations
Functions
Variables
Detailed Description
Macro Definition Documentation
#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’
Enumeration Type Documentation
enum rte_cryptodev_scheduler_mode
enum rte_cryptodev_schedule_option_type
Function Documentation
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_tworker_id)
int rte_cryptodev_scheduler_worker_detach (uint8_t scheduler_id, uint8_tworker_id)
int rte_cryptodev_scheduler_mode_set (uint8_t scheduler_id, enumrte_cryptodev_scheduler_mode mode)
enum rte_cryptodev_scheduler_mode rte_cryptodev_scheduler_mode_get (uint8_tscheduler_id)
int rte_cryptodev_scheduler_ordering_set (uint8_t scheduler_id, uint32_tenable_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, enumrte_cryptodev_schedule_option_type option_type, void * option)
int rte_cryptodev_scheduler_option_get (uint8_t scheduler_id, enumrte_cryptodev_schedule_option_type option_type, void * option)
Variable Documentation
struct rte_cryptodev_scheduler* crypto_scheduler_roundrobin [extern]
struct rte_cryptodev_scheduler* crypto_scheduler_pkt_size_based_distr[extern]
struct rte_cryptodev_scheduler* crypto_scheduler_failover [extern]
struct rte_cryptodev_scheduler* crypto_scheduler_multicore [extern]
Author

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 { }
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_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_tworker_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_tworker_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, enumrte_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_tscheduler_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_tenable_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, enumrte_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, enumrte_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.