rte_pdcp_group.h(3)

πŸŽ€ NAME πŸŽ€

rte_pdcp_group.h β€” the header page for RTE PDCP grouping support, straight out of the Library Functions Manual. Yes bestie, it's a .h file with its own manpage, and honestly? Iconic behaviour. πŸ’…


✨ SYNOPSIS ✨

Pull these three in and you're ready to party:

#include <rte_common.h>
#include <rte_crypto.h>
#include <rte_cryptodev.h>

🫢 Data Structures

  • struct rte_pdcp_group β€” the whole squad of structures in this file, and it's just the one, lowkey minimal, we love a focused queen.

🌈 Functions

  • static struct rte_pdcp_entity * rte_pdcp_en_from_cop (const struct rte_crypto_op *cop)
  • static uint16_t rte_pdcp_pkt_crypto_group (struct rte_crypto_op *cop[], struct rte_mbuf *mb[], struct rte_pdcp_group grp[], uint16_t num)

πŸ’– DETAILED DESCRIPTION πŸ’–

Okay so. This file is RTE PDCP grouping support. That's the vibe. That's the whole assignment.

Real talk though β€” do NOT include this file directly, bestie. The docs say include <rte_pdcp.h> instead. I'm not playing, this is a direct "it is not recommended to include this file directly" from the source. Respect the inclusion chain. πŸ™ˆ

So what's it actually giving? It provides helper functions to process completed crypto-ops and group related packets by sessions they belong to. That's it, that's the service. Clean, purposeful, no notes.

Definition in file rte_pdcp_group.h. (That's literally where it lives. πŸ“)


πŸ‘‘ FUNCTION DOCUMENTATION πŸ‘‘

struct rte_pdcp_entity * rte_pdcp_en_from_cop (const struct rte_crypto_op * cop) [inline], [static]

⚠️ Warning: EXPERIMENTAL: this API may change without prior notice. 😭 So like, use it, love it, but don't build your whole personality on it staying identical. It's in its experimental era.

The job: it takes a crypto-op as an input and extracts the pointer to the related PDCP entity. Input goes in, PDCP entity pointer comes out. Economics. πŸ¦‹

Parameters

  • cop β€” the address of an input rte_crypto_op structure.

Returns

  • The pointer to the related rte_pdcp_entity structure.

Definition at line 50 of file rte_pdcp_group.h.


uint16_t rte_pdcp_pkt_crypto_group (struct rte_crypto_op * cop[], struct rte_mbuf * mb[], struct rte_pdcp_group grp[], uint16_t num) [inline], [static]

⚠️ Warning: EXPERIMENTAL: this API may change without prior notice. Same energy as above, bestie. 🫠

The job, and she's a busy one: take as input completed crypto ops, extract related mbufs, and group them by the rte_pdcp_entity they belong to. Sorting the friend group into their little subgroups. πŸ’…

Two very important receipts here:

  • Mbuf for which the crypto operation has failed would be flagged using the RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED flag in rte_mbuf.ol_flags. So check your flags, that's your "this one didn't make it" indicator.
  • The crypto_ops would be freed after the grouping. Gone. Poof. Don't go touching them afterwards. πŸ’€
πŸ“ Note: note that application must ensure only crypto-ops prepared by lib_pdcp is provided back to

(Yeah. That sentence just... ends right there in the source. We don't make the rules, we just report them faithfully. πŸ™ˆ)

See also

  • rte_pdcp_pkt_crypto_group().

Parameters

  • cop β€” the address of an array of num pointers to the input rte_crypto_op structures.
  • mb β€” the address of an array of num pointers to output rte_mbuf structures.
  • grp β€” the address of an array of num to output rte_pdcp_group structures.
  • num β€” the maximum number of crypto-ops to process.

Returns

  • Number of filled elements in the grp array. That's your headcount, the number of slots that actually got populated. πŸ“Š

Definition at line 83 of file rte_pdcp_group.h.


🌸 AUTHOR 🌸

Generated automatically by Doxygen for DPDK from the source code. (Not a human author, just a robot doing its little automated thing and honestly, slay. πŸ€–βœ¨)


And that's the whole page, bestie! This gorgeous specimen came to you courtesy of DPDK, sitting pretty at Version 25.11.3, and the page itself is rte_pdcp_group.h(3). Go group those packets, you absolute main character. πŸŽ€πŸ’–βœ¨

πŸ“¦ where this page comes from