US 12,224,945 B2
Accelerated network packet classifier
Matthew Ian Ronald Williams, London (GB)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by MICROSOFT TECHNOLOGY LICENSING, LLC, Redmond, WA (US)
Filed on Apr. 24, 2023, as Appl. No. 18/138,690.
Prior Publication US 2024/0356857 A1, Oct. 24, 2024
Int. Cl. H04L 47/2441 (2022.01); H04L 47/20 (2022.01)
CPC H04L 47/2441 (2013.01) [H04L 47/20 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for processing network packets by a packet processing function in a computing device operating in a computing network environment, the packet processing function executing a packet classifier configured to classify network packets based on features grouped into feature types corresponding to header fields of the network packets, the computing device having a processor associated with a register and instruction set, the method comprising:
receiving a network packet comprising a plurality of data fields, each of the data fields encoding a value;
receiving a rule set containing a plurality of rules, each of the rules defining a target data field and a target range comprising a minimum value for the target data field and a maximum value for the target data field;
loading the rule set into the register of the processor, wherein the plurality of rules of the rule set are configured to fit within a size of the register;
using the associated instruction set to apply the rule set to the network packet by:
for a given rule of the rule set:
extracting one of the data fields from the network packet that matches a target data field corresponding to the given rule;
performing a first comparison of a corresponding value encoded by the extracted data field to a minimum value for the matching target data field;
performing a second comparison of the corresponding value encoded by the extracted data field to a maximum value for the matching target data field; and
determining, based on the first and second comparison, that the value encoded by the extracted data field is within the target range of the given rule of the rule set; and
in response to determining that the value encoded by the extracted data field is within the target range of the given rule of the rule set, executing an action on the network packet based on the given rule of the rule set, wherein the plurality of rules of the rule set are applied to the network packet as an atomic process in the processor to enable parallel application of the rule set to the network packet.