DPDK  24.03.0
Data Fields
rte_crypto_op Struct Reference

#include <rte_crypto.h>

Data Fields

struct rte_mempoolmempool
rte_iova_t phys_addr
union {
   struct rte_crypto_sym_op   sym [0]
   struct rte_crypto_asym_op   asym [0]
uint8_t type
uint8_t status
uint8_t sess_type
uint8_t aux_flags
uint8_t content_type
struct {
   uint8_t   content_type
union {
   struct {
      uint8_t   content_type
   }   tls_record
uint8_t reserved [1]
uint16_t private_data_offset

Detailed Description

Cryptographic Operation.

This structure contains data relating to performing cryptographic operations. This operation structure is used to contain any operation which is supported by the cryptodev API, PMDs should check the type parameter to verify that the operation is a support function of the device. Crypto operations are enqueued and dequeued in crypto PMDs using the rte_cryptodev_enqueue_burst() / rte_cryptodev_dequeue_burst() .

examples/fips_validation/fips_dev_self_test.c, examples/fips_validation/main.c, examples/ipsec-secgw/esp.c, examples/ipsec-secgw/ipsec.c, examples/ipsec-secgw/ipsec_process.c, examples/ipsec-secgw/ipsec_worker.c, examples/l2fwd-crypto/main.c, and examples/vhost_crypto/main.c.

Definition at line 91 of file rte_crypto.h.

Field Documentation

◆ type

uint8_t type

operation type


Definition at line 97 of file rte_crypto.h.

◆ status

uint8_t status

operation status - this is reset to RTE_CRYPTO_OP_STATUS_NOT_PROCESSED on allocation from mempool and will be set to RTE_CRYPTO_OP_STATUS_SUCCESS after crypto operation is successfully processed by a crypto PMD

examples/ipsec-secgw/esp.c, and examples/ipsec-secgw/ipsec_worker.c.

Definition at line 99 of file rte_crypto.h.

◆ sess_type

uint8_t sess_type

operation session type

Definition at line 107 of file rte_crypto.h.

◆ aux_flags

uint8_t aux_flags

Operation specific auxiliary/additional flags. These flags carry additional information from/to the operation. Processing of the same is optional.

The flags are defined as RTE_CRYPTO_OP_AUX_FLAGS_* and would be set by PMD for application consumption when the status is RTE_CRYPTO_OP_STATUS_SUCCESS. In case of errors, the value of this field is undefined.

With TLS record offload (RTE_SECURITY_PROTOCOL_TLS_RECORD), application may provide the extra padding required for the plaintext provided. This field can be used for passing the same in units of 8B. The value would be set by application for PMD consumption.

See also
struct rte_security_tls_record_sess_options

Definition at line 109 of file rte_crypto.h.

◆ content_type

uint8_t content_type

Content type. The field can act both as input and output.

As input, for passing message type in case of record write (encrypt) operation. Applicable for,

  1. TLS 1.2
  2. TLS 1.3
  3. DTLS 1.2

As output, for returning message type in case of record read (decrypt) operation. Applicable for,

  1. TLS 1.3

Message types are listed as RTE_TLS_TYPE_* and RTE_DTLS_TYPE_*.

Definition at line 128 of file rte_crypto.h.

◆ tls_record

struct { ... } tls_record

TLS record

◆ param1

union { ... } param1

Additional per operation parameter 1.

◆ reserved

uint8_t reserved[1]

Reserved bytes to fill 64 bits for future additions

Definition at line 149 of file rte_crypto.h.

◆ private_data_offset

uint16_t private_data_offset

Offset to indicate start of private data (if any). The offset is counted from the start of the rte_crypto_op including IV. The private data may be used by the application to store information which should remain untouched in the library/driver

Definition at line 153 of file rte_crypto.h.

◆ mempool

struct rte_mempool* mempool

crypto operation mempool which operation is allocated from

Definition at line 163 of file rte_crypto.h.

◆ phys_addr

rte_iova_t phys_addr

physical address of crypto operation

Definition at line 166 of file rte_crypto.h.

◆ sym

struct rte_crypto_sym_op sym[0]

◆ asym

struct rte_crypto_asym_op asym[0]

Asymmetric operation parameters


Definition at line 181 of file rte_crypto.h.

◆ @82

__extension__ { ... }

operation specific parameters

The documentation for this struct was generated from the following file: