rte_security_pdcp_xform(3)
π NAME
rte_security_pdcp_xform β okay bestie, this is the struct for PDCP security association config data β¨ it's giving "everything you need to spin up a PDCP security session" and honestly? iconic.
This page is rte_security_pdcp_xform(3) from the Library Functions Manual, and we're about to go through it field by field, no skips, no cap π«Ά
πΈ SYNOPSIS
#include <rte_security.h>
π Data Fields
int8_t bearer
uint8_t en_ordering
uint8_t remove_duplicates
enum rte_security_pdcp_domain domain
enum rte_security_pdcp_direction pkt_dir
enum rte_security_pdcp_sn_size sn_size
uint32_t hfn
uint32_t hfn_threshold
uint8_t hfn_ovrd
uint8_t sdap_enabled
uint16_t reserved
That's the whole roster, eleven fields, all accounted for π
π Detailed Description
It's PDCP security association configuration data, periodt. This struct holds all the data you need to create a PDCP security session π
Defined at line 536 of the file rte_security.h β write that down bestie, you'll want it later π¦
β¨ Field Documentation
π int8_t bearer
The PDCP bearer ID. That's it, that's the field π«
Defined at line 537 of rte_security.h.
π§ uint8_t en_ordering
Enables in-order delivery. Careful though β you should only set this if the driver/HW is actually capable of it, so check RTE_SECURITY_PDCP_ORDERING_CAP first, iykyk π
Defined at line 541 of rte_security.h.
πΈ uint8_t remove_duplicates
Politely tells the driver/HW to detect and remove duplicate packets π Same deal as above: only set this when the driver/HW is capable, and the thing to check is RTE_SECURITY_PDCP_DUP_DETECT_CAP β¨
Defined at line 546 of rte_security.h.
π¦ enum rte_security_pdcp_domain domain
The PDCP mode of operation β Control or data. Two moods, pick one π
Defined at line 548 of rte_security.h.
π enum rte_security_pdcp_direction pkt_dir
PDCP frame direction: 0 means UL, 1 means DL. Up or down, that's the whole vibe π
Defined at line 550 of rte_security.h.
π« enum rte_security_pdcp_sn_size sn_size
The sequence number size β 5/7/12/15/18. Pick your fighter β
Defined at line 552 of rte_security.h.
π₯ uint32_t hfn
The starting Hyper Frame Number, used together with the SN from the PDCP frames. They're a package deal, fr fr π
Defined at line 556 of rte_security.h.
π uint32_t hfn_threshold
The HFN threshold for key renegotiation β so it's the number that says "time to rotate the keys bestie" π
Defined at line 558 of rte_security.h.
π uint8_t hfn_ovrd
Okay so this one's a little extra, so let me explain π«Ά The HFN can also be given as a per-packet value. Since we don't have an IV in the case of PDCP, and the HFN is what's used to generate the IV, the IV field can be used to get the per-packet HFN while enqueuing/dequeuing. If the hfn_ovrd field is set, you (the user) are expected to set the per-packet HFN in place of the IV, and the PMDs will extract that HFN and do their operations accordingly β¨
Defined at line 567 of rte_security.h.
π uint8_t sdap_enabled
In the case of 5G NR, a new protocol (SDAP) header may be set inside the PDCP payload, and the whole point is that it should be authenticated but not encrypted π So the driver needs to be notified whether SDAP is enabled or not, so it knows not to encrypt that SDAP header. Respect the header π
Defined at line 573 of rte_security.h.
π uint16_t reserved
Reserved for the future. Hands off, it's saving that space for later π¦
Defined at line 575 of rte_security.h.
π Author
Generated automatically by Doxygen for DPDK from the source code. Not a human, just vibes and a parser π
Heads up bestie: this page is auto-generated doc, so the line numbers and the rte_security.h references are the source of truth β don't let anyone tell you otherwise π
That's the whole page, no notes π Sourced from DPDK, Version 26.03.0, rte_security_pdcp_xform(3) β go forth and configure your PDCP sessions, you've absolutely got this π«Άβ¨π
π¦ where this page comes from
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms