US 11,985,067 B2
Flowlet switching using memory instructions
Brian Alleyne, Los Gatos, CA (US); Mimi Dannhardt, Vienna, VA (US); Evan Gewirtz, Pleasanton, CA (US); Hengwei Hsu, Fremont, CA (US); Alexander Shechter, Rancho Palos Verdes, CA (US); Sakthi Subramanian, San Jose, CA (US); and Mohamed Abdul Malick Mohamed Usman, Fremont, CA (US)
Assigned to Nokia Solutions and Networks Oy, Espoo (FI)
Filed by NOKIA SOLUTIONS AND NETWORKS OY, Espoo (FI)
Filed on Dec. 10, 2021, as Appl. No. 17/548,456.
Prior Publication US 2023/0188468 A1, Jun. 15, 2023
Int. Cl. H04L 47/125 (2022.01); H04L 47/28 (2022.01); H04L 49/103 (2022.01)
CPC H04L 47/125 (2013.01) [H04L 47/28 (2013.01); H04L 49/103 (2013.01)] 25 Claims
OG exemplary drawing
 
1. A method of distributing packets over multiple paths, the method comprising:
receiving a packet at a processing thread;
performing a lookup function for the packet to determine a selected path among the plurality of paths to which the packet is to be transmitted;
performing a hash function for the packet to determine a flow record address for the packet;
issuing a memory instruction to a memory controller, the memory instruction including the flow record address and a path value indicating the selected path;
obtaining a current time associated with the packet;
accessing a flow record according to the flow record address to retrieve a timestamp of a previous packet;
determining an elapsed time between the packet and the previous packet based on a difference between the current time and the timestamp; and
determining, based on a comparison of the elapsed time and an inter-packet gap threshold, whether to transmit the packet over the selected path or a previously selected path associated with the previous packet.