Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 May 2022 22:52:08 -0700
From:      Ravi Pokala <rpokala@freebsd.org>
To:        Eric Joyner <erj@FreeBSD.org>, <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-commits-src-main@FreeBSD.org>
Subject:   Re: cdcd52d41e24 - main - irdma: Add RDMA driver for Intel(R) Ethernet Controller E810
Message-ID:  <BD7DCBD3-FF8C-406B-B261-E27E4CBF682F@panasas.com>
In-Reply-To: <202205232354.24NNs69N032987@gitrepo.freebsd.org>
References:  <202205232354.24NNs69N032987@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Eric,

This change appears to have broken the amd64 LINT-{NOINET,NOINET6,NOIP} ker=
nels:

LINT-NOINET
----------------------------------------------------------------
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1659:11: error: implicit declaration of function 'ip_ifp_find' is=
 invalid in C99 [-Werror,-Wimplicit-function-declaration]
        netdev =3D ip_ifp_find(&init_net, htonl(addr[0]));
                 ^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1659:11: note: did you mean 'ip6_ifp_find'?
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../ofed/inclu=
de/rdma/ib_addr_freebsd.h:64:1: note: 'ip6_ifp_find' declared here
ip6_ifp_find(struct vnet *vnet, struct in6_addr addr, uint16_t scope_id)
^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1659:9: error: incompatible integer to pointer conversion assigni=
ng to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion]
        netdev =3D ip_ifp_find(&init_net, htonl(addr[0]));
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
--- irdma_cm.o ---
----------------------------------------------------------------

LINT-NOINET6
----------------------------------------------------------------
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1638:11: error: implicit declaration of function 'ip6_ifp_find' i=
s invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ip_dev =3D ip6_ifp_find(&init_net, laddr6, 0);
                 ^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1638:11: note: did you mean 'ip_ifp_find'?
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../ofed/inclu=
de/rdma/ib_addr_freebsd.h:36:1: note: 'ip_ifp_find' declared here
ip_ifp_find(struct vnet *vnet, uint32_t addr)
^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1638:9: error: incompatible integer to pointer conversion assigni=
ng to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion]
        ip_dev =3D ip6_ifp_find(&init_net, laddr6, 0);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
--- irdma_cm.o ---
----------------------------------------------------------------

LINT-NOIP:
----------------------------------------------------------------
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1638:11: error: implicit declaration of function 'ip6_ifp_find' i=
s invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ip_dev =3D ip6_ifp_find(&init_net, laddr6, 0);
                 ^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1638:9: error: incompatible integer to pointer conversion assigni=
ng to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion]
        ip_dev =3D ip6_ifp_find(&init_net, laddr6, 0);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1659:11: error: implicit declaration of function 'ip_ifp_find' is=
 invalid in C99 [-Werror,-Wimplicit-function-declaration]
        netdev =3D ip_ifp_find(&init_net, htonl(addr[0]));
                 ^
/usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/=
irdma_cm.c:1659:9: error: incompatible integer to pointer conversion assigni=
ng to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion]
        netdev =3D ip_ifp_find(&init_net, htonl(addr[0]));
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 errors generated.
--- irdma_cm.o ---
----------------------------------------------------------------

Thanks,

Ravi (rpokala@)

=EF=BB=BF-----Original Message-----
From: <owner-src-committers@freebsd.org> on behalf of Eric Joyner <erj@Free=
BSD.org>
Date: 2022-05-23, Monday at 16:54
To: <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>, <dev-c=
ommits-src-main@FreeBSD.org>
Subject: git: cdcd52d41e24 - main - irdma: Add RDMA driver for Intel(R) Eth=
ernet Controller E810

    The branch main has been updated by erj:

    URL: https://cgit.FreeBSD.org/src/commit/?id=3Dcdcd52d41e246ba1c0fcfad076=
9bd691487355ef

    commit cdcd52d41e246ba1c0fcfad0769bd691487355ef
    Author:     Bartosz Sobczak <bartosz.sobczak@intel.com>
    AuthorDate: 2022-05-23 23:39:27 +0000
    Commit:     Eric Joyner <erj@FreeBSD.org>
    CommitDate: 2022-05-23 23:52:49 +0000

        irdma: Add RDMA driver for Intel(R) Ethernet Controller E810

        This is an initial commit for RDMA FreeBSD driver for Intel(R) Ethe=
