An apparatus comprising: a controller; and a command queue (704, 802) to buffer incoming write requests into the apparatus; the controller configured to: receive, from a client across a link, a non-posted write request in a transaction layer packet, TLP, to the command queue; determine whether the command queue (704, 802) can accept the non-posted write request, or whether the command queue (704, 802) is full; generate a completion message; if the command queue (704, 802) can accept the non-posted write request, set a bit in a completion status field of the completion message to a value that indicates a successful completion, SC, the SC indicating that the non-posted write request was accepted into the command queue (704, 802), and if the command queue (704, 802) is full, set a bit in the completion status field of the completion message to a value that indicates a memory request retry status, MRS, that indicates that the command queue (704, 802) is full; and transmit, to the client across the link, the completion message, wherein the non-posted write request comprises a deferred memory write, DMWr, request message, the apparatus is to choose to carry out the DMWr request by transmitting the completion message with the SC or defer the DMWr request by transmitting the completion message with the MRS; and wherein the TLP comprises a type field that indicates that the non-posted write request is a DMWr request, characterized in that if DMWr egress blocking is enabled for a port receiving the DMWr request message, the port is to handle the DMWr request as a DMWr egress blocked error and transmit the completion message that comprises a status of unsupported request status identifier. a controller; and a command queue (704, 802) to buffer incoming write requests into the apparatus; the controller configured to: receive, from a client across a link, a non-posted write request in a transaction layer packet, TLP, to the command queue; determine whether the command queue (704, 802) can accept the non-posted write request, or whether the command queue (704, 802) is full; generate a completion message; if the command queue (704, 802) can accept the non-posted write request, set a bit in a completion status field of the completion message to a value that indicates a successful completion, SC, the SC indicating that the non-posted write request was accepted into the command queue (704, 802), and if the command queue (704, 802) is full, set a bit in the completion status field of the completion message to a value that indicates a memory request retry status, MRS, that indicates that the command queue (704, 802) is full; and transmit, to the client across the link, the completion message, receive, from a client across a link, a non-posted write request in a transaction layer packet, TLP, to the command queue; determine whether the command queue (704, 802) can accept the non-posted write request, or whether the command queue (704, 802) is full; generate a completion message; if the command queue (704, 802) can accept the non-posted write request, set a bit in a completion status field of the completion message to a value that indicates a successful completion, SC, the SC indicating that the non-posted write request was accepted into the command queue (704, 802), and if the command queue (704, 802) is full, set a bit in the completion status field of the completion message to a value that indicates a memory request retry status, MRS, that indicates that the command queue (704, 802) is full; and transmit, to the client across the link, the completion message, wherein the non-posted write request comprises a deferred memory write, DMWr, request message, the apparatus is to choose to carry out the DMWr request by transmitting the completion message with the SC or defer the DMWr request by transmitting the completion message with the MRS; and wherein the TLP comprises a type field that indicates that the non-posted write request is a DMWr request, characterized in that if DMWr egress blocking is enabled for a port receiving the DMWr request message, the port is to handle the DMWr request as a DMWr egress blocked error and transmit the completion message that comprises a status of unsupported request status identifier.