drivers/crypto/caam/pdb.h
Source file repositories/reference/linux-study-clean/drivers/crypto/caam/pdb.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/crypto/caam/pdb.h- Extension
.h- Size
- 14641 bytes
- Lines
- 600
- Domain
- Driver Families
- Bucket
- drivers/crypto
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
compat.h
Detected Declarations
struct ipsec_encap_cbcstruct ipsec_encap_ctrstruct ipsec_encap_ccmstruct ipsec_encap_gcmstruct ipsec_encap_pdbstruct ipsec_decap_cbcstruct ipsec_decap_ctrstruct ipsec_decap_ccmstruct ipsec_decap_gcmstruct ipsec_decap_pdbstruct ipsec_deco_dpovrdstruct wifi_encap_pdbstruct wifi_decap_pdbstruct wimax_encap_pdbstruct wimax_decap_pdbstruct macsec_encap_pdbstruct macsec_decap_pdbstruct tls_block_encap_pdbstruct tls_stream_encap_pdbstruct dtls_block_encap_pdbstruct tls_block_decap_pdbstruct tls_stream_decap_pdbstruct dtls_block_decap_pdbstruct srtp_encap_pdbstruct srtp_decap_pdbstruct dsa_sign_pdbstruct dsa_verify_pdbstruct rsa_pub_pdbstruct rsa_priv_f1_pdbstruct rsa_priv_f2_pdbstruct rsa_priv_f3_pdb
Annotated Snippet
struct ipsec_encap_cbc {
u8 iv[16];
};
/**
* ipsec_encap_ctr - PDB part for IPsec CTR encapsulation
* @ctr_nonce: 4-byte array nonce
* @ctr_initial: initial count constant
* @iv: initialization vector
*/
struct ipsec_encap_ctr {
u8 ctr_nonce[4];
u32 ctr_initial;
u64 iv;
};
/**
* ipsec_encap_ccm - PDB part for IPsec CCM encapsulation
* @salt: 3-byte array salt (lower 24 bits)
* @ccm_opt: CCM algorithm options - MSB-LSB description:
* b0_flags (8b) - CCM B0; use 0x5B for 8-byte ICV, 0x6B for 12-byte ICV,
* 0x7B for 16-byte ICV (cf. RFC4309, RFC3610)
* ctr_flags (8b) - counter flags; constant equal to 0x3
* ctr_initial (16b) - initial count constant
* @iv: initialization vector
*/
struct ipsec_encap_ccm {
u8 salt[4];
u32 ccm_opt;
u64 iv;
};
/**
* ipsec_encap_gcm - PDB part for IPsec GCM encapsulation
* @salt: 3-byte array salt (lower 24 bits)
* @rsvd: reserved, do not use
* @iv: initialization vector
*/
struct ipsec_encap_gcm {
u8 salt[4];
u32 rsvd1;
u64 iv;
};
/**
* ipsec_encap_pdb - PDB for IPsec encapsulation
* @options: MSB-LSB description
* hmo (header manipulation options) - 4b
* reserved - 4b
* next header - 8b
* next header offset - 8b
* option flags (depend on selected algorithm) - 8b
* @seq_num_ext_hi: (optional) IPsec Extended Sequence Number (ESN)
* @seq_num: IPsec sequence number
* @spi: IPsec SPI (Security Parameters Index)
* @ip_hdr_len: optional IP Header length (in bytes)
* reserved - 16b
* Opt. IP Hdr Len - 16b
* @ip_hdr: optional IP Header content
*/
struct ipsec_encap_pdb {
u32 options;
u32 seq_num_ext_hi;
u32 seq_num;
union {
struct ipsec_encap_cbc cbc;
struct ipsec_encap_ctr ctr;
struct ipsec_encap_ccm ccm;
struct ipsec_encap_gcm gcm;
};
u32 spi;
u32 ip_hdr_len;
u32 ip_hdr[];
};
/**
* ipsec_decap_cbc - PDB part for IPsec CBC decapsulation
* @rsvd: reserved, do not use
*/
struct ipsec_decap_cbc {
u32 rsvd[2];
};
/**
* ipsec_decap_ctr - PDB part for IPsec CTR decapsulation
* @ctr_nonce: 4-byte array nonce
* @ctr_initial: initial count constant
*/
struct ipsec_decap_ctr {
u8 ctr_nonce[4];
Annotation
- Immediate include surface: `compat.h`.
- Detected declarations: `struct ipsec_encap_cbc`, `struct ipsec_encap_ctr`, `struct ipsec_encap_ccm`, `struct ipsec_encap_gcm`, `struct ipsec_encap_pdb`, `struct ipsec_decap_cbc`, `struct ipsec_decap_ctr`, `struct ipsec_decap_ccm`, `struct ipsec_decap_gcm`, `struct ipsec_decap_pdb`.
- Atlas domain: Driver Families / drivers/crypto.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.