include/linux/mlx4/qp.h
Source file repositories/reference/linux-study-clean/include/linux/mlx4/qp.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mlx4/qp.h- Extension
.h- Size
- 12459 bytes
- Lines
- 509
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/if_ether.hlinux/mlx4/device.h
Detected Declarations
struct mlx4_rss_contextstruct mlx4_qp_pathstruct mlx4_qp_contextstruct mlx4_update_qp_contextstruct mlx4_wqe_ctrl_segstruct mlx4_wqe_mlx_segstruct mlx4_wqe_datagram_segstruct mlx4_wqe_lso_segstruct mlx4_wqe_bind_segstruct mlx4_wqe_fmr_segstruct mlx4_wqe_fmr_ext_segstruct mlx4_wqe_local_inval_segstruct mlx4_wqe_raddr_segstruct mlx4_wqe_atomic_segstruct mlx4_wqe_masked_atomic_segstruct mlx4_wqe_data_segstruct mlx4_wqe_inline_segstruct mlx4_update_qp_paramsenum mlx4_qp_optparenum mlx4_qp_stateenum mlx4_wqe_bind_seg_flags2enum mlx4_update_qp_attrenum mlx4_update_qp_params_flagsfunction folded_qp
Annotated Snippet
struct mlx4_rss_context {
__be32 base_qpn;
__be32 default_qpn;
u16 reserved;
u8 hash_fn;
u8 flags;
__be32 rss_key[MLX4_EN_RSS_KEY_SIZE / sizeof(__be32)];
__be32 base_qpn_udp;
};
struct mlx4_qp_path {
u8 fl;
union {
u8 vlan_control;
u8 control;
};
u8 disable_pkey_check;
u8 pkey_index;
u8 counter_index;
u8 grh_mylmc;
__be16 rlid;
u8 ackto;
u8 mgid_index;
u8 static_rate;
u8 hop_limit;
__be32 tclass_flowlabel;
u8 rgid[16];
u8 sched_queue;
u8 vlan_index;
u8 feup;
u8 fvl_rx;
u8 reserved4[2];
u8 dmac[ETH_ALEN];
};
enum { /* fl */
MLX4_FL_CV = 1 << 6,
MLX4_FL_SV = 1 << 5,
MLX4_FL_ETH_HIDE_CQE_VLAN = 1 << 2,
MLX4_FL_ETH_SRC_CHECK_MC_LB = 1 << 1,
MLX4_FL_ETH_SRC_CHECK_UC_LB = 1 << 0,
};
enum { /* control */
MLX4_CTRL_ETH_SRC_CHECK_IF_COUNTER = 1 << 7,
};
enum { /* vlan_control */
MLX4_VLAN_CTRL_ETH_TX_BLOCK_TAGGED = 1 << 6,
MLX4_VLAN_CTRL_ETH_TX_BLOCK_PRIO_TAGGED = 1 << 5, /* 802.1p priority tag */
MLX4_VLAN_CTRL_ETH_TX_BLOCK_UNTAGGED = 1 << 4,
MLX4_VLAN_CTRL_ETH_RX_BLOCK_TAGGED = 1 << 2,
MLX4_VLAN_CTRL_ETH_RX_BLOCK_PRIO_TAGGED = 1 << 1, /* 802.1p priority tag */
MLX4_VLAN_CTRL_ETH_RX_BLOCK_UNTAGGED = 1 << 0
};
enum { /* feup */
MLX4_FEUP_FORCE_ETH_UP = 1 << 6, /* force Eth UP */
MLX4_FSM_FORCE_ETH_SRC_MAC = 1 << 5, /* force Source MAC */
MLX4_FVL_FORCE_ETH_VLAN = 1 << 3 /* force Eth vlan */
};
enum { /* fvl_rx */
MLX4_FVL_RX_FORCE_ETH_VLAN = 1 << 0 /* enforce Eth rx vlan */
};
struct mlx4_qp_context {
__be32 flags;
__be32 pd;
u8 mtu_msgmax;
u8 rq_size_stride;
u8 sq_size_stride;
u8 rlkey_roce_mode;
__be32 usr_page;
__be32 local_qpn;
__be32 remote_qpn;
struct mlx4_qp_path pri_path;
struct mlx4_qp_path alt_path;
__be32 params1;
u32 reserved1;
__be32 next_send_psn;
__be32 cqn_send;
__be16 roce_entropy;
__be16 reserved2[3];
__be32 last_acked_psn;
__be32 ssn;
__be32 params2;
__be32 rnr_nextrecvpsn;
__be32 xrcd;
__be32 cqn_recv;
Annotation
- Immediate include surface: `linux/types.h`, `linux/if_ether.h`, `linux/mlx4/device.h`.
- Detected declarations: `struct mlx4_rss_context`, `struct mlx4_qp_path`, `struct mlx4_qp_context`, `struct mlx4_update_qp_context`, `struct mlx4_wqe_ctrl_seg`, `struct mlx4_wqe_mlx_seg`, `struct mlx4_wqe_datagram_seg`, `struct mlx4_wqe_lso_seg`, `struct mlx4_wqe_bind_seg`, `struct mlx4_wqe_fmr_seg`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.