include/linux/qed/nvmetcp_common.h
Source file repositories/reference/linux-study-clean/include/linux/qed/nvmetcp_common.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/qed/nvmetcp_common.h- Extension
.h- Size
- 18277 bytes
- Lines
- 532
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
tcp_common.hlinux/nvme-tcp.h
Detected Declarations
struct nvmetcp_spe_func_initstruct nvmetcp_init_ramrod_paramsstruct nvmetcp_glbl_queue_entrystruct nvmetcp_conn_offload_sectionstruct nvmetcp_conn_offload_paramsstruct nvmetcp_spe_conn_offloadstruct nvmetcp_conn_update_ramrod_paramsstruct nvmetcp_spe_conn_terminationstruct nvmetcp_dif_flagsstruct nvmetcp_wqestruct nvmetcp_host_cccid_itid_entrystruct nvmetcp_connect_done_resultsstruct nvmetcp_eqe_datastruct nvmetcp_db_datastruct nvmetcp_fw_nvmf_cqestruct nvmetcp_icresp_mdatastruct nvmetcp_fw_cqestruct ystorm_nvmetcp_task_statestruct ystorm_nvmetcp_task_rxmit_optstruct nvmetcp_task_hdrstruct nvmetcp_task_hdr_alignedstruct e5_tdif_task_contextstruct e5_rdif_task_contextstruct ystorm_nvmetcp_task_st_ctxstruct mstorm_nvmetcp_task_st_ctxstruct ustorm_nvmetcp_task_st_ctxstruct e5_ystorm_nvmetcp_task_ag_ctxstruct e5_mstorm_nvmetcp_task_ag_ctxstruct e5_ustorm_nvmetcp_task_ag_ctxstruct e5_nvmetcp_task_contextenum nvmetcp_ramrod_cmd_idenum nvmetcp_eqe_opcodeenum nvmetcp_wqe_typeenum nvmetcp_task_typeenum nvmetcp_fw_cqes_type
Annotated Snippet
struct nvmetcp_spe_func_init {
__le16 half_way_close_timeout;
u8 num_sq_pages_in_ring;
u8 num_r2tq_pages_in_ring;
u8 num_uhq_pages_in_ring;
u8 ll2_rx_queue_id;
u8 flags;
#define NVMETCP_SPE_FUNC_INIT_COUNTERS_EN_MASK 0x1
#define NVMETCP_SPE_FUNC_INIT_COUNTERS_EN_SHIFT 0
#define NVMETCP_SPE_FUNC_INIT_NVMETCP_MODE_MASK 0x1
#define NVMETCP_SPE_FUNC_INIT_NVMETCP_MODE_SHIFT 1
#define NVMETCP_SPE_FUNC_INIT_RESERVED0_MASK 0x3F
#define NVMETCP_SPE_FUNC_INIT_RESERVED0_SHIFT 2
u8 debug_flags;
__le16 reserved1;
u8 params;
#define NVMETCP_SPE_FUNC_INIT_MAX_SYN_RT_MASK 0xF
#define NVMETCP_SPE_FUNC_INIT_MAX_SYN_RT_SHIFT 0
#define NVMETCP_SPE_FUNC_INIT_RESERVED1_MASK 0xF
#define NVMETCP_SPE_FUNC_INIT_RESERVED1_SHIFT 4
u8 reserved2[5];
struct scsi_init_func_params func_params;
struct scsi_init_func_queues q_params;
};
/* NVMeTCP init params passed by driver to FW in NVMeTCP init ramrod. */
struct nvmetcp_init_ramrod_params {
struct nvmetcp_spe_func_init nvmetcp_init_spe;
struct tcp_init_params tcp_init;
};
/* NVMeTCP Ramrod Command IDs */
enum nvmetcp_ramrod_cmd_id {
NVMETCP_RAMROD_CMD_ID_UNUSED = 0,
NVMETCP_RAMROD_CMD_ID_INIT_FUNC = 1,
NVMETCP_RAMROD_CMD_ID_DESTROY_FUNC = 2,
NVMETCP_RAMROD_CMD_ID_OFFLOAD_CONN = 3,
NVMETCP_RAMROD_CMD_ID_UPDATE_CONN = 4,
NVMETCP_RAMROD_CMD_ID_TERMINATION_CONN = 5,
NVMETCP_RAMROD_CMD_ID_CLEAR_SQ = 6,
MAX_NVMETCP_RAMROD_CMD_ID
};
struct nvmetcp_glbl_queue_entry {
struct regpair cq_pbl_addr;
struct regpair reserved;
};
/* NVMeTCP conn level EQEs */
enum nvmetcp_eqe_opcode {
NVMETCP_EVENT_TYPE_INIT_FUNC = 0, /* Response after init Ramrod */
NVMETCP_EVENT_TYPE_DESTROY_FUNC, /* Response after destroy Ramrod */
NVMETCP_EVENT_TYPE_OFFLOAD_CONN,/* Response after option 2 offload Ramrod */
NVMETCP_EVENT_TYPE_UPDATE_CONN, /* Response after update Ramrod */
NVMETCP_EVENT_TYPE_CLEAR_SQ, /* Response after clear sq Ramrod */
NVMETCP_EVENT_TYPE_TERMINATE_CONN, /* Response after termination Ramrod */
NVMETCP_EVENT_TYPE_RESERVED0,
NVMETCP_EVENT_TYPE_RESERVED1,
NVMETCP_EVENT_TYPE_ASYN_CONNECT_COMPLETE, /* Connect completed (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_TERMINATE_DONE, /* Termination completed (A-syn EQE) */
NVMETCP_EVENT_TYPE_START_OF_ERROR_TYPES = 10, /* Separate EQs from err EQs */
NVMETCP_EVENT_TYPE_ASYN_ABORT_RCVD, /* TCP RST packet receive (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_CLOSE_RCVD, /* TCP FIN packet receive (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_SYN_RCVD, /* TCP SYN+ACK packet receive (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_MAX_RT_TIME, /* TCP max retransmit time (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_MAX_RT_CNT, /* TCP max retransmit count (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_MAX_KA_PROBES_CNT, /* TCP ka probes count (A-syn EQE) */
NVMETCP_EVENT_TYPE_ASYN_FIN_WAIT2, /* TCP fin wait 2 (A-syn EQE) */
NVMETCP_EVENT_TYPE_NVMETCP_CONN_ERROR, /* NVMeTCP error response (A-syn EQE) */
NVMETCP_EVENT_TYPE_TCP_CONN_ERROR, /* NVMeTCP error - tcp error (A-syn EQE) */
MAX_NVMETCP_EQE_OPCODE
};
struct nvmetcp_conn_offload_section {
struct regpair cccid_itid_table_addr; /* CCCID to iTID table address */
__le16 cccid_max_range; /* CCCID max value - used for validation */
__le16 reserved[3];
};
/* NVMe TCP connection offload params passed by driver to FW in NVMeTCP offload ramrod */
struct nvmetcp_conn_offload_params {
struct regpair sq_pbl_addr;
struct regpair r2tq_pbl_addr;
struct regpair xhq_pbl_addr;
struct regpair uhq_pbl_addr;
__le16 physical_q0;
__le16 physical_q1;
u8 flags;
#define NVMETCP_CONN_OFFLOAD_PARAMS_TCP_ON_CHIP_1B_MASK 0x1
#define NVMETCP_CONN_OFFLOAD_PARAMS_TCP_ON_CHIP_1B_SHIFT 0
Annotation
- Immediate include surface: `tcp_common.h`, `linux/nvme-tcp.h`.
- Detected declarations: `struct nvmetcp_spe_func_init`, `struct nvmetcp_init_ramrod_params`, `struct nvmetcp_glbl_queue_entry`, `struct nvmetcp_conn_offload_section`, `struct nvmetcp_conn_offload_params`, `struct nvmetcp_spe_conn_offload`, `struct nvmetcp_conn_update_ramrod_params`, `struct nvmetcp_spe_conn_termination`, `struct nvmetcp_dif_flags`, `struct nvmetcp_wqe`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.