US 12,255,826 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 Jan. 12, 2023, as Appl. No. 18/096,354.
Prior Publication US 2024/0244005 A1, Jul. 18, 2024
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)] 13 Claims
OG exemplary drawing
 
1. A system for adaptive generic receive offload (GRO) comprising:
a host comprising a host protocol stack and a host memory; and
a network interface card (NIC) communicatively connectable to the host, wherein the NIC is configured to:
receive a packet from a network, the packet including a header and a payload;
classify the packet into a flow from a plurality of flows based on the header and contexts associated with the plurality of flows;
move the header and the payload to separate queues associated with the flow in the host memory, without storing the packet in hardware of the NIC,
wherein the separate queues comprise a header queue and a payload queue in the host memory,
wherein the header is moved to the header queue based on a forward linked chain, and the payload is moved to the payload queue, and
wherein one or more GRO aggregations are created by the host protocol stack from payloads in the payload queue based on headers arranged in the header queue according to the forward linked chain;
receive a plurality of packets, wherein at least one packet from the plurality of packets is moved to the host memory out of order; and
recover, by the host protocol stack, a correct order of the payloads in the one or more GRO aggregations based on headers chained by the forward linked chain.