\begin{longtable}{ p{3.0cm} | p{11cm} } \caption{Explanation of abbreviations from \autoref{fig:iba_packet_format}. More details on the content of the different packets can be found in the \gls{iba} specification~\cite{infinibandvol1}.}\label{tab:packet_abbreviations} \vspace{3mm} \endfirsthead \endhead \hlineB{3} \Tstrut \textbf{Abbreviation} & \textbf{Description}\\ \hhline{=|=} \Tstrut \acrshort{lrh} & \textit{\acrlong{lrh}}: detailed information on this header is provided in a separate paragraph below. \Bstrut\\ \hline \Tstrut \acrshort{grh} & \textit{\acrlong{grh}}: detailed information on this header is provided in a separate paragraph below. \Bstrut\\ \hline \Tstrut \acrshort{bth} & \textit{\acrlong{bth}}: Every packet in the \gls{iba} contains this header. It contains fields for the \gls{iba} transport and holds, i.a., the packet type, the destination queue pair number, and the packet sequence number. \Tstrut\Bstrut\\ \hline \Tstrut \acrshortpl{eth} & \textit{\acrlongpl{eth}}: These headers are optional and are used if applicable, based on the packet type in the \acrshort{bth}\@. All following headers which end with \textit{ETH} are extended transport headers. \Bstrut\\ \hline \Tstrut \acrshort{rdeth} & \textit{\acrlong{rdeth}}: This header contains the end-to-end context, used with the reliable datagram service type. \Bstrut\\ \hline \Tstrut \acrshort{deth} & \textit{\acrlong{deth}}: This header contains the queue key and the source queue pair number for datagram transfers. \Bstrut\\ \hline \Tstrut \acrshort{reth} & \textit{\acrlong{reth}}: This header contains the virtual address, remote key, and DMA length for an \gls{rdma} operation. \Bstrut\\ \hline \Tstrut \acrshort{atomiceth} & \textit{\acrlong{atomiceth}}: This header is used for atomic operations and is similar to the \acrshort{reth}\@. Instead of a length field, it contains a swap (or add) field and a compare data field. \Bstrut\\ \hline \Tstrut \acrshort{aeth} & \textit{\acrlong{aeth}}: This header serves as acknowledge field in \gls{rdma} read response first, \gls{rdma} read response last, \gls{rdma} read response only, and acknowledge packets. \Bstrut\\ \hline \Tstrut \acrshort{atomicacketh} & \textit{\acrlong{atomicacketh}}: This header is similar to the \acrshort{aeth}, but for atomic acknowledgments. It only contains the original remote data. \Bstrut\\ \hline \Tstrut \acrshort{imm} & \textit{\acrlong{imm}}: This optional block can be used to add \SI{32}{\bit} of custom data to \textit{send} or \textit{\gls{rdma} write} packets. The containing \SI{32}{\bit} of data will be visible in the receive completion queue element. \Bstrut\\ \hline \Tstrut \acrshort{ieth} & \textit{\acrlong{ieth}}: This header contains a remote key which will be used to invalidate a remote memory region. \Tstrut\Bstrut\\ \hline \Tstrut Payload & \textit{Payload}: This is the actual payload to be sent. This field will be as big as the \gls{mtu} of the network. \Bstrut\\ \hline \Tstrut \acrshort{icrc} & \textit{\acrlong{icrc}}: This is the redundancy check for blocks that do not change during their transmission from source to destination. \newline The \gls{crc} which is used is the same as in the Ethernet standard: the CRC-32 with the polynomial \texttt{0x04C11DB7}. \Bstrut\\ \hline \Tstrut \acrshort{vcrc} & \textit{\acrlong{vcrc}}: This is the redundancy check for blocks that do change during their transmissing from source to destination. \Tstrut\\ \hlineB{3} \end{longtable}