Patent ID: 7580406

Claim:
A method, comprising: generating by a network controller, a segment in accordance with a Transmission Control Protocol (TCP) protocol; and transmitting said TCP segment over a network; wherein said TCP segment generating includes: locating and reading a Remote Direct Memory Access (RDMA) connection context data structure in accordance with an RDMA over TCP protocol; generating for said TCP segment, a TCP header in accordance with said RDMA connection context data structure; and generating for said TCP segment, a TCP segment payload, said payload generating including generating by said network controller an RDMA message context data structure in accordance with an RDMA protocol, locating RDMA message data, and generating by said network controller, an RDMA message segment based on said RDMA message context data structure and in accordance with the RDMA protocol and including at least a portion of said RDMA message data; wherein said RDMA message segment generating based on said RDMA message context data structure includes: reading fields of said RDMA message context data structure wherein said fields include a first field identifying the number of bytes of said RDMA message data remaining to be transmitted and a second field identifying a maximum RDMA message segment size; determining based on said first and second fields, the size of said RDMA message segment; and determining whether the byte locations of a marker in accordance with said RDMA protocol overlap byte locations of said TCP segment reserved for cyclic redundancy check (CRC) bytes in accordance with a protocol, and if so, reducing a maximum number of RDMA message bytes of said RDMA message segment to eliminate said overlap.