US 11,799,785 B2
Hardware-based packet flow processing
Gerald Roy Degrace, Atlanta, GA (US); Deepak Bansal, Bellevue, WA (US); Rishabh Tewari, Sammamish, WA (US); Michal Czeslaw Zygmunt, Bellevue, WA (US); Deven Jagasia, Kirkland, WA (US); and Lihua Yuan, Redmond, WA (US)
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed by MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed on May 31, 2021, as Appl. No. 17/334,997.
Claims priority of provisional application 63/173,352, filed on Apr. 9, 2021.
Claims priority of provisional application 63/173,334, filed on Apr. 9, 2021.
Claims priority of provisional application 63/173,348, filed on Apr. 9, 2021.
Claims priority of provisional application 63/173,336, filed on Apr. 9, 2021.
Prior Publication US 2022/0337526 A1, Oct. 20, 2022
Int. Cl. H04L 47/2441 (2022.01); H04L 47/125 (2022.01); H04L 47/2416 (2022.01); H04L 47/10 (2022.01)
CPC H04L 47/2441 (2013.01) [H04L 47/125 (2013.01); H04L 47/2416 (2013.01); H04L 47/29 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for processing data packets in a virtualized computing environment, the method comprising:
receiving, by a hardware-based networking device configured to disaggregate processing of data packets from hosts of the virtualized computing environment, a data packet having a source from or destination to an endpoint in a virtual network of the virtualized computing environment, wherein the hardware-based networking device comprises a hardware-based component implementing a plurality of behavioral models indicative of packet processing graphs for data flows in the virtualized computing environment that are implemented in the hardware-based component without invoking software-based processing of the data flows;
determining, by the hardware-based component, that the data packet is a first packet of a data flow to or from the endpoint;
based on the determination, mapping, by the hardware-based component, one of the behavioral models to the data flow;
modifying, by the hardware-based component, the packet in accordance with the mapped behavioral model, wherein the mapped behavioral model is processed in the hardware-based component;
storing, by the hardware-based component, a connection state of the data flow; and
processing, by the hardware-based component, subsequent data packets of the data flow based on the stored connection state.