US 12,229,048 B2
Mechanism to enable out-of-order packet processing in a datatype engine
Keith D. Underwood, Powell, TN (US); Robert L. Alverson, Seattle, WA (US); and Christopher M. Brueggen, Allen, TX (US)
Assigned to Hewlett Packard Enterprise Development LP, Spring, TX (US)
Filed by Hewlett Packard Enterprise Development LP, Spring, TX (US)
Filed on Dec. 20, 2022, as Appl. No. 18/085,092.
Prior Publication US 2024/0202118 A1, Jun. 20, 2024
Int. Cl. G06F 12/0802 (2016.01); G06F 5/06 (2006.01); G06F 13/28 (2006.01)
CPC G06F 12/0802 (2013.01) [G06F 5/06 (2013.01); G06F 13/28 (2013.01); G06F 2212/1016 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method executed by one or more processing elements, comprising:
receiving, by a network interface card (NIC), a plurality of packets corresponding to a read request or a write request, wherein the packets are associated with a datatype descriptor stored in a datatype engine of the NIC,
wherein each packet is associated with a precomputed context which indicates a value for each dimension of a multi-dimensional array and a start location of the respective packet within a block of a host memory,
wherein the datatype descriptor comprises at least one of:
a representation of the multi-dimensional array which includes a number of elements in each dimension, a size of a block to be transferred, and a stride in each dimension, wherein the representation of the multi-dimensional array indicates a handle to a previous datatype and a name for a new datatype; or
a reference to an input/output vector (IOVEC) which indicates addresses and lengths of data to be read from or written to the host memory;
generating, for a respective packet, a datatype handle corresponding to the datatype descriptor and an offset indicating a position of the respective packet within the plurality of packets;
determining, based on the datatype handle and the offset, that a context for the respective packet is cached;
initializing the datatype engine based on the cached context;
generating, by the datatype engine based on the precomputed and cached context, a plurality of read requests or write requests comprising addresses and lengths, thereby allowing the NIC to process out-of-order packets based on the precomputed and cached context; and
caching a current context when processing for the respective packet is complete.