rnet
        Controller E810, called irdma.  Supporting both RoCEv2 and iWARP
        protocols in per-PF manner, RoCEv2 being the default.

        Testing has been done using krping tool, perftest, ucmatose, rping,
        ud_pingpong, rc_pingpong and others.

        Signed-off-by: Eric Joyner <erj@FreeBSD.org>

        Reviewed by:    #manpages (pauamma_gundo.com) [documentation]
        MFC after:      1 week
        Relnotes:       yes
        Sponsored by:   Intel Corporation
        Differential Revision:  https://reviews.freebsd.org/D34690
    ---
     contrib/ofed/libirdma/abi.h          |  180 ++
     contrib/ofed/libirdma/i40e_devids.h  |   69 +
     contrib/ofed/libirdma/i40iw_hw.h     |   64 +
     contrib/ofed/libirdma/ice_devids.h   |   92 +
     contrib/ofed/libirdma/irdma-abi.h    |  143 +
     contrib/ofed/libirdma/irdma.h        |   93 +
     contrib/ofed/libirdma/irdma_defs.h   |  554 ++++
     contrib/ofed/libirdma/irdma_uk.c     | 1884 ++++++++++++
     contrib/ofed/libirdma/irdma_umain.c  |  255 ++
     contrib/ofed/libirdma/irdma_umain.h  |  218 ++
     contrib/ofed/libirdma/irdma_user.h   |  479 +++
     contrib/ofed/libirdma/irdma_uverbs.c | 2262 ++++++++++++++
     contrib/ofed/libirdma/libirdma.map   |   10 +
     contrib/ofed/libirdma/osdep.h        |  213 ++
     lib/ofed/Makefile                    |    2 +
     lib/ofed/libirdma/Makefile           |   23 +
     share/man/man4/irdma.4               |  233 ++
     share/mk/bsd.libnames.mk             |    1 +
     share/mk/src.libnames.mk             |    3 +
     sys/amd64/conf/NOTES                 |    3 +
     sys/conf/files                       |   31 +
     sys/dev/irdma/fbsd_kcompat.c         |  736 +++++
     sys/dev/irdma/fbsd_kcompat.h         |  251 ++
     sys/dev/irdma/ice_devids.h           |   92 +
     sys/dev/irdma/icrdma.c               |  704 +++++
     sys/dev/irdma/icrdma_hw.c            |  418 +++
     sys/dev/irdma/icrdma_hw.h            |  137 +
     sys/dev/irdma/irdma-abi.h            |  143 +
     sys/dev/irdma/irdma.h                |  238 ++
     sys/dev/irdma/irdma_cm.c             | 4253 +++++++++++++++++++++++++
     sys/dev/irdma/irdma_cm.h             |  453 +++
     sys/dev/irdma/irdma_ctrl.c           | 5644 ++++++++++++++++++++++++++=
