US 12,438,820 B2
System and method for adaptive generic receive offload
Shrijeet Mukherjee, Mountain View, CA (US); Carlo Contavalli, Mountain View, CA (US); Shimon Muller, Mountain View, CA (US); Ariel Hendel, Mountain View, CA (US); Gurjeet Singh, Mountain View, CA (US); and Rochan Sankar, Mountain View, CA (US)
Assigned to Enfabrica Corporation, Mountain View, CA (US)
Filed by Enfabrica Corporation, Mountain View, CA (US)
Filed on Mar. 13, 2025, as Appl. No. 19/079,214.
Application 19/079,214 is a continuation of application No. 18/096,354, filed on Jan. 12, 2023, granted, now 12,255,826.
Prior Publication US 2025/0211539 A1, Jun. 26, 2025
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 47/2483 (2022.01); H04L 47/41 (2022.01); H04L 47/62 (2022.01); H04L 49/90 (2022.01); H04L 49/901 (2022.01)
CPC H04L 47/2483 (2013.01) [H04L 47/41 (2013.01); H04L 47/621 (2013.01); H04L 49/901 (2013.01); H04L 49/9068 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
providing a host comprising a host protocol stack and a host memory, the host memory including (i) a header queue comprising a plurality of header buffers and (ii) a payload queue comprising a plurality of payload buffers;
providing a network interface card (NIC) communicatively connected to the host;
receiving, by the NIC, a plurality of network packets, each network packet including a header and a payload;
moving, by the NIC, the header and the payload for each network packet of the plurality of packets to the header queue and the payload queue, respectively, wherein the header for each network packet is moved to a respective header buffer from the plurality of header buffers, wherein the payload for each network packet is moved to a respective payload buffer from the plurality of payload buffers, and wherein the payload for at least one network packet of the plurality of network packets is moved to the payload queue out of order;
creating, by the host and the host protocol stack, an aggregation of payloads in the payload queue; and
determining, by the host and the host protocol stack, a correct order for the payloads in the aggregation using a forward linked chain, wherein the forward linked chain comprises a plurality of pointers between header buffers in the plurality of header buffers, and wherein the plurality of pointers link the payloads in the aggregation according to the correct order.