Early direct memory access in network communications
First Claim
Patent Images
1. A method of receiving packets comprising:
- setting a first and a second precondition to indicate when to begin copying at least one packet payload from a first buffer of an offload engine to a receive buffer of a host memory;
receiving at least one packet at the offload engine from a network communication link, appending a packet payload of the at least one packet to the first buffer of the offload engine;
determining whether the first precondition has been met based, at least in part, on a state of the first buffer;
determining whether the second precondition has been met based, at least in part, on the state of the first buffer;
copying at least a portion of the first buffer of the offload engine to the receive buffer of the host memory if the first precondition has been met; and
repeating the method until the second precondition has been met.
1 Assignment
0 Petitions
Accused Products
Abstract
A network offload engine having a first buffer to store packet payloads that are received at the network offload engine until being copied to a location in a receive buffer of a host memory. An engine is programmed to copy contents of the first buffer to the location in the receive buffer of the host memory in response to meeting a first precondition. Host notification of the copy is postponed until a second precondition is met. Other embodiments are also described.
37 Citations
23 Claims
-
1. A method of receiving packets comprising:
-
setting a first and a second precondition to indicate when to begin copying at least one packet payload from a first buffer of an offload engine to a receive buffer of a host memory;
receiving at least one packet at the offload engine from a network communication link, appending a packet payload of the at least one packet to the first buffer of the offload engine;
determining whether the first precondition has been met based, at least in part, on a state of the first buffer;
determining whether the second precondition has been met based, at least in part, on the state of the first buffer;
copying at least a portion of the first buffer of the offload engine to the receive buffer of the host memory if the first precondition has been met; and
repeating the method until the second precondition has been met. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A network offload engine comprising:
-
a first interface to receive packets from a network communication link;
a first buffer to store packet payloads of at least some of the received packets;
a second interface to a host memory to copy the packet payloads that are stored in the first buffer to a receive buffer in the host memory in response to a first precondition;
logic to copy contents of the first buffer to a location in the receive buffer of the host memory in response to the first precondition being met, the logic to notify a host in response to meeting a second precondition;
a count device to offset the location in the receive buffer where the contents of the first buffer are to be copied, the offset being relative to the received packet payloads that have already been copied from the first buffer to the receive buffer. - View Dependent Claims (11, 12, 13)
-
-
14. A system comprising:
-
a host processor to host applications for receiving packets;
a host memory having a receive buffer to store packet payload data received from a network communication link communicating with the host;
an unshielded twisted pair communication link to transmit packets; and
a network offload engine to receive the packet payload data in a first buffer, the network offload engine having an engine to copy the packet payload data in the first buffer to the receive buffer of the host memory independently of notification of the host processor and in response to the first buffer meeting a first precondition, the engine to notify the host processor in response to a second precondition being met. - View Dependent Claims (15, 16)
-
-
17. An article comprising:
-
a storage medium of a network adapter comprising machine-readable instructions stored thereon to;
set a first and a second precondition to copy received packets in a first buffer of a network offload engine of the network adapter to a receive buffer at a host memory in response to, at least in part, meeting the first precondition at the network adapter;
append a packet payload to the first buffer of the offload engine;
access with an engine of the offload engine a flag that indicates whether the first precondition has been met by said appending the packet payload to the first buffer of the offload engine;
access with the engine another flag that indicates whether the second precondition has been met by the packet payload being appended to the first buffer in view of previous packet payloads that have been appended to the first buffer;
copy at least a portion of the first buffer of the offload engine to the receive buffer of the host memory in response to meeting the first precondition; and
repeat the method each time the first precondition has been met until meeting the second precondition. - View Dependent Claims (18, 19, 20)
-
-
21. A method comprising:
-
setting a first and a second precondition in a system for receiving packets;
receiving packets of a network transmission at a network offload engine of the system;
copying at least a portion of the received packets to a host buffer without notifying a host processor in response to the system meeting the first precondition;
re-setting the first precondition;
repeating the method until meeting the second precondition;
notifying the host that the second precondition has been met; and
copying any remaining of the received packets in the network offload engine to the host buffer after said notifying the host. - View Dependent Claims (22, 23)
-
Specification