pseudo_bit_trgid_31_0[0x00020];/* Remote GID[31:0] if G bit is set. Must be set to 0x2 if G bit is cleared. */
/* -------------- */
};
/* Send doorbell */
structarbelprm_send_doorbell_st{/* Little Endian */
pseudo_bit_tnopcode[0x00005];/* Opcode of descriptor to be executed */
pseudo_bit_tf[0x00001];/* Fence bit. If set, descriptor is fenced */
pseudo_bit_treserved0[0x00002];
pseudo_bit_twqe_counter[0x00010];/* Modulo-64K counter of WQEs posted to the QP since its creation excluding the newly posted WQEs in this doorbell. Should be zero for the first doorbell on the QP */
pseudo_bit_twqe_cnt[0x00008];/* Number of WQEs posted with this doorbell. Must be grater then zero. */
/* -------------- */
pseudo_bit_tnds[0x00006];/* Next descriptor size (in 16-byte chunks) */
pseudo_bit_treserved1[0x00002];
pseudo_bit_tqpn[0x00018];/* QP number this doorbell is rung on */
/* -------------- */
};
/* ACCESS_LAM_inject_errors_input_modifier */
structarbelprm_access_lam_inject_errors_input_modifier_st{/* Little Endian */
pseudo_bit_tindex3[0x00007];
pseudo_bit_tq3[0x00001];
pseudo_bit_tindex2[0x00007];
pseudo_bit_tq2[0x00001];
pseudo_bit_tindex1[0x00007];
pseudo_bit_tq1[0x00001];
pseudo_bit_tindex0[0x00007];
pseudo_bit_tq0[0x00001];
/* -------------- */
};
/* ACCESS_LAM_inject_errors_input_parameter */
structarbelprm_access_lam_inject_errors_input_parameter_st{/* Little Endian */
pseudo_bit_tba[0x00002];/* Bank Address */
pseudo_bit_tda[0x00002];/* Dimm Address */
pseudo_bit_treserved0[0x0001c];
/* -------------- */
pseudo_bit_tra[0x00010];/* Row Address */
pseudo_bit_tca[0x00010];/* Column Address */
/* -------------- */
};
/* */
structarbelprm_recv_wqe_segment_next_st{/* Little Endian */
pseudo_bit_treserved0[0x00006];
pseudo_bit_tnda_31_6[0x0001a];/* Next WQE address, low 32 bit. WQE address must be aligned to 64-byte boundary (6 LSB are forced ZERO). */
/* -------------- */
pseudo_bit_tnds[0x00006];/* Next WQE size in OctoWords (16 bytes).
ZerovalueinNDSfieldsignalsendofWQEs?chain.
*/
pseudo_bit_treserved1[0x0001a];
/* -------------- */
};
/* Send wqe segment data inline */
structarbelprm_wqe_segment_data_inline_st{/* Little Endian */
pseudo_bit_tbyte_count[0x0000a];/* Not including padding for 16Byte chunks */
pseudo_bit_treserved0[0x00015];
pseudo_bit_talways1[0x00001];
/* -------------- */
pseudo_bit_tdata[0x00018];/* Data may be more this segment size - in 16Byte chunks */
pseudo_bit_treserved1[0x00008];
/* -------------- */
pseudo_bit_treserved2[0x00040];
/* -------------- */
};
/* Send wqe segment data ptr */
structarbelprm_wqe_segment_data_ptr_st{/* Little Endian */
pseudo_bit_tbyte_count[0x0001f];
pseudo_bit_talways0[0x00001];
/* -------------- */
pseudo_bit_tl_key[0x00020];
/* -------------- */
pseudo_bit_tlocal_address_h[0x00020];
/* -------------- */
pseudo_bit_tlocal_address_l[0x00020];
/* -------------- */
};
/* Send wqe segment rd */
structarbelprm_local_invalidate_segment_st{/* Little Endian */
pseudo_bit_treserved0[0x00040];
/* -------------- */
pseudo_bit_tmem_key[0x00018];
pseudo_bit_treserved1[0x00008];
/* -------------- */
pseudo_bit_treserved2[0x000a0];
/* -------------- */
};
/* Fast_Registration_Segment */
structarbelprm_fast_registration_segment_st{/* Little Endian */
pseudo_bit_treserved0[0x0001b];
pseudo_bit_tlr[0x00001];/* If set - Local Read access will be enabled */
pseudo_bit_tlw[0x00001];/* If set - Local Write access will be enabled */
pseudo_bit_trr[0x00001];/* If set - Remote Read access will be enabled */
pseudo_bit_trw[0x00001];/* If set - Remote Write access will be enabled */
pseudo_bit_ta[0x00001];/* If set - Remote Atomic access will be enabled */
/* -------------- */
pseudo_bit_tpbl_ptr_63_32[0x00020];/* Physical address pointer [63:32] to the physical buffer list */
/* -------------- */
pseudo_bit_tmem_key[0x00020];/* Memory Key on which the fast registration is executed on. */
/* -------------- */
pseudo_bit_tpage_size[0x00005];/* Page size used for the region. Actual size is [4K]*2^Page_size bytes.
page_sizeshouldbelessthan20.*/
pseudo_bit_treserved1[0x00002];
pseudo_bit_tzb[0x00001];/* Zero Based Region */
pseudo_bit_tpbl_ptr_31_8[0x00018];/* Physical address pointer [31:8] to the physical buffer list */
/* -------------- */
pseudo_bit_tstart_address_h[0x00020];/* Start Address[63:32] - Virtual Address where this region starts */
/* -------------- */
pseudo_bit_tstart_address_l[0x00020];/* Start Address[31:0] - Virtual Address where this region starts */
/* -------------- */
pseudo_bit_treg_len_h[0x00020];/* Region Length[63:32] */
/* -------------- */
pseudo_bit_treg_len_l[0x00020];/* Region Length[31:0] */
/* -------------- */
};
/* Send wqe segment atomic */
structarbelprm_wqe_segment_atomic_st{/* Little Endian */
pseudo_bit_tswap_add_h[0x00020];
/* -------------- */
pseudo_bit_tswap_add_l[0x00020];
/* -------------- */
pseudo_bit_tcompare_h[0x00020];
/* -------------- */
pseudo_bit_tcompare_l[0x00020];
/* -------------- */
};
/* Send wqe segment remote address */
structarbelprm_wqe_segment_remote_address_st{/* Little Endian */
pseudo_bit_tremote_virt_addr_h[0x00020];
/* -------------- */
pseudo_bit_tremote_virt_addr_l[0x00020];
/* -------------- */
pseudo_bit_trkey[0x00020];
/* -------------- */
pseudo_bit_treserved0[0x00020];
/* -------------- */
};
/* end wqe segment bind */
structarbelprm_wqe_segment_bind_st{/* Little Endian */
pseudo_bit_treserved0[0x0001d];
pseudo_bit_trr[0x00001];/* If set, Remote Read Enable for bound window. */
pseudo_bit_trw[0x00001];/* If set, Remote Write Enable for bound window.
*/
pseudo_bit_ta[0x00001];/* If set, Atomic Enable for bound window. */
/* -------------- */
pseudo_bit_treserved1[0x0001e];
pseudo_bit_tzb[0x00001];/* If set, Window is Zero Based. */
pseudo_bit_ttype[0x00001];/* Window type.
0-Typeonewindow
1-Typetwowindow
*/
/* -------------- */
pseudo_bit_tnew_rkey[0x00020];/* The new RKey of window to bind */
/* -------------- */
pseudo_bit_tregion_lkey[0x00020];/* Local key of region, which window will be bound to */
/* -------------- */
pseudo_bit_tstart_address_h[0x00020];
/* -------------- */
pseudo_bit_tstart_address_l[0x00020];
/* -------------- */
pseudo_bit_tlength_h[0x00020];
/* -------------- */
pseudo_bit_tlength_l[0x00020];
/* -------------- */
};
/* Send wqe segment ud */
structarbelprm_wqe_segment_ud_st{/* Little Endian */
structarbelprm_ud_address_vector_stud_address_vector;/* UD Address Vector */
/* -------------- */
pseudo_bit_tdestination_qp[0x00018];
pseudo_bit_treserved0[0x00008];
/* -------------- */
pseudo_bit_tq_key[0x00020];
/* -------------- */
pseudo_bit_treserved1[0x00040];
/* -------------- */
};
/* Send wqe segment rd */
structarbelprm_wqe_segment_rd_st{/* Little Endian */
pseudo_bit_tdestination_qp[0x00018];
pseudo_bit_treserved0[0x00008];
/* -------------- */
pseudo_bit_tq_key[0x00020];
/* -------------- */
pseudo_bit_treserved1[0x00040];
/* -------------- */
};
/* Send wqe segment ctrl */
structarbelprm_wqe_segment_ctrl_send_st{/* Little Endian */
pseudo_bit_talways1[0x00001];
pseudo_bit_ts[0x00001];/* Solicited Event bit. If set, SE (Solicited Event) bit is set in the (last packet of) message. */
pseudo_bit_te[0x00001];/* Event bit. If set, event is generated upon WQE?s completion, if QP is allowed to generate an event. Every WQE with E-bit set generates an event. The C bit must be set on unsignalled QPs if the E bit is set. */
pseudo_bit_tc[0x00001];/* Completion Queue bit. Valid for unsignalled QPs only. If set, the CQ is updated upon WQE?s completion */
pseudo_bit_tip[0x00001];/* When set, InfiniHost III Ex will calculate the IP checksum of the IP header that is present immediately after the IPoverIB encapsulation header. In the case of multiple headers (encapsulation), InfiniHost III Ex will calculate the checksum only for the first IP header following the IPoverIB encapsulation header. Not Valid for IPv6 packets */
pseudo_bit_ttcp_udp[0x00001];/* When set, InfiniHost III Ex will calculate the TCP/UDP checksum of the packet that is present immediately after the IP header. In the case of multiple headers (encapsulation), InfiniHost III Ex will calculate the checksum only for the first TCP header following the IP header. This bit may be set only if the entire TCP/UDP segment is present in one IB packet */
pseudo_bit_treserved0[0x00001];
pseudo_bit_tso[0x00001];/* Strong Ordering - when set, the WQE will be executed only after all previous WQEs have been executed. Can be set for RC WQEs only. This bit must be set in type two BIND, Fast Registration and Local invalidate operations. */
pseudo_bit_treserved1[0x00018];
/* -------------- */
pseudo_bit_timmediate[0x00020];/* If the OpCode encodes an operation with Immediate (RDMA-write/SEND), This field will hold the Immediate data to be sent. If the OpCode encodes send and invalidate operations, this field holds the Invalidation key to be inserted into the packet; otherwise, this field is reserved. */
/* -------------- */
};
/* Send wqe segment next */
structarbelprm_wqe_segment_next_st{/* Little Endian */
pseudo_bit_tnopcode[0x00005];/* Next Opcode: OpCode to be used in the next WQE. Encodes the type of operation to be executed on the QP:
pseudo_bit_tnda_31_6[0x0001a];/* Next WQE address, low 32 bit. WQE address must be aligned to 64-byte boundary (6 LSB are forced ZERO). */
/* -------------- */
pseudo_bit_tnds[0x00006];/* Next WQE size in OctoWords (16 bytes).
ZerovalueinNDSfieldsignalsendofWQEs?chain.
*/
pseudo_bit_tf[0x00001];/* Fence bit. If set, next WQE will start execution only after all previous Read/Atomic WQEs complete. */
pseudo_bit_talways1[0x00001];
pseudo_bit_treserved1[0x00018];
/* -------------- */
};
/* Address Path */
structarbelprm_address_path_st{/* Little Endian */
pseudo_bit_tpkey_index[0x00007];/* PKey table index */
pseudo_bit_treserved0[0x00011];
pseudo_bit_tport_number[0x00002];/* Specific port associated with this QP/EE.
1-Port1
2-Port2
other-reserved*/
pseudo_bit_treserved1[0x00006];
/* -------------- */
pseudo_bit_trlid[0x00010];/* Remote (Destination) LID */
pseudo_bit_tmy_lid_path_bits[0x00007];/* Source LID - the lower 7 bits (upper bits are taken from PortInfo) */
pseudo_bit_tg[0x00001];/* Global address enable - if set, GRH will be formed for packet header */
pseudo_bit_treserved2[0x00005];
pseudo_bit_trnr_retry[0x00003];/* RNR retry count (see C9-132 in IB spec Vol 1)
0-6-numberofretries
7-infinite*/
/* -------------- */
pseudo_bit_thop_limit[0x00008];/* IPv6 hop limit */
pseudo_bit_tmax_stat_rate[0x00003];/* Maximum static rate control.
0-100%injectionrate
1-25%injectionrate
2-12.5%injectionrate
3-50%injectionrate
other-reserved*/
pseudo_bit_treserved3[0x00005];
pseudo_bit_tmgid_index[0x00006];/* Index to port GID table */
pseudo_bit_treserved4[0x00005];
pseudo_bit_tack_timeout[0x00005];/* Local ACK timeout - Transport timer for activation of retransmission mechanism. Refer to IB spec Vol1 9.7.6.1.3 for further details.
pseudo_bit_tout_param_h[0x00020];/* Output Parameter: parameter[63:32] or pointer[63:32] to output mailbox (see command description) */
/* -------------- */
pseudo_bit_tout_param_l[0x00020];/* Output Parameter: parameter[31:0] or pointer[31:0] to output mailbox (see command description) */
/* -------------- */
pseudo_bit_treserved0[0x00010];
pseudo_bit_ttoken[0x00010];/* Software assigned token to the command, to uniquely identify it. The token is returned to the software in the EQE reported. */
/* -------------- */
pseudo_bit_topcode[0x0000c];/* Command opcode */
pseudo_bit_topcode_modifier[0x00004];/* Opcode Modifier, see specific description for each command. */
pseudo_bit_treserved1[0x00006];
pseudo_bit_te[0x00001];/* Event Request
0-Don'treportevent(softwarewillpolltheGObit)
1-ReporteventtoEQwhenthecommandcompletes*/
pseudo_bit_tgo[0x00001];/* Go (0=Software ownership for the HCR, 1=Hardware ownership for the HCR)
pseudo_bit_tqpn_i[0x00018];/* QPN_i: QP number which is a member in this multicast group. Valid only if Qi bit is set. Length of the QPN_i list is set in INIT_HCA */
pseudo_bit_treserved0[0x00007];
pseudo_bit_tqi[0x00001];/* Qi: QPN_i is valid */
/* -------------- */
};
/* vsd */
structarbelprm_vsd_st{/* Little Endian */
pseudo_bit_tvsd_dw0[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw1[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw2[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw3[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw4[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw5[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw6[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw7[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw8[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw9[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw10[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw11[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw12[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw13[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw14[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw15[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw16[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw17[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw18[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw19[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw20[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw21[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw22[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw23[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw24[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw25[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw26[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw27[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw28[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw29[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw30[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw31[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw32[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw33[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw34[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw35[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw36[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw37[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw38[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw39[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw40[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw41[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw42[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw43[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw44[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw45[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw46[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw47[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw48[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw49[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw50[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw51[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw52[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw53[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw54[0x00020];
/* -------------- */
pseudo_bit_tvsd_dw55[0x00020];
/* -------------- */
};
/* ACCESS_LAM_inject_errors */
structarbelprm_access_lam_inject_errors_st{/* Little Endian */
pseudo_bit_tf0[0x00001];/* Overflow flag. If set, overflow occurred on respective counter. Cleared if written to as '1 */
pseudo_bit_tf1[0x00001];/* Overflow flag. If set, overflow occurred on respective counter. Cleared if written to as '1 */
pseudo_bit_tf2[0x00001];/* Overflow flag. If set, overflow occurred on respective counter. Cleared if written to as '1 */
pseudo_bit_treserved3[0x00001];
pseudo_bit_tev_cnt1[0x00005];/* Specifies event to be counted by Event_counter1 See XXX for events' definition. */
pseudo_bit_treserved4[0x00003];
pseudo_bit_tev_cnt2[0x00005];/* Specifies event to be counted by Event_counter2 See XXX for events' definition. */
pseudo_bit_treserved5[0x00003];
/* -------------- */
pseudo_bit_tclock_counter[0x00020];
/* -------------- */
pseudo_bit_tevent_counter1[0x00020];
/* -------------- */
pseudo_bit_tevent_counter2[0x00020];/* Read/write event counter, counting events specified by EvCntl and EvCnt2 fields repsectively. When the event counter reaches is maximum value of 0xFFFFFF, the next event will cause it to roll over to zero, set F1 or F2 bit respectively and generate interrupt by I1 I2 bit respectively. */
/* -------------- */
};
/* Receive segment format */
structarbelprm_wqe_segment_ctrl_recv_st{/* Little Endian */
pseudo_bit_ticrc[0x00002];/* icrc field detemines what to do with the last dword of the packet: 0 - Calculate ICRC and put it instead of last dword. Last dword must be 0x0. 1,2 - reserved. 3 - Leave last dword as is. Last dword must not be 0x0. */
pseudo_bit_treserved1[0x00002];
pseudo_bit_tsl[0x00004];
pseudo_bit_tmax_statrate[0x00004];
pseudo_bit_tslr[0x00001];/* 0= take slid from port. 1= take slid from given headers */
pseudo_bit_tv15[0x00001];/* Send packet over VL15 */
pseudo_bit_treserved2[0x0000e];
/* -------------- */
pseudo_bit_tvcrc[0x00010];/* Packet's VCRC (if not 0 - otherwise computed by HW) */
pseudo_bit_trlid[0x00010];/* Destination LID (must match given headers) */
/* -------------- */
};
/* Send WQE segment format */
structarbelprm_send_wqe_segment_st{/* Little Endian */
structarbelprm_wqe_segment_next_stwqe_segment_next;/* Send wqe segment next */
structarbelprm_fast_registration_segment_stfast_registration_segment;/* Fast Registration Segment */
/* -------------- */
structarbelprm_local_invalidate_segment_stlocal_invalidate_segment;/* local invalidate segment */
/* -------------- */
structarbelprm_wqe_segment_data_ptr_stwqe_segment_data_ptr;/* Send wqe segment data ptr */
/* -------------- */
structarbelprm_wqe_segment_data_inline_stwqe_segment_data_inline;/* Send wqe segment data inline */
/* -------------- */
pseudo_bit_treserved1[0x00200];
/* -------------- */
};
/* QP and EE Context Entry */
structarbelprm_queue_pair_ee_context_entry_st{/* Little Endian */
pseudo_bit_treserved0[0x00008];
pseudo_bit_tde[0x00001];/* Send/Receive Descriptor Event enable - if set, events can be generated upon descriptors' completion on send/receive queue (controlled by E bit in WQE). Invalid in EE context */
pseudo_bit_treserved1[0x00002];
pseudo_bit_tpm_state[0x00002];/* Path migration state (Migrated, Armed or Rearm)
pseudo_bit_tfre[0x00001];/* Fast Registration Work Request Enabled. (Reserved for EE) */
pseudo_bit_treserved15[0x00001];
pseudo_bit_tsae[0x00001];/* If set - Atomic operations enabled on send queue. Not valid (reserved) in EE context. */
pseudo_bit_tswe[0x00001];/* If set - RDMA - write enabled on send queue. Not valid (reserved) in EE context. */
pseudo_bit_tsre[0x00001];/* If set - RDMA - read enabled on send queue. Not valid (reserved) in EE context. */
pseudo_bit_tretry_count[0x00003];/* Transport timeout Retry count */
pseudo_bit_treserved16[0x00002];
pseudo_bit_tsra_max[0x00003];/* Maximum number of outstanding RDMA-read/Atomic operations allowed in the send queue. Maximum number is 2^SRA_Max. Must be zero in EE context. */
pseudo_bit_tflight_lim[0x00004];/* Number of outstanding (in-flight) messages on the wire allowed for this send queue.
Numberofoutstandingmessagesis2^Flight_Lim.
Use0xFforunlimitednumberofoutstandingmessages.*/
pseudo_bit_tack_req_freq[0x00004];/* ACK required frequency. ACK required bit will be set in every 2^AckReqFreq packets at least. Not valid for RD QP. */
/* -------------- */
pseudo_bit_treserved17[0x00020];
/* -------------- */
pseudo_bit_tnext_send_psn[0x00018];/* Next PSN to be sent */
pseudo_bit_treserved18[0x00008];
/* -------------- */
pseudo_bit_tcqn_snd[0x00018];/* CQ number completions from the send queue to be reported to. Not valid (reserved) in EE context. */
pseudo_bit_treserved19[0x00008];
/* -------------- */
pseudo_bit_treserved20[0x00006];
pseudo_bit_tsnd_wqe_base_adr_l[0x0001a];/* While opening (creating) the WQ, this field should contain the address of first descriptor to be posted. Not valid (reserved) in EE context. */
/* -------------- */
pseudo_bit_tsnd_db_record_index[0x00020];/* Index in the UAR Context Table Entry.
pseudo_bit_tcqn_rcv[0x00018];/* CQ number completions from receive queue to be reported to. Not valid (reserved) in EE context. */
pseudo_bit_treserved29[0x00008];
/* -------------- */
pseudo_bit_treserved30[0x00006];
pseudo_bit_trcv_wqe_base_adr_l[0x0001a];/* While opening (creating) the WQ, this field should contain the address of first descriptor to be posted. Not valid (reserved) in EE context. */
/* -------------- */
pseudo_bit_trcv_db_record_index[0x00020];/* Index in the UAR Context Table Entry containing the doorbell record for the receive queue.
pseudo_bit_tsrq[0x00001];/* SRQ - Shared Receive Queue. If this bit is set, then the QP is associated with a SRQ. Not valid (reserved) in EE context. */
pseudo_bit_treserved31[0x00007];
/* -------------- */
pseudo_bit_trmsn[0x00018];/* Responder current message sequence number (QUERY_QPEE only) */
pseudo_bit_treserved32[0x00008];
/* -------------- */
pseudo_bit_tsq_wqe_counter[0x00010];/* A 16bits counter that is incremented for each WQE posted to the SQ.
Mustbe0x0inSQinitialization.
(QUERY_QPEEonly).*/
pseudo_bit_trq_wqe_counter[0x00010];/* A 16bits counter that is incremented for each WQE posted to the RQ.
pseudo_bit_tusr_page[0x00018];/* Index (offset) of user page allocated for this SRQ (see "non_privileged Access to the HCA Hardware"). Not valid (reserved) in EE context. */
pseudo_bit_treserved0[0x00005];
pseudo_bit_tlog_rq_stride[0x00003];/* Stride (max WQE size) on the receive queue. WQ entry is 16*(2^log_RQ_stride) bytes. */
/* -------------- */
pseudo_bit_twqe_addr_h[0x00020];/* Bits 63:32 of WQE address (WQE base address) */
/* -------------- */
pseudo_bit_treserved1[0x00006];
pseudo_bit_tsrq_wqe_base_adr_l[0x0001a];/* While opening (creating) the SRQ, this field should contain the address of first descriptor to be posted. */
pseudo_bit_twqe_cnt[0x00010];/* WQE count on the SRQ.
ValidonlyonQUERY_SRQandHW2SW_SRQcommands.*/
pseudo_bit_tlwm[0x00010];/* Limit Water Mark - if the LWM is not zero, and the wqe_cnt drops below LWM when a WQE is dequeued from the SRQ, then a SRQ limit event is fired and the LWM is set to zero. */
/* -------------- */
pseudo_bit_tsrq_wqe_counter[0x00010];/* A 16bits counter that is incremented for each WQE posted to the SQ.
Mustbe0x0inSRQinitialization.
(QUERY_SRQonly).*/
pseudo_bit_treserved3[0x00010];
/* -------------- */
pseudo_bit_treserved4[0x00060];
/* -------------- */
};
/* PBL */
structarbelprm_pbl_st{/* Little Endian */
pseudo_bit_tmtt_0_h[0x00020];/* First MTT[63:32] */
/* -------------- */
pseudo_bit_tmtt_0_l[0x00020];/* First MTT[31:0] */
/* -------------- */
pseudo_bit_tmtt_1_h[0x00020];/* Second MTT[63:32] */
/* -------------- */
pseudo_bit_tmtt_1_l[0x00020];/* Second MTT[31:0] */
/* -------------- */
pseudo_bit_tmtt_2_h[0x00020];/* Third MTT[63:32] */
/* -------------- */
pseudo_bit_tmtt_2_l[0x00020];/* Third MTT[31:0] */
pseudo_bit_tstart_addr_h[0x00020];/* Start address of CQ[63:32].
MustbealignedonCQEsize(32bytes)*/
/* -------------- */
pseudo_bit_tstart_addr_l[0x00020];/* Start address of CQ[31:0].
MustbealignedonCQEsize(32bytes)*/
/* -------------- */
pseudo_bit_treserved1[0x00018];
pseudo_bit_tlog_cq_size[0x00005];/* Log (base 2) of the CQ size (in entries) */
pseudo_bit_treserved2[0x00003];
/* -------------- */
pseudo_bit_treserved3[0x00060];
/* -------------- */
pseudo_bit_tl_key[0x00020];/* Memory key (L_Key) to be used to access CQ */
/* -------------- */
pseudo_bit_treserved4[0x00100];
/* -------------- */
};
/* MAD_IFC Input Modifier */
structarbelprm_mad_ifc_input_modifier_st{/* Little Endian */
pseudo_bit_tport_number[0x00008];/* The packet reception port number (1 or 2). */
pseudo_bit_tmad_extended_info[0x00001];/* Mad_Extended_Info valid bit (MAD_IFC Input Mailbox data from offset 00100h and down). MAD_Extended_Info is read only if this bit is set.
structarbelprm_query_debug_msg_st{/* Little Endian */
pseudo_bit_tphy_addr_h[0x00020];/* Translation of the address in firmware area. High 32 bits. */
/* -------------- */
pseudo_bit_tv[0x00001];/* Physical translation is valid */
pseudo_bit_treserved0[0x0000b];
pseudo_bit_tphy_addr_l[0x00014];/* Translation of the address in firmware area. Low 32 bits. */
/* -------------- */
pseudo_bit_tfw_area_base[0x00020];/* Firmware area base address. The format strings and the trace buffers may be located starting from this address. */
/* -------------- */
pseudo_bit_tfw_area_size[0x00020];/* Firmware area size */
/* -------------- */
pseudo_bit_ttrc_hdr_sz[0x00020];/* Trace message header size in dwords. */
/* -------------- */
pseudo_bit_ttrc_arg_num[0x00020];/* The number of arguments per trace message. */
structarbelprm_receive_doorbell_st{/* Little Endian */
pseudo_bit_treserved0[0x00008];
pseudo_bit_twqe_counter[0x00010];/* Modulo-64K counter of WQEs posted on this queue since its creation. Should be zero for the first doorbell on the QP */
pseudo_bit_treserved1[0x00008];
/* -------------- */
pseudo_bit_treserved2[0x00005];
pseudo_bit_tsrq[0x00001];/* If set, this is a Shared Receive Queue */
pseudo_bit_treserved3[0x00002];
pseudo_bit_tqpn[0x00018];/* QP number or SRQ number this doorbell is rung on */
pseudo_bit_tlog_max_ra_res_qp[0x00006];/* Log2 of the Maximum number of outstanding RDMA read/Atomic per QP as a responder */
pseudo_bit_treserved16[0x0000a];
pseudo_bit_tlog_max_ra_req_qp[0x00006];/* Log2 of the maximum number of outstanding RDMA read/Atomic per QP as a requester */
pseudo_bit_treserved17[0x0000a];
/* -------------- */
pseudo_bit_tlog_max_ra_res_global[0x00006];/* Log2 of the maximum number of RDMA read/atomic operations the HCA responder can support globally. That implies the RDB table size. */
pseudo_bit_treserved18[0x00016];
pseudo_bit_tlog2_rsvd_rdbs[0x00004];/* Log (base 2) of the number of RDB entries reserved for firmware use
pseudo_bit_tmax_icm_size_h[0x00020];/* Bits [63:32] of maximum ICM size InfiniHost III Ex support in bytes. */
/* -------------- */
pseudo_bit_tmax_icm_size_l[0x00020];/* Bits [31:0] of maximum ICM size InfiniHost III Ex support in bytes. */
/* -------------- */
pseudo_bit_treserved41[0x002c0];
/* -------------- */
};
/* QUERY_ADAPTER Parameters Block */
structarbelprm_query_adapter_st{/* Little Endian */
pseudo_bit_treserved0[0x00080];
/* -------------- */
pseudo_bit_treserved1[0x00018];
pseudo_bit_tintapin[0x00008];/* Driver should set this field to INTR value in the event queue in order to get Express interrupt messages. */
/* -------------- */
pseudo_bit_treserved2[0x00060];
/* -------------- */
structarbelprm_vsd_stvsd;
/* -------------- */
};
/* QUERY_FW Parameters Block */
structarbelprm_query_fw_st{/* Little Endian */
pseudo_bit_tfw_rev_major[0x00010];/* Firmware Revision - Major */
pseudo_bit_tfw_pages[0x00010];/* Amount of physical memory to be allocated for FW usage is in 4KByte pages. */
/* -------------- */
pseudo_bit_tfw_rev_minor[0x00010];/* Firmware Revision - Minor */
pseudo_bit_tfw_rev_subminor[0x00010];/* Firmware Sub-minor version (Patch level). */
/* -------------- */
pseudo_bit_tcmd_interface_rev[0x00010];/* Command Interface Interpreter Revision ID */
pseudo_bit_treserved0[0x0000e];
pseudo_bit_twqe_h_mode[0x00001];/* Hermon mode. If '1', then WQE and AV format is the advanced format */
pseudo_bit_tzb_wq_cq[0x00001];/* If '1', then ZB mode of WQ and CQ are enabled (i.e. real Memfree PRM is supported) */
/* -------------- */
pseudo_bit_tlog_max_outstanding_cmd[0x00008];/* Log2 of the maximum number of commands the HCR can support simultaneously */
pseudo_bit_treserved1[0x00017];
pseudo_bit_tdt[0x00001];/* Debug Trace Support
0-Debugtraceisnotsupported
1-Debugtraceissupported*/
/* -------------- */
pseudo_bit_tcmd_interface_db[0x00001];/* Set if the device accepts commands by means of special doorbells */
pseudo_bit_treserved2[0x0001f];
/* -------------- */
pseudo_bit_treserved3[0x00060];
/* -------------- */
pseudo_bit_tclr_int_base_addr_h[0x00020];/* Bits [63:32] of Clear interrupt register physical address.
Pointsto64bitregister.*/
/* -------------- */
pseudo_bit_tclr_int_base_addr_l[0x00020];/* Bits [31:0] of Clear interrupt register physical address.
Pointsto64bitregister.*/
/* -------------- */
pseudo_bit_treserved4[0x00040];
/* -------------- */
pseudo_bit_terror_buf_start_h[0x00020];/* Read Only buffer for catastrophic error reports (physical address) */
/* -------------- */
pseudo_bit_terror_buf_start_l[0x00020];/* Read Only buffer for catastrophic error reports (physical address) */
/* -------------- */
pseudo_bit_terror_buf_size[0x00020];/* Size in words */
/* -------------- */
pseudo_bit_treserved5[0x00020];
/* -------------- */
pseudo_bit_teq_arm_base_addr_h[0x00020];/* Bits [63:32] of EQ Arm DBs physical address.
Pointsto64bitregister.
Settingbitxintheoffset,armsEQnumberx.
*/
/* -------------- */
pseudo_bit_teq_arm_base_addr_l[0x00020];/* Bits [31:0] of EQ Arm DBs physical address.
Pointsto64bitregister.
Settingbitxintheoffset,armsEQnumberx.*/
/* -------------- */
pseudo_bit_teq_set_ci_base_addr_h[0x00020];/* Bits [63:32] of EQ Set CI DBs Table physical address.
PointstoatheEQSetCIDBsTablebaseaddress.*/
/* -------------- */
pseudo_bit_teq_set_ci_base_addr_l[0x00020];/* Bits [31:0] of EQ Set CI DBs Table physical address.
PointstoatheEQSetCIDBsTablebaseaddress.*/
/* -------------- */
pseudo_bit_tcmd_db_dw1[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 1 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
pseudo_bit_tcmd_db_dw0[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 0 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
/* -------------- */
pseudo_bit_tcmd_db_dw3[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 3 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
pseudo_bit_tcmd_db_dw2[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 2 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
/* -------------- */
pseudo_bit_tcmd_db_dw5[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 5 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
pseudo_bit_tcmd_db_dw4[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 4 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
/* -------------- */
pseudo_bit_tcmd_db_dw7[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 7 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
pseudo_bit_tcmd_db_dw6[0x00010];/* offset in bytes from cmd_db_addr_base where DWord 6 of a Command Interface Doorbell should be written. Valid only if CmdInterfaceDb bit is '1' */
/* -------------- */
pseudo_bit_tcmd_db_addr_base_h[0x00020];/* High bits of cmd_db_addr_base, which cmd_db_dw offsets refer to. Valid only if CmdInterfaceDb bit is '1' */
/* -------------- */
pseudo_bit_tcmd_db_addr_base_l[0x00020];/* Low bits of cmd_db_addr_base, which cmd_db_dw offsets refer to. Valid only if CmdInterfaceDb bit is '1' */
pseudo_bit_thca_core_clock[0x00008];/* Internal Clock Period (in units of 1/16 ns) (QUERY_HCA only) */
/* -------------- */
pseudo_bit_treserved2[0x00008];
pseudo_bit_trouter_qp[0x00010];/* Upper 16 bit to be used as a QP number for router mode. Low order 8 bits are taken from the TClass field of the incoming packet.
pseudo_bit_tresponder_exu[0x00004];/* Indicate the relation between the execution enegines allocation dedicated for responder versus the engines dedicated for reqvester .
pseudo_bit_tpd[0x00018];/* PD to be used to access EQ */
pseudo_bit_treserved7[0x00008];
/* -------------- */
pseudo_bit_tlkey[0x00020];/* Memory key (L-Key) to be used to access EQ */
/* -------------- */
pseudo_bit_treserved8[0x00040];
/* -------------- */
pseudo_bit_tconsumer_indx[0x00020];/* Contains next entry to be read upon polling the event queue.
MustbeinitalizedtozerowhileopeningEQ*/
/* -------------- */
pseudo_bit_tproducer_indx[0x00020];/* Contains next entry in EQ to be written by the HCA.
MustbeinitalizedtozerowhileopeningEQ.*/
/* -------------- */
pseudo_bit_treserved9[0x00080];
/* -------------- */
};
/* Memory Translation Table (MTT) Entry */
structarbelprm_mtt_st{/* Little Endian */
pseudo_bit_tptag_h[0x00020];/* High-order bits of physical tag. The size of the field depends on the page size of the region. Maximum PTAG size is 52 bits. */
/* -------------- */
pseudo_bit_tp[0x00001];/* Present bit. If set, page entry is valid. If cleared, access to this page will generate non-present page access fault. */
pseudo_bit_treserved0[0x0000b];
pseudo_bit_tptag_l[0x00014];/* Low-order bits of Physical tag. The size of the field depends on the page size of the region. Maximum PTAG size is 52 bits. */
/* -------------- */
};
/* Memory Protection Table (MPT) Entry */
structarbelprm_mpt_st{/* Little Endian */
pseudo_bit_treserved0[0x00008];
pseudo_bit_tr_w[0x00001];/* Defines whether this entry is Region (1) or Window (0) */
pseudo_bit_tpa[0x00001];/* Physical address. If set, no virtual-to-physical address translation will be performed for this region */
pseudo_bit_tlr[0x00001];/* If set - local read access enabled */
pseudo_bit_tlw[0x00001];/* If set - local write access enabled */
pseudo_bit_trr[0x00001];/* If set - remote read access enabled. */
pseudo_bit_trw[0x00001];/* If set - remote write access enabled */
pseudo_bit_ta[0x00001];/* If set - remote Atomic access is enabled */
pseudo_bit_teb[0x00001];/* If set - Bind is enabled. Valid for region entry only. */
pseudo_bit_treserved1[0x0000c];
pseudo_bit_tstatus[0x00004];/* Region/Window Status
pseudo_bit_tstatus[0x00010];/* PCI Status Register */
/* -------------- */
pseudo_bit_trevision_id[0x00008];
pseudo_bit_tclass_code_hca_class_code[0x00018];
/* -------------- */
pseudo_bit_tcache_line_size[0x00008];/* Cache Line Size */
pseudo_bit_tlatency_timer[0x00008];
pseudo_bit_theader_type[0x00008];/* hardwired to zero */
pseudo_bit_tbist[0x00008];
/* -------------- */
pseudo_bit_tbar0_ctrl[0x00004];/* hard-wired to 0100 */
pseudo_bit_treserved0[0x00010];
pseudo_bit_tbar0_l[0x0000c];/* Lower bits of BAR0 (Device Configuration Space) */
/* -------------- */
pseudo_bit_tbar0_h[0x00020];/* Upper 32 bits of BAR0 (Device Configuration Space) */
/* -------------- */
pseudo_bit_tbar1_ctrl[0x00004];/* Hardwired to 1100 */
pseudo_bit_treserved1[0x00010];
pseudo_bit_tbar1_l[0x0000c];/* Lower bits of BAR1 (User Access Region - UAR - space) */
/* -------------- */
pseudo_bit_tbar1_h[0x00020];/* upper 32 bits of BAR1 (User Access Region - UAR - space) */
/* -------------- */
pseudo_bit_tbar2_ctrl[0x00004];/* Hardwired to 1100 */
pseudo_bit_treserved2[0x00010];
pseudo_bit_tbar2_l[0x0000c];/* Lower bits of BAR2 - Local Attached Memory if present and enabled. Else zeroed. */
/* -------------- */
pseudo_bit_tbar2_h[0x00020];/* Upper 32 bits of BAR2 - Local Attached Memory if present and enabled. Else zeroed. */
/* -------------- */
pseudo_bit_tcardbus_cis_pointer[0x00020];
/* -------------- */
pseudo_bit_tsubsystem_vendor_id[0x00010];/* Specified by the device NVMEM configuration */
pseudo_bit_tsubsystem_id[0x00010];/* Specified by the device NVMEM configuration */
/* -------------- */
pseudo_bit_texpansion_rom_enable[0x00001];/* Expansion ROM Enable. Hardwired to 0 if expansion ROM is disabled in the device NVMEM configuration. */
pseudo_bit_treserved3[0x0000a];
pseudo_bit_texpansion_rom_base_address[0x00015];/* Expansion ROM Base Address (upper 21 bit). Hardwired to 0 if expansion ROM is disabled in the device NVMEM configuration. */
/* -------------- */
pseudo_bit_tcapabilities_pointer[0x00008];/* Specified by the device NVMEM configuration */
pseudo_bit_treserved4[0x00018];
/* -------------- */
pseudo_bit_treserved5[0x00020];
/* -------------- */
pseudo_bit_tinterrupt_line[0x00008];
pseudo_bit_tinterrupt_pin[0x00008];
pseudo_bit_tmin_gnt[0x00008];
pseudo_bit_tmax_latency[0x00008];
/* -------------- */
pseudo_bit_treserved6[0x00100];
/* -------------- */
pseudo_bit_tmsi_cap_id[0x00008];
pseudo_bit_tmsi_next_cap_ptr[0x00008];
pseudo_bit_tmsi_en[0x00001];
pseudo_bit_tmultiple_msg_cap[0x00003];
pseudo_bit_tmultiple_msg_en[0x00003];
pseudo_bit_tcap_64_bit_addr[0x00001];
pseudo_bit_treserved7[0x00008];
/* -------------- */
pseudo_bit_tmsg_addr_l[0x00020];
/* -------------- */
pseudo_bit_tmsg_addr_h[0x00020];
/* -------------- */
pseudo_bit_tmsg_data[0x00010];
pseudo_bit_treserved8[0x00010];
/* -------------- */
pseudo_bit_treserved9[0x00080];
/* -------------- */
pseudo_bit_tpm_cap_id[0x00008];/* Power management capability ID - 01h */
pseudo_bit_tpm_next_cap_ptr[0x00008];
pseudo_bit_tpm_cap[0x00010];/* [2:0] Version - 02h
[3]PMEclock-0h
[4]RsvP
[5]Devicespecificinitialization-0h
[8:6]AUXcurrent-0h
[9]D1support-0h
[10]D2support-0h
[15:11]PMEsupport-0h*/
/* -------------- */
pseudo_bit_tpm_status_control[0x00010];/* [14:13] - Data scale - 0h */
pseudo_bit_tpm_control_status_brdg_ext[0x00008];
pseudo_bit_tdata[0x00008];
/* -------------- */
pseudo_bit_treserved10[0x00040];
/* -------------- */
pseudo_bit_tvpd_cap_id[0x00008];/* 03h */
pseudo_bit_tvpd_next_cap_id[0x00008];
pseudo_bit_tvpd_address[0x0000f];
pseudo_bit_tf[0x00001];
/* -------------- */
pseudo_bit_tvpd_data[0x00020];
/* -------------- */
pseudo_bit_treserved11[0x00040];
/* -------------- */
pseudo_bit_tpciex_cap_id[0x00008];/* PCI-Express capability ID - 10h */
pseudo_bit_tpciex_next_cap_ptr[0x00008];
pseudo_bit_tpciex_cap[0x00010];/* [3:0] Capability version - 1h
structarbelprm_page_fault_event_data_st{/* Little Endian */
pseudo_bit_tva_h[0x00020];/* Virtual Address[63:32] this page fault is reported on */
/* -------------- */
pseudo_bit_tva_l[0x00020];/* Virtual Address[63:32] this page fault is reported on */
/* -------------- */
pseudo_bit_tmem_key[0x00020];/* Memory Key this page fault is reported on */
/* -------------- */
pseudo_bit_tqp[0x00018];/* QP this page fault is reported on */
pseudo_bit_treserved0[0x00003];
pseudo_bit_ta[0x00001];/* If set the memory access that caused the page fault was atomic */
pseudo_bit_tlw[0x00001];/* If set the memory access that caused the page fault was local write */
pseudo_bit_tlr[0x00001];/* If set the memory access that caused the page fault was local read */
pseudo_bit_trw[0x00001];/* If set the memory access that caused the page fault was remote write */
pseudo_bit_trr[0x00001];/* If set the memory access that caused the page fault was remote read */
/* -------------- */
pseudo_bit_tpd[0x00018];/* PD this page fault is reported on */
pseudo_bit_treserved1[0x00008];
/* -------------- */
pseudo_bit_tprefetch_len[0x00020];/* Indicates how many subsequent pages in the same memory region/window will be accessed by the following transaction after this page fault is resolved. measured in bytes. SW can use this information in order to page-in the subsequent pages if they are not present. */
/* -------------- */
};
/* WQE segments format */
structarbelprm_wqe_segment_st{/* Little Endian */
structarbelprm_send_wqe_segment_stsend_wqe_segment;/* Send WQE segment format */
/* -------------- */
pseudo_bit_treserved0[0x00280];
/* -------------- */
structarbelprm_wqe_segment_ctrl_mlx_stmlx_wqe_segment_ctrl;/* MLX WQE segment format */
/* -------------- */
pseudo_bit_treserved1[0x00100];
/* -------------- */
structarbelprm_wqe_segment_ctrl_recv_strecv_wqe_segment_ctrl;/* Receive segment format */
/* -------------- */
pseudo_bit_treserved2[0x00080];
/* -------------- */
};
/* Event_data Field - Port State Change */
structarbelprm_port_state_change_st{/* Little Endian */
pseudo_bit_treserved0[0x00040];
/* -------------- */
pseudo_bit_treserved1[0x0001c];
pseudo_bit_tp[0x00002];/* Port number (1 or 2) */
pseudo_bit_treserved2[0x00002];
/* -------------- */
pseudo_bit_treserved3[0x00060];
/* -------------- */
};
/* Event_data Field - Completion Queue Error */
structarbelprm_completion_queue_error_st{/* Little Endian */
pseudo_bit_tcqn[0x00018];/* CQ number event is reported for */
pseudo_bit_treserved0[0x00008];
/* -------------- */
pseudo_bit_treserved1[0x00020];
/* -------------- */
pseudo_bit_tsyndrome[0x00008];/* Error syndrome
0x01-CQoverrun
0x02-CQaccessviolationerror*/
pseudo_bit_treserved2[0x00018];
/* -------------- */
pseudo_bit_treserved3[0x00060];
/* -------------- */
};
/* Event_data Field - Completion Event */
structarbelprm_completion_event_st{/* Little Endian */
pseudo_bit_tcqn[0x00018];/* CQ number event is reported for */
pseudo_bit_treserved0[0x00008];
/* -------------- */
pseudo_bit_treserved1[0x000a0];
/* -------------- */
};
/* Event Queue Entry */
structarbelprm_event_queue_entry_st{/* Little Endian */
pseudo_bit_tevent_sub_type[0x00008];/* Event Sub Type.
pseudo_bit_tevent_data[6][0x00020];/* Delivers auxilary data to handle event. */
/* -------------- */
pseudo_bit_treserved2[0x00007];
pseudo_bit_towner[0x00001];/* Owner of the entry
0SW
1HW*/
pseudo_bit_treserved3[0x00018];
/* -------------- */
};
/* QP/EE State Transitions Command Parameters */
structarbelprm_qp_ee_state_transitions_st{/* Little Endian */
pseudo_bit_topt_param_mask[0x00020];/* This field defines which optional parameters are passed. Each bit specifies whether optional parameter is passed (set) or not (cleared). The optparammask is defined for each QP/EE command. */
/* -------------- */
pseudo_bit_treserved0[0x00020];
/* -------------- */
structarbelprm_queue_pair_ee_context_entry_stqpc_eec_data;/* QPC/EEC data */
/* -------------- */
pseudo_bit_treserved1[0x009c0];
/* -------------- */
};
/* Completion Queue Entry Format */
structarbelprm_completion_queue_entry_st{/* Little Endian */
pseudo_bit_tmy_qpn[0x00018];/* Indicates the QP for which completion is being reported */
pseudo_bit_treserved0[0x00004];
pseudo_bit_tver[0x00004];/* CQE version.
0forInfiniHost-III-EX*/
/* -------------- */
pseudo_bit_tmy_ee[0x00018];/* EE context (for RD only).
pseudo_bit_tchecksum_15_8[0x00008];/* Checksum[15:8] - See IPoverIB checksum offloading chapter */
/* -------------- */
pseudo_bit_trqpn[0x00018];/* Remote (source) QP number. Valid in Responder CQE only for Datagram QP. */
pseudo_bit_tchecksum_7_0[0x00008];/* Checksum[7:0] - See IPoverIB checksum offloading chapter */
/* -------------- */
pseudo_bit_trlid[0x00010];/* Remote (source) LID of the message. Valid in Responder of UD QP CQE only. */
pseudo_bit_tml_path[0x00007];/* My (destination) LID path bits - these are the lowemost LMC bits of the DLID in an incoming UD packet, higher bits of this field, that are not part of the LMC bits are zeroed by HW.
pseudo_bit_terr_ba[0x00002];/* Error bank address */
pseudo_bit_treserved3[0x00011];
pseudo_bit_toverflow[0x00001];/* Fatal: ECC error FIFO overflow - ECC errors were detected, which may or may not have been corrected by InfiniHost-III-EX */