++++++++
     sys/dev/irdma/irdma_defs.h           | 2337 ++++++++++++++
     sys/dev/irdma/irdma_hmc.c            |  734 +++++
     sys/dev/irdma/irdma_hmc.h            |  202 ++
     sys/dev/irdma/irdma_hw.c             | 2829 +++++++++++++++++
     sys/dev/irdma/irdma_kcompat.c        | 1568 ++++++++++
     sys/dev/irdma/irdma_main.h           |  589 ++++
     sys/dev/irdma/irdma_pble.c           |  557 ++++
     sys/dev/irdma/irdma_pble.h           |  166 +
     sys/dev/irdma/irdma_protos.h         |  141 +
     sys/dev/irdma/irdma_puda.c           | 1856 +++++++++++
     sys/dev/irdma/irdma_puda.h           |  221 ++
     sys/dev/irdma/irdma_type.h           | 1533 +++++++++
     sys/dev/irdma/irdma_uda.c            |  318 ++
     sys/dev/irdma/irdma_uda.h            |  120 +
     sys/dev/irdma/irdma_uda_d.h          |  415 +++
     sys/dev/irdma/irdma_uk.c             | 1808 +++++++++++
     sys/dev/irdma/irdma_user.h           |  477 +++
     sys/dev/irdma/irdma_utils.c          | 2325 ++++++++++++++
     sys/dev/irdma/irdma_verbs.c          | 3364 ++++++++++++++++++++
     sys/dev/irdma/irdma_verbs.h          |  313 ++
     sys/dev/irdma/irdma_ws.c             |  447 +++
     sys/dev/irdma/irdma_ws.h             |   74 +
     sys/dev/irdma/osdep.h                |  247 ++
     sys/modules/Makefile                 |    4 +
     sys/modules/irdma/Makefile           |   23 +
     usr.bin/ofed/libibverbs/Makefile.inc |    2 +-
     usr.bin/ofed/librdmacm/Makefile.inc  |    2 +-
     59 files changed, 42551 insertions(+), 2 deletions(-)

    diff --git a/contrib/ofed/libirdma/abi.h b/contrib/ofed/libirdma/abi.h
    new file mode 100644
    index 000000000000..ff7a2828efe0
    --- /dev/null
    +++ b/contrib/ofed/libirdma/abi.h
    @@ -0,0 +1,180 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (C) 2019 - 2020 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef PROVIDER_IRDMA_ABI_H
    +#define PROVIDER_IRDMA_ABI_H
    +
    +#include "irdma.h"
    +#include <infiniband/kern-abi.h>
    +#include "irdma-abi.h"
    +
    +#define IRDMA_MIN_ABI_VERSION	0
    +#define IRDMA_MAX_ABI_VERSION	5
    +
    +struct irdma_ualloc_pd_resp {
    +	struct ibv_alloc_pd_resp	ibv_resp;
    +	__u32 pd_id;
    +	__u8 rsvd[4];
    +
    +};
    +struct irdma_ucreate_cq {
    +	struct ibv_create_cq	ibv_cmd;
    +	__aligned_u64 user_cq_buf;
    +	__aligned_u64 user_shadow_area;
    +
    +};
    +struct irdma_ucreate_cq_resp {
    +	struct ibv_create_cq_resp	ibv_resp;
    +	__u32 cq_id;
    +	__u32 cq_size;
    +
    +};
    +struct irdma_ucreate_cq_ex {
    +	struct ibv_create_cq_ex	ibv_cmd;
    +	__aligned_u64 user_cq_buf;
    +	__aligned_u64 user_shadow_area;
    +
    +};
    +struct irdma_ucreate_cq_ex_resp {
    +	struct ibv_create_cq_resp_ex	ibv_resp;
    +	__u32 cq_id;
    +	__u32 cq_size;
    +
    +};
    +struct irdma_uresize_cq {
    +	struct ibv_resize_cq	ibv_cmd;
    +	__aligned_u64 user_cq_buffer;
    +
    +};
    +struct irdma_uresize_cq_resp {
    +	struct ibv_resize_cq_resp	ibv_resp;
    +
    +};
    +struct irdma_ucreate_qp {
    +	struct ibv_create_qp	ibv_cmd;
    +	__aligned_u64 user_wqe_bufs;
    +	__aligned_u64 user_compl_ctx;
    +
    +};
    +struct irdma_ucreate_qp_resp {
    +	struct ibv_create_qp_resp	ibv_resp;
    +	__u32 qp_id;
    +	__u32 actual_sq_size;
    +	__u32 actual_rq_size;
    +	__u32 irdma_drv_opt;
    +	__u16 push_idx;
    +	__u8 lsmm;
    +	__u8 rsvd;
    +	__u32 qp_caps;
    +
    +};
    +struct irdma_umodify_qp_resp {
    +	struct ibv_modify_qp_resp_ex	ibv_resp;
    +	__aligned_u64 push_wqe_mmap_key;
    +	__aligned_u64 push_db_mmap_key;
    +	__u16 push_offset;
    +	__u8 push_valid;
    +	__u8 rd_fence_rate;
    +	__u8 rsvd[4];
    +
    +};
    +struct irdma_get_context {
    +	struct ibv_get_context	ibv_cmd;
    +	__u32 rsvd32;
    +	__u8 userspace_ver;
    +	__u8 rsvd8[3];
    +
    +};
    +struct irdma_get_context_resp {
    +	struct ibv_get_context_resp	ibv_resp;
    +	__u32 max_pds;
    +	__u32 max_qps;
    +	__u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */
    +	__u8 kernel_ver;
    +	__u8 rsvd[3];
    +	__aligned_u64 feature_flags;
    +	__aligned_u64 db_mmap_key;
    +	__u32 max_hw_wq_frags;
    +	__u32 max_hw_read_sges;
    +	__u32 max_hw_inline;
    +	__u32 max_hw_rq_quanta;
    +	__u32 max_hw_wq_quanta;
    +	__u32 min_hw_cq_size;
    +	__u32 max_hw_cq_size;
    +	__u16 max_hw_sq_chunk;
    +	__u8 hw_rev;
    +	__u8 rsvd2;
    +
    +};
    +struct irdma_ureg_mr {
    +	struct ibv_reg_mr	ibv_cmd;
    +	__u16 reg_type; /* enum irdma_memreg_type */
    +	__u16 cq_pages;
    +	__u16 rq_pages;
    +	__u16 sq_pages;
    +
    +};
    +struct irdma_ucreate_ah_resp {
    +	struct ibv_create_ah_resp	ibv_resp;
    +	__u32 ah_id;
    +	__u8 rsvd[4];
    +
    +};
    +
    +struct irdma_modify_qp_cmd {
    +	struct ibv_modify_qp_ex ibv_cmd;
    +	__u8 sq_flush;
    +	__u8 rq_flush;
    +	__u8 rsvd[6];
    +};
    +
    +struct irdma_query_device_ex {
    +	struct ibv_query_device_ex ibv_cmd;
    +};
    +
    +struct irdma_query_device_ex_resp {
    +	struct ibv_query_device_resp_ex ibv_resp;
    +	__u32				comp_mask;
    +	__u32				response_length;
    +	struct ibv_odp_caps_resp	odp_caps;
    +	__u64				timestamp_mask;
    +	__u64				hca_core_clock;
    +	__u64				device_cap_flags_ex;
    +	struct ibv_rss_caps_resp	rss_caps;
    +	__u32				max_wq_type_rq;
    +	__u32				raw_packet_caps;
    +	struct ibv_tso_caps		tso_caps;
    +};
    +#endif /* PROVIDER_IRDMA_ABI_H */
    diff --git a/contrib/ofed/libirdma/i40e_devids.h b/contrib/ofed/libirdm=
a/i40e_devids.h
    new file mode 100644
    index 000000000000..1b0eaae95b82
    --- /dev/null
    +++ b/contrib/ofed/libirdma/i40e_devids.h
    @@ -0,0 +1,69 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (c) 2015 - 2019 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef I40E_DEVIDS_H
    +#define I40E_DEVIDS_H
    +
    +/* Vendor ID */
    +#define I40E_INTEL_VENDOR_ID		0x8086
    +
    +/* Device IDs */
    +#define I40E_DEV_ID_SFP_XL710		0x1572
    +#define I40E_DEV_ID_QEMU		0x1574
    +#define I40E_DEV_ID_KX_B		0x1580
    +#define I40E_DEV_ID_KX_C		0x1581
    +#define I40E_DEV_ID_QSFP_A		0x1583
    +#define I40E_DEV_ID_QSFP_B		0x1584
    +#define I40E_DEV_ID_QSFP_C		0x1585
    +#define I40E_DEV_ID_10G_BASE_T		0x1586
    +#define I40E_DEV_ID_20G_KR2		0x1587
    +#define I40E_DEV_ID_20G_KR2_A		0x1588
    +#define I40E_DEV_ID_10G_BASE_T4		0x1589
    +#define I40E_DEV_ID_25G_B		0x158A
    +#define I40E_DEV_ID_25G_SFP28		0x158B
    +#define I40E_DEV_ID_VF			0x154C
    +#define I40E_DEV_ID_VF_HV		0x1571
    +#define I40E_DEV_ID_X722_A0		0x374C
    +#define I40E_DEV_ID_X722_A0_VF		0x374D
    +#define I40E_DEV_ID_KX_X722		0x37CE
    +#define I40E_DEV_ID_QSFP_X722		0x37CF
    +#define I40E_DEV_ID_SFP_X722		0x37D0
    +#define I40E_DEV_ID_1G_BASE_T_X722	0x37D1
    +#define I40E_DEV_ID_10G_BASE_T_X722	0x37D2
    +#define I40E_DEV_ID_SFP_I_X722		0x37D3
    +#define I40E_DEV_ID_X722_VF		0x37CD
    +#define I40E_DEV_ID_X722_VF_HV		0x37D9
    +
    +#endif /* I40E_DEVIDS_H */
    diff --git a/contrib/ofed/libirdma/i40iw_hw.h b/contrib/ofed/libirdma/i=
