Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 {  }
       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_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.

Version	25.11.0			Thu Jun	11 2026	  rte_cryptodev_scheduler.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=crypto_scheduler_multicore&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help