drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h- Extension
.h- Size
- 2554 bytes
- Lines
- 99
- Domain
- Driver Families
- Bucket
- drivers/net
- 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
net/tls.hen.hen/txrx.h
Detected Declarations
struct mlx5e_accel_tx_tls_statefunction mlx5e_ktls_tx_try_handle_resync_dump_compfunction mlx5e_ktls_rx_pending_resync_listfunction mlx5e_ktls_handle_tx_wqefunction mlx5e_ktls_tx_try_handle_resync_dump_compfunction mlx5e_ktls_rx_handle_resync_listfunction mlx5e_ktls_rx_pending_resync_listfunction mlx5e_ktls_get_stop_roomfunction mlx5e_ktls_handle_rx_skb
Annotated Snippet
struct mlx5e_accel_tx_tls_state {
u32 tls_tisn;
};
u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params);
bool mlx5e_ktls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq,
struct sk_buff *skb,
struct mlx5e_accel_tx_tls_state *state);
void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq, struct sk_buff *skb,
struct mlx5_cqe64 *cqe, u32 *cqe_bcnt);
void mlx5e_ktls_handle_ctx_completion(struct mlx5e_icosq_wqe_info *wi);
void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_icosq_wqe_info *wi,
struct mlx5e_icosq *sq);
void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
struct mlx5e_tx_wqe_info *wi,
u32 *dma_fifo_cc);
void
mlx5e_ktls_rx_resync_async_request_cancel(struct mlx5e_icosq_wqe_info *wi);
static inline bool
mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
struct mlx5e_tx_wqe_info *wi,
u32 *dma_fifo_cc)
{
if (unlikely(wi->resync_dump_frag_page)) {
mlx5e_ktls_tx_handle_resync_dump_comp(sq, wi, dma_fifo_cc);
return true;
}
return false;
}
bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_icosq *sq, int budget);
static inline bool
mlx5e_ktls_rx_pending_resync_list(struct mlx5e_icosq *sq, int budget)
{
return test_bit(MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC, &sq->state) &&
budget;
}
static inline void
mlx5e_ktls_handle_tx_wqe(struct mlx5_wqe_ctrl_seg *cseg,
struct mlx5e_accel_tx_tls_state *state)
{
cseg->tis_tir_num = cpu_to_be32(state->tls_tisn << 8);
}
#else
static inline bool
mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
struct mlx5e_tx_wqe_info *wi,
u32 *dma_fifo_cc)
{
return false;
}
static inline bool
mlx5e_ktls_rx_handle_resync_list(struct mlx5e_icosq *sq, int budget)
{
return false;
}
static inline bool
mlx5e_ktls_rx_pending_resync_list(struct mlx5e_icosq *sq, int budget)
{
return false;
}
static inline u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev,
struct mlx5e_params *params)
{
return 0;
}
static inline void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq,
struct sk_buff *skb,
struct mlx5_cqe64 *cqe,
u32 *cqe_bcnt)
{
}
#endif /* CONFIG_MLX5_EN_TLS */
#endif /* __MLX5E_TLS_TXRX_H__ */
Annotation
- Immediate include surface: `net/tls.h`, `en.h`, `en/txrx.h`.
- Detected declarations: `struct mlx5e_accel_tx_tls_state`, `function mlx5e_ktls_tx_try_handle_resync_dump_comp`, `function mlx5e_ktls_rx_pending_resync_list`, `function mlx5e_ktls_handle_tx_wqe`, `function mlx5e_ktls_tx_try_handle_resync_dump_comp`, `function mlx5e_ktls_rx_handle_resync_list`, `function mlx5e_ktls_rx_pending_resync_list`, `function mlx5e_ktls_get_stop_room`, `function mlx5e_ktls_handle_rx_skb`.
- Atlas domain: Driver Families / drivers/net.
- 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.