40iw_hw.h
    new file mode 100644
    index 000000000000..38c7e37c35c9
    --- /dev/null
    +++ b/contrib/ofed/libirdma/i40iw_hw.h
    @@ -0,0 +1,64 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (c) 2015 - 2020 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef I40IW_HW_H
    +#define I40IW_HW_H
    +
    +enum i40iw_device_caps_const {
    +	I40IW_MAX_WQ_FRAGMENT_COUNT		=3D 3,
    +	I40IW_MAX_SGE_RD			=3D 1,
    +	I40IW_MAX_PUSH_PAGE_COUNT		=3D 0,
    +	I40IW_MAX_INLINE_DATA_SIZE		=3D 48,
    +	I40IW_MAX_IRD_SIZE			=3D 63,
    +	I40IW_MAX_ORD_SIZE			=3D 127,
    +	I40IW_MAX_WQ_ENTRIES			=3D 2048,
    +	I40IW_MAX_WQE_SIZE_RQ			=3D 128,
    +	I40IW_MAX_PDS				=3D 32768,
    +	I40IW_MAX_STATS_COUNT			=3D 16,
    +	I40IW_MAX_CQ_SIZE			=3D 1048575,
    +	I40IW_MAX_OUTBOUND_MSG_SIZE		=3D 2147483647,
    +	I40IW_MAX_INBOUND_MSG_SIZE		=3D 2147483647,
    +};
    +
    +#define I40IW_QP_WQE_MIN_SIZE   32
    +#define I40IW_QP_WQE_MAX_SIZE   128
    +#define I40IW_QP_SW_MIN_WQSIZE  4
    +#define I40IW_MAX_RQ_WQE_SHIFT  2
    +#define I40IW_MAX_QUANTA_PER_WR 2
    +
    +#define I40IW_QP_SW_MAX_SQ_QUANTA 2048
    +#define I40IW_QP_SW_MAX_RQ_QUANTA 16384
    +#define I40IW_QP_SW_MAX_WQ_QUANTA 2048
    +#endif /* I40IW_HW_H */
    diff --git a/contrib/ofed/libirdma/ice_devids.h b/contrib/ofed/libirdma=
