rte_crypto_op(3)

🌸 NAME 🌸

rte_crypto_op β€” bestie, this is the struct that holds literally everything about one lil cryptographic operation πŸ’–


✨ SYNOPSIS ✨

#include <rte_crypto.h>

πŸŽ€ Data Fields πŸŽ€

  • struct rte_mempool * mempool
  • rte_iova_t phys_addr
  • union { ... } β€” the choose-your-own-adventure part πŸ‘‡
union {
   struct rte_crypto_sym_op sym [0]
   struct rte_crypto_asym_op asym [0]
};

πŸ’« Detailed Description πŸ’«

Cryptographic Operation.

So like. This structure is the whole vibe of performing cryptographic operations β€” it holds all the data relating to doing the thing. It's used to contain any operation that the cryptodev API supports, and PMDs (the drivers, ily) should check the type parameter to verify that the operation is actually a supported function of that device. no promises otherwise, bestie.

Crypto ops get enqueued and dequeued in crypto PMDs using rte_cryptodev_enqueue_burst() / rte_cryptodev_dequeue_burst() β€” that's the whole cycle, that's the pipeline, that's the moment πŸ’…

Definition at line 91 of file rte_crypto.h.

πŸ” Field Documentation πŸ”

⭐ uint8_t type

operation type

Definition at line 97 of file rte_crypto.h.

⭐ uint8_t status

operation status β€” and listen, this one is doing a whole little glow-up journey ✨

  • it gets reset to RTE_CRYPTO_OP_STATUS_NOT_PROCESSED when it's allocated from the mempool
  • and it will be set to RTE_CRYPTO_OP_STATUS_SUCCESS after the crypto operation is successfully processed by a crypto PMD πŸ‘‘
Definition at line 99 of file rte_crypto.h.

⭐ uint8_t sess_type

operation session type

Definition at line 107 of file rte_crypto.h.

⭐ 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. not "probably fine", not "usually whatever you set", literally undefined, ok bestie? πŸ’€

With TLS record offload (RTE_SECURITY_PROTOCOL_TLS_RECORD), the 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.

⭐ uint8_t content_type

Content type. The field can act both as input and output β€” she's versatile, she's ambidextrous, she contains multitudes πŸ¦‹

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.

⭐ struct { ... } tls_record

TLS record


⭐ union { ... } param1

Additional per operation parameter 1.


⭐ uint8_t reserved[1]

Reserved bytes to fill 64 bits for future additions β€” she's just holding space for the girlies who come after her 🫢

Definition at line 149 of file rte_crypto.h.

⭐ 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.

Like. hands off. that's her stuff. πŸ™ˆ

Definition at line 153 of file rte_crypto.h.

⭐ struct rte_mempool* mempool

crypto operation mempool which operation is allocated from

Definition at line 163 of file rte_crypto.h.

⭐ rte_iova_t phys_addr

physical address of crypto operation

Definition at line 166 of file rte_crypto.h.

⭐ struct rte_crypto_sym_op sym[0]

Symmetric operation parameters

Definition at line 178 of file rte_crypto.h.

⭐ struct rte_crypto_asym_op asym[0]

Asymmetric operation parameters

Definition at line 181 of file rte_crypto.h.

⭐ __extension__ union { ... }

operation specific parameters


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for DPDK from the source code. (so like, don't @ me about typos, blame the robot πŸŽ€)


and that's the whole page bestie!! this one's from DPDK Version 25.11.3, page rte_crypto_op(3) β€” mwah, go enqueue a burst, you got this πŸ’…βœ¨

πŸ“¦ where this page comes from