88 lines · c
1/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */2/*3 * Copyright (c) 2022, Microsoft Corporation. All rights reserved.4 */5 6#ifndef MANA_ABI_USER_H7#define MANA_ABI_USER_H8 9#include <linux/types.h>10#include <rdma/ib_user_ioctl_verbs.h>11 12/*13 * Increment this value if any changes that break userspace ABI14 * compatibility are made.15 */16 17#define MANA_IB_UVERBS_ABI_VERSION 118 19enum mana_ib_create_cq_flags {20 MANA_IB_CREATE_RNIC_CQ = 1 << 0,21};22 23struct mana_ib_create_cq {24 __aligned_u64 buf_addr;25 __u16 flags;26 __u16 reserved0;27 __u32 reserved1;28};29 30struct mana_ib_create_cq_resp {31 __u32 cqid;32 __u32 reserved;33};34 35struct mana_ib_create_qp {36 __aligned_u64 sq_buf_addr;37 __u32 sq_buf_size;38 __u32 port;39};40 41struct mana_ib_create_qp_resp {42 __u32 sqid;43 __u32 cqid;44 __u32 tx_vp_offset;45 __u32 reserved;46};47 48struct mana_ib_create_rc_qp {49 __aligned_u64 queue_buf[4];50 __u32 queue_size[4];51};52 53struct mana_ib_create_rc_qp_resp {54 __u32 queue_id[4];55};56 57struct mana_ib_create_wq {58 __aligned_u64 wq_buf_addr;59 __u32 wq_buf_size;60 __u32 reserved;61};62 63/* RX Hash function flags */64enum mana_ib_rx_hash_function_flags {65 MANA_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0,66};67 68struct mana_ib_create_qp_rss {69 __aligned_u64 rx_hash_fields_mask;70 __u8 rx_hash_function;71 __u8 reserved[7];72 __u32 rx_hash_key_len;73 __u8 rx_hash_key[40];74 __u32 port;75};76 77struct rss_resp_entry {78 __u32 cqid;79 __u32 wqid;80};81 82struct mana_ib_create_qp_rss_resp {83 __aligned_u64 num_entries;84 struct rss_resp_entry entries[64];85};86 87#endif88