/ice_devids.h
    new file mode 100644
    index 000000000000..57f26bc33260
    --- /dev/null
    +++ b/contrib/ofed/libirdma/ice_devids.h
    @@ -0,0 +1,92 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (c) 2019 - 2020 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef ICE_DEVIDS_H
    +#define ICE_DEVIDS_H
    +
    +#define PCI_VENDOR_ID_INTEL		0x8086
    +
    +/* Device IDs */
    +/* Intel(R) Ethernet Connection E823-L for backplane */
    +#define ICE_DEV_ID_E823L_BACKPLANE      0x124C
    +/* Intel(R) Ethernet Connection E823-L for SFP */
    +#define ICE_DEV_ID_E823L_SFP            0x124D
    +/* Intel(R) Ethernet Connection E823-L/X557-AT 10GBASE-T */
    +#define ICE_DEV_ID_E823L_10G_BASE_T     0x124E
    +/* Intel(R) Ethernet Connection E823-L 1GbE */
    +#define ICE_DEV_ID_E823L_1GBE           0x124F
    +/* Intel(R) Ethernet Connection E823-L for QSFP */
    +#define ICE_DEV_ID_E823L_QSFP           0x151D
    +/* Intel(R) Ethernet Controller E810-C for backplane */
    +#define ICE_DEV_ID_E810C_BACKPLANE      0x1591
    +/* Intel(R) Ethernet Controller E810-C for QSFP */
    +#define ICE_DEV_ID_E810C_QSFP           0x1592
    +/* Intel(R) Ethernet Controller E810-C for SFP */
    +#define ICE_DEV_ID_E810C_SFP            0x1593
    +/* Intel(R) Ethernet Controller E810-XXV for backplane */
    +#define ICE_DEV_ID_E810_XXV_BACKPLANE   0x1599
    +/* Intel(R) Ethernet Controller E810-XXV for QSFP */
    +#define ICE_DEV_ID_E810_XXV_QSFP        0x159A
    +/* Intel(R) Ethernet Controller E810-XXV for SFP */
    +#define ICE_DEV_ID_E810_XXV_SFP         0x159B
    +/* Intel(R) Ethernet Connection E823-C for backplane */
    +#define ICE_DEV_ID_E823C_BACKPLANE      0x188A
    +/* Intel(R) Ethernet Connection E823-C for QSFP */
    +#define ICE_DEV_ID_E823C_QSFP           0x188B
    +/* Intel(R) Ethernet Connection E823-C for SFP */
    +#define ICE_DEV_ID_E823C_SFP            0x188C
    +/* Intel(R) Ethernet Connection E823-C/X557-AT 10GBASE-T */
    +#define ICE_DEV_ID_E823C_10G_BASE_T     0x188D
    +/* Intel(R) Ethernet Connection E823-C 1GbE */
    +#define ICE_DEV_ID_E823C_SGMII          0x188E
    +/* Intel(R) Ethernet Connection C822N for backplane */
    +#define ICE_DEV_ID_C822N_BACKPLANE      0x1890
    +/* Intel(R) Ethernet Connection C822N for QSFP */
    +#define ICE_DEV_ID_C822N_QSFP           0x1891
    +/* Intel(R) Ethernet Connection C822N for SFP */
    +#define ICE_DEV_ID_C822N_SFP            0x1892
    +/* Intel(R) Ethernet Connection E822-C/X557-AT 10GBASE-T */
    +#define ICE_DEV_ID_E822C_10G_BASE_T     0x1893
    +/* Intel(R) Ethernet Connection E822-C 1GbE */
    +#define ICE_DEV_ID_E822C_SGMII          0x1894
    +/* Intel(R) Ethernet Connection E822-L for backplane */
    +#define ICE_DEV_ID_E822L_BACKPLANE      0x1897
    +/* Intel(R) Ethernet Connection E822-L for SFP */
    +#define ICE_DEV_ID_E822L_SFP            0x1898
    +/* Intel(R) Ethernet Connection E822-L/X557-AT 10GBASE-T */
    +#define ICE_DEV_ID_E822L_10G_BASE_T     0x1899
    +/* Intel(R) Ethernet Connection E822-L 1GbE */
    +#define ICE_DEV_ID_E822L_SGMII          0x189A
    +#endif /* ICE_DEVIDS_H */
    diff --git a/contrib/ofed/libirdma/irdma-abi.h b/contrib/ofed/libirdma/=
irdma-abi.h
    new file mode 100644
    index 000000000000..8a06198608e2
    --- /dev/null
    +++ b/contrib/ofed/libirdma/irdma-abi.h
    @@ -0,0 +1,143 @@
    +/*-
    + * SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR Linux=
-OpenIB)
    + *
    + *
    + * Copyright (c) 2006 - 2021 Intel Corporation.  All rights reserved.
    + * Copyright (c) 2005 Topspin Communications.  All rights reserved.
    + * Copyright (c) 2005 Cisco Systems.  All rights reserved.
    + * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef IRDMA_ABI_H
    +#define IRDMA_ABI_H
    +
    +#include <infiniband/types.h>
    +
    +/* irdma must support legacy GEN_1 i40iw kernel
    + * and user-space whose last ABI ver is 5
    + */
    +#define IRDMA_ABI_VER 5
    +
    +enum irdma_memreg_type {
    +	IRDMA_MEMREG_TYPE_MEM  =3D 0,
    +	IRDMA_MEMREG_TYPE_QP   =3D 1,
    +	IRDMA_MEMREG_TYPE_CQ   =3D 2,
    +};
    +
    +struct irdma_alloc_ucontext_req {
    +	__u32 rsvd32;
    +	__u8 userspace_ver;
    +	__u8 rsvd8[3];
    +};
    +
    +struct irdma_alloc_ucontext_resp {
    +	__u32 max_pds;
    +	__u32 max_qps;
    +	__u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */
    +	__u8 kernel_ver;
    +	__u8 rsvd[3];
    +	__aligned_u64 feature_flags;
    +	__aligned_u64 db_mmap_key;
    +	__u32 max_hw_wq_frags;
    +	__u32 max_hw_read_sges;
    +	__u32 max_hw_inline;
    +	__u32 max_hw_rq_quanta;
    +	__u32 max_hw_wq_quanta;
    +	__u32 min_hw_cq_size;
    +	__u32 max_hw_cq_size;
    +	__u16 max_hw_sq_chunk;
    +	__u8 hw_rev;
    +	__u8 rsvd2;
    +};
    +
    +struct irdma_alloc_pd_resp {
    +	__u32 pd_id;
    +	__u8 rsvd[4];
    +};
    +
    +struct irdma_resize_cq_req {
    +	__aligned_u64 user_cq_buffer;
    +};
    +
    +struct irdma_create_cq_req {
    +	__aligned_u64 user_cq_buf;
    +	__aligned_u64 user_shadow_area;
    +};
    +
    +struct irdma_create_qp_req {
    +	__aligned_u64 user_wqe_bufs;
    +	__aligned_u64 user_compl_ctx;
    +};
    +
    +struct irdma_mem_reg_req {
    +	__u16 reg_type; /* enum irdma_memreg_type */
    +	__u16 cq_pages;
    +	__u16 rq_pages;
    +	__u16 sq_pages;
    +};
    +
    +struct irdma_modify_qp_req {
    +	__u8 sq_flush;
    +	__u8 rq_flush;
    +	__u8 rsvd[6];
    +};
    +
    +struct irdma_create_cq_resp {
    +	__u32 cq_id;
    +	__u32 cq_size;
    +};
    +
    +struct irdma_create_qp_resp {
    +	__u32 qp_id;
    +	__u32 actual_sq_size;
    +	__u32 actual_rq_size;
    +	__u32 irdma_drv_opt;
    +	__u16 push_idx;
    +	__u8 lsmm;
    +	__u8 rsvd;
    +	__u32 qp_caps;
    +};
    +
    +struct irdma_modify_qp_resp {
    +	__aligned_u64 push_wqe_mmap_key;
    +	__aligned_u64 push_db_mmap_key;
    +	__u16 push_offset;
    +	__u8 push_valid;
    +	__u8 rd_fence_rate;
    +	__u8 rsvd[4];
    +};
    +
    +struct irdma_create_ah_resp {
    +	__u32 ah_id;
    +	__u8 rsvd[4];
    +};
    +#endif /* IRDMA_ABI_H */
    diff --git a/contrib/ofed/libirdma/irdma.h b/contrib/ofed/libirdma/irdm=
