162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB */
262306a36Sopenharmony_ci/* Copyright (c) 2016 - 2021 Intel Corporation */
362306a36Sopenharmony_ci#ifndef IRDMA_UDA_D_H
462306a36Sopenharmony_ci#define IRDMA_UDA_D_H
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/* L4 packet type */
762306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_L4T_UNKNOWN	0
862306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_L4T_TCP		1
962306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_L4T_SCTP		2
1062306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_L4T_UDP		3
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/* Inner IP header type */
1362306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_IIPT_UNKNOWN		0
1462306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_IIPT_IPV6		1
1562306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_IIPT_IPV4_NO_CSUM	2
1662306a36Sopenharmony_ci#define IRDMA_E_UDA_SQ_IIPT_IPV4_CSUM		3
1762306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_PUSHWQE BIT_ULL(56)
1862306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_INLINEDATAFLAG BIT_ULL(57)
1962306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_INLINEDATALEN GENMASK_ULL(55, 48)
2062306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_ADDFRAGCNT GENMASK_ULL(41, 38)
2162306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IPFRAGFLAGS GENMASK_ULL(43, 42)
2262306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_NOCHECKSUM BIT_ULL(45)
2362306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_AHIDXVALID BIT_ULL(46)
2462306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_LOCAL_FENCE BIT_ULL(61)
2562306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_AHIDX GENMASK_ULL(16, 0)
2662306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_PROTOCOL GENMASK_ULL(23, 16)
2762306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_EXTHDRLEN GENMASK_ULL(40, 32)
2862306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_MULTICAST BIT_ULL(63)
2962306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_MACLEN GENMASK_ULL(62, 56)
3062306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_MACLEN_LINE 2
3162306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IPLEN GENMASK_ULL(54, 48)
3262306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IPLEN_LINE 2
3362306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_L4T GENMASK_ULL(31, 30)
3462306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_L4T_LINE 2
3562306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IIPT GENMASK_ULL(29, 28)
3662306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IIPT_LINE 2
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_DO_LPB_LINE 3
3962306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_FWD_PROG_CONFIRM BIT_ULL(45)
4062306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_FWD_PROG_CONFIRM_LINE 3
4162306a36Sopenharmony_ci#define IRDMA_UDA_QPSQ_IMMDATA GENMASK_ULL(63, 0)
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci/* Byte Offset 0 */
4462306a36Sopenharmony_ci#define IRDMA_UDAQPC_IPV4_M BIT_ULL(3)
4562306a36Sopenharmony_ci#define IRDMA_UDAQPC_INSERTVLANTAG BIT_ULL(5)
4662306a36Sopenharmony_ci#define IRDMA_UDAQPC_ISQP1 BIT_ULL(6)
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#define IRDMA_UDAQPC_ECNENABLE BIT_ULL(14)
4962306a36Sopenharmony_ci#define IRDMA_UDAQPC_PDINDEXHI GENMASK_ULL(21, 20)
5062306a36Sopenharmony_ci#define IRDMA_UDAQPC_DCTCPENABLE BIT_ULL(25)
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci#define IRDMA_UDAQPC_RCVTPHEN IRDMAQPC_RCVTPHEN
5362306a36Sopenharmony_ci#define IRDMA_UDAQPC_XMITTPHEN IRDMAQPC_XMITTPHEN
5462306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQTPHEN IRDMAQPC_RQTPHEN
5562306a36Sopenharmony_ci#define IRDMA_UDAQPC_SQTPHEN IRDMAQPC_SQTPHEN
5662306a36Sopenharmony_ci#define IRDMA_UDAQPC_PPIDX IRDMAQPC_PPIDX
5762306a36Sopenharmony_ci#define IRDMA_UDAQPC_PMENA IRDMAQPC_PMENA
5862306a36Sopenharmony_ci#define IRDMA_UDAQPC_INSERTTAG2 BIT_ULL(11)
5962306a36Sopenharmony_ci#define IRDMA_UDAQPC_INSERTTAG3 BIT_ULL(14)
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQSIZE IRDMAQPC_RQSIZE
6262306a36Sopenharmony_ci#define IRDMA_UDAQPC_SQSIZE IRDMAQPC_SQSIZE
6362306a36Sopenharmony_ci#define IRDMA_UDAQPC_TXCQNUM IRDMAQPC_TXCQNUM
6462306a36Sopenharmony_ci#define IRDMA_UDAQPC_RXCQNUM IRDMAQPC_RXCQNUM
6562306a36Sopenharmony_ci#define IRDMA_UDAQPC_QPCOMPCTX IRDMAQPC_QPCOMPCTX
6662306a36Sopenharmony_ci#define IRDMA_UDAQPC_SQTPHVAL IRDMAQPC_SQTPHVAL
6762306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQTPHVAL IRDMAQPC_RQTPHVAL
6862306a36Sopenharmony_ci#define IRDMA_UDAQPC_QSHANDLE IRDMAQPC_QSHANDLE
6962306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQHDRRINGBUFSIZE GENMASK_ULL(49, 48)
7062306a36Sopenharmony_ci#define IRDMA_UDAQPC_SQHDRRINGBUFSIZE GENMASK_ULL(33, 32)
7162306a36Sopenharmony_ci#define IRDMA_UDAQPC_PRIVILEGEENABLE BIT_ULL(25)
7262306a36Sopenharmony_ci#define IRDMA_UDAQPC_USE_STATISTICS_INSTANCE BIT_ULL(26)
7362306a36Sopenharmony_ci#define IRDMA_UDAQPC_STATISTICS_INSTANCE_INDEX GENMASK_ULL(6, 0)
7462306a36Sopenharmony_ci#define IRDMA_UDAQPC_PRIVHDRGENENABLE BIT_ULL(0)
7562306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQHDRSPLITENABLE BIT_ULL(3)
7662306a36Sopenharmony_ci#define IRDMA_UDAQPC_RQHDRRINGBUFENABLE BIT_ULL(2)
7762306a36Sopenharmony_ci#define IRDMA_UDAQPC_SQHDRRINGBUFENABLE BIT_ULL(1)
7862306a36Sopenharmony_ci#define IRDMA_UDAQPC_IPID GENMASK_ULL(47, 32)
7962306a36Sopenharmony_ci#define IRDMA_UDAQPC_SNDMSS GENMASK_ULL(29, 16)
8062306a36Sopenharmony_ci#define IRDMA_UDAQPC_VLANTAG GENMASK_ULL(15, 0)
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_PDINDEXHI GENMASK_ULL(21, 20)
8362306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_PDINDEXLO GENMASK_ULL(63, 48)
8462306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_SRCMACADDRINDEX GENMASK_ULL(29, 24)
8562306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_ARPINDEX GENMASK_ULL(63, 48)
8662306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_TC GENMASK_ULL(39, 32)
8762306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_HOPLIMIT GENMASK_ULL(39, 32)
8862306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_FLOWLABEL GENMASK_ULL(19, 0)
8962306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_ADDR0 GENMASK_ULL(63, 32)
9062306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_ADDR1 GENMASK_ULL(31, 0)
9162306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_ADDR2 GENMASK_ULL(63, 32)
9262306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_ADDR3 GENMASK_ULL(31, 0)
9362306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_WQEVALID BIT_ULL(63)
9462306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_OPCODE GENMASK_ULL(37, 32)
9562306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_DOLOOPBACKK BIT_ULL(62)
9662306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_IPV4VALID BIT_ULL(59)
9762306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_AVIDX GENMASK_ULL(16, 0)
9862306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MAV_INSERTVLANTAG BIT_ULL(60)
9962306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_VFFLAG BIT_ULL(29)
10062306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_DESTPORT GENMASK_ULL(47, 32)
10162306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_VFID GENMASK_ULL(28, 22)
10262306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_VALIDENT BIT_ULL(31)
10362306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_PFID GENMASK_ULL(21, 18)
10462306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_FLAGIGNOREDPORT BIT_ULL(30)
10562306a36Sopenharmony_ci#define IRDMA_UDA_MGCTX_QPID GENMASK_ULL(17, 0)
10662306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_WQEVALID BIT_ULL(63)
10762306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_OPCODE GENMASK_ULL(37, 32)
10862306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_MGIDX GENMASK_ULL(12, 0)
10962306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_IPV4VALID BIT_ULL(60)
11062306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_VLANVALID BIT_ULL(59)
11162306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_HMC_FCN_ID GENMASK_ULL(5, 0)
11262306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_MG_VLANID GENMASK_ULL(43, 32)
11362306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QS_HANDLE GENMASK_ULL(9, 0)
11462306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_QPN GENMASK_ULL(49, 32)
11562306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ BIT_ULL(0)
11662306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_SRC_PORT GENMASK_ULL(31, 16)
11762306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_DEST_PORT GENMASK_ULL(15, 0)
11862306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ADDR0 GENMASK_ULL(63, 32)
11962306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ADDR1 GENMASK_ULL(31, 0)
12062306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ADDR2 GENMASK_ULL(63, 32)
12162306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ADDR3 GENMASK_ULL(31, 0)
12262306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_WQEVALID BIT_ULL(63)
12362306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_OPCODE GENMASK_ULL(37, 32)
12462306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_MANAGE GENMASK_ULL(62, 61)
12562306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_IPV4VALID GENMASK_ULL(60, 60)
12662306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_LANFWD GENMASK_ULL(59, 59)
12762306a36Sopenharmony_ci#define IRDMA_UDA_CQPSQ_QHASH_ENTRYTYPE GENMASK_ULL(44, 42)
12862306a36Sopenharmony_ci#endif /* IRDMA_UDA_D_H */
129