EFA_ADMIN_HW_HINTS = 5,
EFA_ADMIN_HOST_INFO = 6,
EFA_ADMIN_EVENT_QUEUE_ATTR = 7,
+ EFA_ADMIN_QUEUE_ATTR_2 = 9,
};
/* QP transport type */
/* Maximum number of WQEs per Send Queue */
u32 max_sq_depth;
- /* Maximum size of data that can be sent inline in a Send WQE */
+ /*
+ * Maximum size of data that can be sent inline in a Send WQE
+ * (deprecated by
+ * efa_admin_feature_queue_attr_desc_2::inline_buf_size_ex on
+ * supporting devices)
+ */
u32 inline_buf_size;
/* Maximum number of buffer descriptors per Recv Queue */
u16 max_tx_batch;
};
+struct efa_admin_feature_queue_attr_desc_2 {
+ /* Maximum size of data that can be sent inline in a Send WQE */
+ u16 inline_buf_size_ex;
+};
+
struct efa_admin_event_queue_attr_desc {
/* The maximum number of event queues supported */
u32 max_eq;
struct efa_admin_feature_queue_attr_desc_1 queue_attr_1;
+ struct efa_admin_feature_queue_attr_desc_2 queue_attr_2;
+
struct efa_admin_event_queue_attr_desc event_queue_attr;
struct efa_admin_hw_hints hw_hints;
result->max_tx_batch = resp.u.queue_attr_1.max_tx_batch;
result->min_sq_depth = resp.u.queue_attr_1.min_sq_depth;
+ if (efa_com_check_supported_feature_id(edev, EFA_ADMIN_QUEUE_ATTR_2)) {
+ err = efa_com_get_feature(edev, &resp,
+ EFA_ADMIN_QUEUE_ATTR_2);
+ if (err) {
+ ibdev_err_ratelimited(
+ edev->efa_dev,
+ "Failed to get queue attributes2 %d\n", err);
+ return err;
+ }
+
+ result->inline_buf_size_ex = resp.u.queue_attr_2.inline_buf_size_ex;
+ } else {
+ result->inline_buf_size_ex = result->inline_buf_size;
+ }
+
err = efa_com_get_feature(edev, &resp, EFA_ADMIN_NETWORK_ATTR);
if (err) {
ibdev_err_ratelimited(edev->efa_dev,
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
/*
- * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef _EFA_COM_CMD_H_
u32 max_cq;
u32 max_cq_depth; /* cqes */
u32 inline_buf_size;
+ u32 inline_buf_size_ex;
u32 max_mr;
u32 max_pd;
u32 max_ah;
// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
/*
- * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#include <linux/dma-buf.h>
resp.cmds_supp_udata_mask |= EFA_USER_CMDS_SUPP_UDATA_CREATE_AH;
resp.sub_cqs_per_cq = dev->dev_attr.sub_cqs_per_cq;
resp.inline_buf_size = dev->dev_attr.inline_buf_size;
+ resp.inline_buf_size_ex = dev->dev_attr.inline_buf_size_ex;
resp.max_llq_size = dev->dev_attr.max_llq_size;
resp.max_tx_batch = dev->dev_attr.max_tx_batch;
resp.min_sq_wr = dev->dev_attr.min_sq_depth;
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
/*
- * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved.
*/
#ifndef EFA_ABI_USER_H
__u32 max_llq_size; /* bytes */
__u16 max_tx_batch; /* units of 64 bytes */
__u16 min_sq_wr;
- __u8 reserved_a0[4];
+ __u16 inline_buf_size_ex;
+ __u8 reserved_b0[2];
};
struct efa_ibv_alloc_pd_resp {