a.h
    new file mode 100644
    index 000000000000..27fa3d53d3e8
    --- /dev/null
    +++ b/contrib/ofed/libirdma/irdma.h
    @@ -0,0 +1,93 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (c) 2017 - 2021 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef IRDMA_H
    +#define IRDMA_H
    +
    +#define RDMA_BIT2(type, a) ((u##type) 1UL << a)
    +#define RDMA_MASK3(type, mask, shift)	((u##type) mask << shift)
    +#define MAKEMASK(m, s) ((m) << (s))
    +#define IRDMA_WQEALLOC_WQE_DESC_INDEX_S		20
    +#define IRDMA_WQEALLOC_WQE_DESC_INDEX_M		(0xfff << IRDMA_WQEALLOC_WQE_=
DESC_INDEX_S)
    +
    +enum irdma_vers {
    +	IRDMA_GEN_RSVD,
    +	IRDMA_GEN_1,
    +	IRDMA_GEN_2,
    +};
    +
    +struct irdma_uk_attrs {
    +	u64 feature_flags;
    +	u32 max_hw_wq_frags;
    +	u32 max_hw_read_sges;
    +	u32 max_hw_inline;
    +	u32 max_hw_rq_quanta;
    +	u32 max_hw_wq_quanta;
    +	u32 min_hw_cq_size;
    +	u32 max_hw_cq_size;
    +	u16 max_hw_sq_chunk;
    +	u16 max_hw_wq_size;
    +	u16 min_sw_wq_size;
    +	u8 hw_rev;
    +};
    +
    +struct irdma_hw_attrs {
    +	struct irdma_uk_attrs uk_attrs;
    +	u64 max_hw_outbound_msg_size;
    +	u64 max_hw_inbound_msg_size;
    +	u64 max_mr_size;
    +	u32 min_hw_qp_id;
    +	u32 min_hw_aeq_size;
    +	u32 max_hw_aeq_size;
    +	u32 min_hw_ceq_size;
    +	u32 max_hw_ceq_size;
    +	u32 max_hw_device_pages;
    +	u32 max_hw_vf_fpm_id;
    +	u32 first_hw_vf_fpm_id;
    +	u32 max_hw_ird;
    +	u32 max_hw_ord;
    +	u32 max_hw_wqes;
    +	u32 max_hw_pds;
    +	u32 max_hw_ena_vf_count;
    +	u32 max_qp_wr;
    +	u32 max_pe_ready_count;
    +	u32 max_done_count;
    +	u32 max_sleep_count;
    +	u32 max_cqp_compl_wait_time_ms;
    +	u16 max_stat_inst;
    +	u16 max_stat_idx;
    +};
    +
    +#endif /* IRDMA_H*/
    diff --git a/contrib/ofed/libirdma/irdma_defs.h b/contrib/ofed/libirdma=
