89 lines · c
1/*2 * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved.3 *4 * This software is available to you under a choice of one of two5 * licenses. You may choose to be licensed under the terms of the GNU6 * General Public License (GPL) Version 2, available from the file7 * COPYING in the main directory of this source tree, or the8 * BSD license below:9 *10 * Redistribution and use in source and binary forms, with or11 * without modification, are permitted provided that the following12 * conditions are met:13 *14 * - Redistributions of source code must retain the above15 * copyright notice, this list of conditions and the following16 * disclaimer.17 *18 * - Redistributions in binary form must reproduce the above19 * copyright notice, this list of conditions and the following20 * disclaimer in the documentation and/or other materials21 * provided with the distribution.22 *23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE30 * SOFTWARE.31 *32 */33 34 35#ifndef USNIC_ABI_H36#define USNIC_ABI_H37 38/* ABI between userspace and kernel */39#define USNIC_UVERBS_ABI_VERSION 440 41#define USNIC_QP_GRP_MAX_WQS 842#define USNIC_QP_GRP_MAX_RQS 843#define USNIC_QP_GRP_MAX_CQS 1644 45enum usnic_transport_type {46 USNIC_TRANSPORT_UNKNOWN = 0,47 USNIC_TRANSPORT_ROCE_CUSTOM = 1,48 USNIC_TRANSPORT_IPV4_UDP = 2,49 USNIC_TRANSPORT_MAX = 3,50};51 52struct usnic_transport_spec {53 enum usnic_transport_type trans_type;54 union {55 struct {56 uint16_t port_num;57 } usnic_roce;58 struct {59 uint32_t sock_fd;60 } udp;61 };62};63 64struct usnic_ib_create_qp_cmd {65 struct usnic_transport_spec spec;66};67 68/*TODO: Future - usnic_modify_qp needs to pass in generic filters */69struct usnic_ib_create_qp_resp {70 u32 vfid;71 u32 qp_grp_id;72 u64 bar_bus_addr;73 u32 bar_len;74/*75 * WQ, RQ, CQ are explicity specified bc exposing a generic resources inteface76 * expands the scope of ABI to many files.77 */78 u32 wq_cnt;79 u32 rq_cnt;80 u32 cq_cnt;81 u32 wq_idx[USNIC_QP_GRP_MAX_WQS];82 u32 rq_idx[USNIC_QP_GRP_MAX_RQS];83 u32 cq_idx[USNIC_QP_GRP_MAX_CQS];84 u32 transport;85 u32 reserved[9];86};87 88#endif /* USNIC_ABI_H */89