/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ /* * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef _EFA_COM_CMD_H_ #define _EFA_COM_CMD_H_
#include"efa_com.h"
#define EFA_GID_SIZE 16
struct efa_com_create_qp_params {
u64 rq_base_addr;
u32 send_cq_idx;
u32 recv_cq_idx; /* * Send descriptor ring size in bytes, * sufficient for user-provided number of WQEs and SGL size
*/
u32 sq_ring_size_in_bytes; /* Max number of WQEs that will be posted on send queue */
u32 sq_depth; /* Recv descriptor ring size in bytes */
u32 rq_ring_size_in_bytes;
u32 rq_depth;
u16 pd;
u16 uarn;
u8 qp_type;
u8 sl;
u8 unsolicited_write_recv : 1;
};
/* Used at indirect mode page list chunks for chaining */ struct efa_com_ctrl_buff_info { /* indicates length of the buffer pointed by control_buffer_address. */
u32 length; /* points to control buffer (direct or indirect) */ struct efa_com_mem_addr address;
};
struct efa_com_reg_mr_params { /* Memory region length, in bytes. */
u64 mr_length_in_bytes; /* IO Virtual Address associated with this MR. */
u64 iova; /* words 8:15: Physical Buffer List, each element is page-aligned. */ union { /* * Inline array of physical addresses of app pages * (optimization for short region reservations)
*/
u64 inline_pbl_array[4]; /* * Describes the next physically contiguous chunk of indirect * page list. A page list contains physical addresses of command * data pages. Data pages are 4KB; page list chunks are * variable-sized.
*/ struct efa_com_ctrl_buff_info pbl;
} pbl; /* number of pages in PBL (redundant, could be calculated) */
u32 page_num; /* Protection Domain */
u16 pd; /* * phys_page_size_shift - page size is (1 << phys_page_size_shift) * Page size is used for building the Virtual to Physical * address mapping
*/
u8 page_shift; /* see permissions field of struct efa_admin_reg_mr_cmd */
u8 permissions;
u8 inline_pbl;
u8 indirect;
};
struct efa_com_reg_mr_result { /* * To be used in conjunction with local buffers references in SQ and * RQ WQE
*/
u32 l_key; /* * To be used in incoming RDMA semantics messages to refer to remotely * accessed memory region
*/
u32 r_key; struct efa_com_mr_interconnect_info ic_info;
};
struct efa_com_dereg_mr_params {
u32 l_key;
};
struct efa_com_alloc_pd_result {
u16 pdn;
};
struct efa_com_dealloc_pd_params {
u16 pdn;
};
struct efa_com_alloc_uar_result {
u16 uarn;
};
struct efa_com_dealloc_uar_params {
u16 uarn;
};
struct efa_com_get_stats_params { /* see enum efa_admin_get_stats_type */
u8 type; /* see enum efa_admin_get_stats_scope */
u8 scope;
u16 scope_modifier;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.