/irdma_defs.h
    new file mode 100644
    index 000000000000..8fb9f1e2b622
    --- /dev/null
    +++ b/contrib/ofed/libirdma/irdma_defs.h
    @@ -0,0 +1,554 @@
    +/*-
    + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB
    + *
    + * Copyright (c) 2015 - 2021 Intel Corporation
    + *
    + * This software is available to you under a choice of one of two
    + * licenses.  You may choose to be licensed under the terms of the GNU
    + * General Public License (GPL) Version 2, available from the file
    + * COPYING in the main directory of this source tree, or the
    + * OpenFabrics.org BSD license below:
    + *
    + *   Redistribution and use in source and binary forms, with or
    + *   without modification, are permitted provided that the following
    + *   conditions are met:
    + *
    + *    - Redistributions of source code must retain the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer.
    + *
    + *    - Redistributions in binary form must reproduce the above
    + *	copyright notice, this list of conditions and the following
    + *	disclaimer in the documentation and/or other materials
    + *	provided with the distribution.
    + *
    + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
    + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    + * SOFTWARE.
    + */
    +/*$FreeBSD$*/
    +
    +#ifndef IRDMA_DEFS_H
    +#define IRDMA_DEFS_H
    +
    +#define IRDMA_BYTE_0		0
    +#define IRDMA_BYTE_8		8
    +#define IRDMA_BYTE_16		16
    +#define IRDMA_BYTE_24		24
    +#define IRDMA_BYTE_32		32
    +#define IRDMA_BYTE_40		40
    +#define IRDMA_BYTE_48		48
    +#define IRDMA_BYTE_56		56
    +#define IRDMA_BYTE_64		64
    +#define IRDMA_BYTE_72		72
    +#define IRDMA_BYTE_80		80
    +#define IRDMA_BYTE_88		88
    +#define IRDMA_BYTE_96		96
    +#define IRDMA_BYTE_104		104
    +#define IRDMA_BYTE_112		112
    +#define IRDMA_BYTE_120		120
    +#define IRDMA_BYTE_128		128
    +#define IRDMA_BYTE_136		136
    +#define IRDMA_BYTE_144		144
    +#define IRDMA_BYTE_152		152
    +#define IRDMA_BYTE_160		160
    +#define IRDMA_BYTE_168		168
    +#define IRDMA_BYTE_176		176
    +#define IRDMA_BYTE_184		184
    +#define IRDMA_BYTE_192		192
    +#define IRDMA_BYTE_200		200
    +#define IRDMA_BYTE_208		208
    +#define IRDMA_BYTE_216		216
    +
    +#define IRDMA_QP_TYPE_IWARP	1
    +#define IRDMA_QP_TYPE_UDA	2
    +#define IRDMA_QP_TYPE_ROCE_RC	3
    +#define IRDMA_QP_TYPE_ROCE_UD	4
    +
    +#define IRDMA_HW_PAGE_SIZE	4096
    +#define IRDMA_HW_PAGE_SHIFT	12
    +#define IRDMA_CQE_QTYPE_RQ	0
    +#define IRDMA_CQE_QTYPE_SQ	1
    +
    +#define IRDMA_QP_SW_MIN_WQSIZE	8u /* in WRs*/
    +#define IRDMA_QP_WQE_MIN_SIZE	32
    +#define IRDMA_QP_WQE_MAX_SIZE	256
    +#define IRDMA_QP_WQE_MIN_QUANTA 1
    +#define IRDMA_MAX_RQ_WQE_SHIFT_GEN1 2
    +#define IRDMA_MAX_RQ_WQE_SHIFT_GEN2 3
    +
    +#define IRDMA_SQ_RSVD	258
    +#define IRDMA_RQ_RSVD	1
    +
    +#define IRDMA_FEATURE_RTS_AE			1ULL
    +#define IRDMA_FEATURE_CQ_RESIZE			2ULL
    +#define IRDMA_FEATURE_RELAX_RQ_ORDER		4ULL
    +#define IRDMAQP_OP_RDMA_WRITE			0x00
    +#define IRDMAQP_OP_RDMA_READ			0x01
    +#define IRDMAQP_OP_RDMA_SEND			0x03
    +#define IRDMAQP_OP_RDMA_SEND_INV		0x04
    +#define IRDMAQP_OP_RDMA_SEND_SOL_EVENT		0x05
    +#define IRDMAQP_OP_RDMA_SEND_SOL_EVENT_INV	0x06
    +#define IRDMAQP_OP_BIND_MW			0x08
    +#define IRDMAQP_OP_FAST_REGISTER		0x09
    +#define IRDMAQP_OP_LOCAL_INVALIDATE		0x0a
    +#define IRDMAQP_OP_RDMA_READ_LOC_INV		0x0b
    +#define IRDMAQP_OP_NOP				0x0c
    +
    +#ifndef LS_64_1
    +#define LS_64_1(val, bits)	((u64)(uintptr_t)(val) << (bits))
    +#define RS_64_1(val, bits)	((u64)(uintptr_t)(val) >> (bits))
    +#define LS_32_1(val, bits)	((u32)((val) << (bits)))
    +#define RS_32_1(val, bits)	((u32)((val) >> (bits)))
    +#endif
    +#define LS_64(val, field)	(((u64)(val) << field ## _S) & (field ## _M)=
)
    +#define RS_64(val, field)	((u64)((val) & field ## _M) >> field ## _S)
    +#define LS_32(val, field)	(((val) << field ## _S) & (field ## _M))
    +#define RS_32(val, field)	(((val) & field ## _M) >> field ## _S)
    +
    +#define IRDMA_CQPHC_QPCTX_S 0
    +#define IRDMA_CQPHC_QPCTX_M \
    +	(0xffffffffffffffffULL << IRDMA_CQPHC_QPCTX_S)
    +
    +/* iWARP QP Doorbell shadow area */
    +#define IRDMA_QP_DBSA_HW_SQ_TAIL_S 0
    +#define IRDMA_QP_DBSA_HW_SQ_TAIL_M \
    +	(0x7fffULL << IRDMA_QP_DBSA_HW_SQ_TAIL_S)
    +
    +/* Completion Queue Doorbell shadow area */
    +#define IRDMA_CQ_DBSA_CQEIDX_S 0
    +#define IRDMA_CQ_DBSA_CQEIDX_M (0xfffffULL << IRDMA_CQ_DBSA_CQEIDX_S)
    +
    +#define IRDMA_CQ_DBSA_SW_CQ_SELECT_S 0
    +#define IRDMA_CQ_DBSA_SW_CQ_SELECT_M \
    +	(0x3fffULL << IRDMA_CQ_DBSA_SW_CQ_SELECT_S)
    +
    +#define IRDMA_CQ_DBSA_ARM_NEXT_S 14
    +#define IRDMA_CQ_DBSA_ARM_NEXT_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_S)
    +
    +#define IRDMA_CQ_DBSA_ARM_NEXT_SE_S 15
    +#define IRDMA_CQ_DBSA_ARM_NEXT_SE_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_SE_=
