162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2022, Microsoft Corporation. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef MANA_ABI_USER_H 762306a36Sopenharmony_ci#define MANA_ABI_USER_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/types.h> 1062306a36Sopenharmony_ci#include <rdma/ib_user_ioctl_verbs.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* 1362306a36Sopenharmony_ci * Increment this value if any changes that break userspace ABI 1462306a36Sopenharmony_ci * compatibility are made. 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define MANA_IB_UVERBS_ABI_VERSION 1 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cistruct mana_ib_create_cq { 2062306a36Sopenharmony_ci __aligned_u64 buf_addr; 2162306a36Sopenharmony_ci}; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cistruct mana_ib_create_qp { 2462306a36Sopenharmony_ci __aligned_u64 sq_buf_addr; 2562306a36Sopenharmony_ci __u32 sq_buf_size; 2662306a36Sopenharmony_ci __u32 port; 2762306a36Sopenharmony_ci}; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cistruct mana_ib_create_qp_resp { 3062306a36Sopenharmony_ci __u32 sqid; 3162306a36Sopenharmony_ci __u32 cqid; 3262306a36Sopenharmony_ci __u32 tx_vp_offset; 3362306a36Sopenharmony_ci __u32 reserved; 3462306a36Sopenharmony_ci}; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cistruct mana_ib_create_wq { 3762306a36Sopenharmony_ci __aligned_u64 wq_buf_addr; 3862306a36Sopenharmony_ci __u32 wq_buf_size; 3962306a36Sopenharmony_ci __u32 reserved; 4062306a36Sopenharmony_ci}; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci/* RX Hash function flags */ 4362306a36Sopenharmony_cienum mana_ib_rx_hash_function_flags { 4462306a36Sopenharmony_ci MANA_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0, 4562306a36Sopenharmony_ci}; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_cistruct mana_ib_create_qp_rss { 4862306a36Sopenharmony_ci __aligned_u64 rx_hash_fields_mask; 4962306a36Sopenharmony_ci __u8 rx_hash_function; 5062306a36Sopenharmony_ci __u8 reserved[7]; 5162306a36Sopenharmony_ci __u32 rx_hash_key_len; 5262306a36Sopenharmony_ci __u8 rx_hash_key[40]; 5362306a36Sopenharmony_ci __u32 port; 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_cistruct rss_resp_entry { 5762306a36Sopenharmony_ci __u32 cqid; 5862306a36Sopenharmony_ci __u32 wqid; 5962306a36Sopenharmony_ci}; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_cistruct mana_ib_create_qp_rss_resp { 6262306a36Sopenharmony_ci __aligned_u64 num_entries; 6362306a36Sopenharmony_ci struct rss_resp_entry entries[64]; 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci#endif 67