S)
    +
    +#define IRDMA_CQ_DBSA_ARM_SEQ_NUM_S 16
    +#define IRDMA_CQ_DBSA_ARM_SEQ_NUM_M \
    +	(0x3ULL << IRDMA_CQ_DBSA_ARM_SEQ_NUM_S)
    +
    +/* CQP and iWARP Completion Queue */
    +#define IRDMA_CQ_QPCTX_S IRDMA_CQPHC_QPCTX_S
    +#define IRDMA_CQ_QPCTX_M IRDMA_CQPHC_QPCTX_M
    +
    +#define IRDMA_CQ_MINERR_S 0
    +#define IRDMA_CQ_MINERR_M (0xffffULL << IRDMA_CQ_MINERR_S)
    +
    +#define IRDMA_CQ_MAJERR_S 16
    +#define IRDMA_CQ_MAJERR_M (0xffffULL << IRDMA_CQ_MAJERR_S)
    +
    +#define IRDMA_CQ_WQEIDX_S 32
    +#define IRDMA_CQ_WQEIDX_M (0x7fffULL << IRDMA_CQ_WQEIDX_S)
    +
    +#define IRDMA_CQ_EXTCQE_S 50
    +#define IRDMA_CQ_EXTCQE_M BIT_ULL(IRDMA_CQ_EXTCQE_S)
    +
    +#define IRDMA_OOO_CMPL_S 54
    +#define IRDMA_OOO_CMPL_M BIT_ULL(IRDMA_OOO_CMPL_S)
    +
    +#define IRDMA_CQ_ERROR_S 55
    +#define IRDMA_CQ_ERROR_M BIT_ULL(IRDMA_CQ_ERROR_S)
    +
    +#define IRDMA_CQ_SQ_S 62
    +#define IRDMA_CQ_SQ_M BIT_ULL(IRDMA_CQ_SQ_S)
    +
    +#define IRDMA_CQ_VALID_S 63
    +#define IRDMA_CQ_VALID_M BIT_ULL(IRDMA_CQ_VALID_S)
    +
    +#define IRDMA_CQ_IMMVALID_S 62
    +#define IRDMA_CQ_IMMVALID_M BIT_ULL(IRDMA_CQ_IMMVALID_S)
    +
    +#define IRDMA_CQ_UDSMACVALID_S 61
    +#define IRDMA_CQ_UDSMACVALID_M BIT_ULL(IRDMA_CQ_UDSMACVALID_S)
    +
    +#define IRDMA_CQ_UDVLANVALID_S 60
    +#define IRDMA_CQ_UDVLANVALID_M BIT_ULL(IRDMA_CQ_UDVLANVALID_S)
    +
    +#define IRDMA_CQ_UDSMAC_S 0
    +#define IRDMA_CQ_UDSMAC_M (0xffffffffffffULL << IRDMA_CQ_UDSMAC_S)
    +
    +#define IRDMA_CQ_UDVLAN_S 48
    +#define IRDMA_CQ_UDVLAN_M (0xffffULL << IRDMA_CQ_UDVLAN_S)
    +
    +#define IRDMA_CQ_IMMDATA_S 0
    +#define IRDMA_CQ_IMMDATA_M (0xffffffffffffffffULL << IRDMA_CQ_IMMVALID=
_S)
    +
    +#define IRDMA_CQ_IMMDATALOW32_S 0
    +#define IRDMA_CQ_IMMDATALOW32_M (0xffffffffULL << IRDMA_CQ_IMMDATALOW3=
2_S)
    +
    +#define IRDMA_CQ_IMMDATAUP32_S 32
    +#define IRDMA_CQ_IMMDATAUP32_M (0xffffffffULL << IRDMA_CQ_IMMDATAUP32_=
S)
    +
    +#define IRDMACQ_PAYLDLEN_S 0
    +#define IRDMACQ_PAYLDLEN_M (0xffffffffULL << IRDMACQ_PAYLDLEN_S)
    +
    +#define IRDMACQ_TCPSEQNUMRTT_S 32
    +#define IRDMACQ_TCPSEQNUMRTT_M (0xffffffffULL << IRDMACQ_TCPSEQNUMRTT_=
S)
    +
    +#define IRDMACQ_INVSTAG_S 0
    +#define IRDMACQ_INVSTAG_M (0xffffffffULL << IRDMACQ_INVSTAG_S)
    +
    +#define IRDMACQ_QPID_S 32
    +#define IRDMACQ_QPID_M (0xffffffULL << IRDMACQ_QPID_S)
    +
    +#define IRDMACQ_UDSRCQPN_S 0
    +#define IRDMACQ_UDSRCQPN_M (0xffffffffULL << IRDMACQ_UDSRCQPN_S)
    +
    +#define IRDMACQ_PSHDROP_S 51
    +#define IRDMACQ_PSHDROP_M BIT_ULL(IRDMACQ_PSHDROP_S)
    +
    +#define IRDMACQ_STAG_S 53
    +#define IRDMACQ_STAG_M BIT_ULL(IRDMACQ_STAG_S)
    +
    +#define IRDMACQ_IPV4_S 53
    +#define IRDMACQ_IPV4_M BIT_ULL(IRDMACQ_IPV4_S)
    +
    *** 42081 LINES SKIPPED ***





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BD7DCBD3-FF8C-406B-B261-E27E4CBF682F>