9923997

Systems and Methods for Packet Classification

PublishedMarch 20, 2018
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
19 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for packet classification, the method comprising: instantiating a first machine for executing instructions, wherein the first machine is operable to provide a first amount of computing power for use by one or more software elements that require computing power and the first machine comprises a first packet buffer for storing packets; allocating to the first machine a first sub-classifier (SC) comprising a first set of instructions, wherein the first machine is configured to execute the first set of instructions, the first set of instructions being configured to cause the first machine to classify a packet based on information contained in a field of a header included in the packet, and the first SC being configured to require not more than a second amount of computing power, wherein the second amount of computing power is not greater than the first amount of computing power; instantiating a second machine for executing instructions, wherein the second machine is operable to provide a third amount of computing power for use by one or more software elements that require computing power and the second machine comprises a second packet buffer for storing packets; installing on the second machine a second SC comprising a second set of instructions for execution by the second machine, the second set of instructions being configured to cause the second machine to classify a packet based on information contained in a field of a header included in the packet; detecting that the first machine is in an overload state; and as a direct result of detecting that the first machine is in an overload state, instantiating a third machine comprising a third packet buffer for storing packets and a third SC, the third SC being configured to cause the third machine to classify a packet based on information contained in a field of a header included in the packet, wherein detecting that the first machine is in an overload state comprises at least one of: i) detecting that the first machine is dropping packets and ii) detecting that the number of packets stored in the first packet buffer within the first machine has reached a threshold, the method further comprises instantiating a traffic load balancer in response to detecting that the first machine is in an overload state, the traffic load balancer is configured such that, in response to receiving a network packet, the traffic load balancer i) uses a load balancing method to select one of the first machine and the third machine and ii) forward the network packet to the selected machine, thereby balancing network traffic between the first machine and the third machine, and the third SC allocated to the third machine is a copy of the first SC.

2

2. The method of claim 1 , further comprising: the first machine receiving a packet; the first SC processing the packet, wherein the processing comprises classifying the packet and decorating the packet to create a decorated packet; and the first SC providing the decorated packet to the second SC, wherein decorating the packet to create a decorated packet comprises adding to the packet meta-data comprising information identifying a protocol to which a header of the packet conforms.

3

3. The method of claim 1 , wherein the third SC allocated to the third machine is a copy of the first SC.

4

4. The method of claim 1 , wherein the first SC comprises a fourth SC and a fifth SC, the third SC allocated to the third machine is a copy of the fifth SC, and the method further comprises de-allocating the fifth SC from the first machine in response to detecting that the first machine is in an overload state.

5

5. The method of claim 1 , wherein the first machine separate and distinct from the second machine, the first machine is a first virtual machine, the second machine is a second virtual machine, and the third machine is a third virtual machine that is separate and distinct from the first and second virtual machines.

6

6. The method of claim 1 , wherein the first machine is separate and distinct from the second machine, the first machine is one of a switch, router, and general purpose computer, and the second machine is one of a switch, router, and general purpose computer.

7

7. The method of claim 1 , further comprising, in response to detecting that the first machine is in an overload state, updating configuration data used by an upstream SC that is upstream with respect to the first SC, wherein the configuration data is used by the upstream SC for routing packets to downstream SCs.

8

8. A controller for packet classification, the controller being adapted to: instantiate a first machine for executing instructions, wherein the first machine is operable to provide a first amount of computing power for use by one or more software elements that require computing power, and wherein the first machine comprises a first packet buffer for storing packets and a first sub-classifier (SC) comprising a first set of instructions for execution by the first machine, the first set of instructions being configured to cause the first machine to classify a packet based on information contained in a field of a header included in the packet, and the first SC being configured to require not more than a second amount of computing power, wherein the second amount of computing power is not greater than the first amount of computing power; instantiate a second machine for executing instructions, wherein the second machine is operable to provide a third amount of computing power for use by one or more software elements that require computing power, and wherein the second machine comprises a second packet buffer for storing packets and a second sub-classifier (SC) comprising a second set of instructions for execution by the second machine, the second set of instructions being configured to cause the second machine to classify a packet based on information contained in a field of a header included in the packet, and the second SC being configured to require not more than a fourth amount of computing power, wherein the fourth amount of computing power is not greater than the third amount of computing power; and detect whether the first machine is in an overload state, wherein the first SC comprises a fourth SC and a fifth SC, the controller is further configured such that, as a direct result of detecting that the first machine is an overload state, the controller instantiates a third machine comprising a third packet buffer for storing packets and allocate a third SC to the third machine, wherein the third SC is configured to classify a packet based on information contained in a field of a header included in the packet and the third SC allocated to the third machine is a copy of the fifth SC, the controller is configured to detect that the first machine is in an overload state by performing one or both of: i) detecting that the first machine is dropping packets and ii) detecting that the number of packets stored in the first packet buffer within the first machine has reached a threshold, the controller is further configured such that, as a direct result of detecting that the first machine is an overload state, the controller reconfigures the first SC by removing the fifth SC from the first SC so that the first SC comprises the fourth SC but does not comprise the fifth SC.

9

9. The controller of claim 8 , wherein: the first machine is adapted to receive a packet; the first SC is adapted to classify the packet and decorate the packet to create a decorated packet; and the first SC is further adapted to provide the decorated packet to the second SC, wherein decorating the packet to create a decorated packet comprises adding to the packet meta-data comprising information identifying a protocol to which a header of the packet conforms.

10

10. The controller of claim 8 , wherein the third SC allocated to the third machine is a copy of the first SC.

11

11. The controller of claim 8 , wherein the controller is further adapted to: instantiate a traffic load balancer in response to detecting that the first machine is in an overload state, wherein the traffic load balancer is configured such that, in response to receiving a network packet, the traffic load balancer i) uses a load balancing method to select one of the first machine and the third machine and ii) forward the network packet to the selected machine, thereby balancing network traffic between the first machine and the third machine, and the third SC allocated to the third machine is a copy of the first SC.

12

12. The controller of claim 8 , wherein the first machine is a virtual machine.

13

13. The controller of claim 8 , wherein the first machine is one of a switch, router, and general purpose computer.

14

14. The controller of claim 8 , wherein the controller is further adapted to update configuration data used by an upstream SC that is upstream with respect to the first SC in response to detecting that the first machine is in an overload state, wherein the upstream SC is adapted to use the configuration data for routing packets to downstream SCs.

15

15. A computer program product for packet classification, the computer program product comprising a non-transitory computer readable medium storing computer readable program code, the computer readable program code comprising: code for instantiating a first machine for executing instructions, wherein the first machine is operable to provide a first amount of computing power for use by one or more software elements that require computing power, and wherein the first machine comprises a first packet buffer for storing packets and a first sub-classifier (SC) comprising a first set of instructions for execution by the first machine, the first set of instructions being configured to cause the first machine to classify a packet based on information contained in a field of a header included in the packet, and the first SC being configured to require not more than a second amount of computing power, wherein the second amount of computing power is not greater than the first amount of computing power; code for instantiating a second machine for executing instructions, wherein the second machine is operable to provide a third amount of computing power for use by one or more software elements that require computing power, and wherein the second machine comprises a second packet buffer for storing packets and a second sub-classifier (SC) comprising a second set of instructions for execution by the second machine, the second set of instructions being configured to cause the second machine to classify a packet based on information contained in a field of a header included in the packet, and the second SC being configured to require not more than a fourth amount of computing power, wherein the fourth amount of computing power is not greater than the third amount of computing power; code for detecting whether the first machine is in an overload state; code for instantiating a third machine comprising a third packet buffer for storing packets; and code for allocating a third SC to the third machine in response to detecting that the first machine is in an overload state, the third SC being configured to classify a packet based on information contained in a field of a header included in the packet, wherein the first SC comprises a fourth SC and a fifth SC, the third SC allocated to the third machine consists of the fifth SC, the code for detecting that the first machine is in an overload state comprises one or both of: i) code for detecting that the first machine is dropping packets and ii) code for detecting that the number of packets stored in the first packet buffer within the first machine has reached a threshold, and the program code further comprises code for reconfiguring the first SC in response to the code for monitoring detecting that the first machine is in an overload state, wherein reconfiguring the first SC comprises removing the fifth SC from the first SC such that the first SC comprises the fourth SC but does not comprise the fifth SC.

16

16. The computer program product of claim 15 , wherein: the first machine is adapted to receive a packet; the first SC is adapted to classify the packet and decorate the packet to create a decorated packet; and the first SC is further adapted to provide the decorated packet to the second SC, wherein decorating the packet to create a decorated packet comprises adding to the packet meta-data comprising information identifying a protocol to which a header of the packet conforms.

17

17. The computer program product of claim 15 , wherein the program code further comprises: code for instantiating a traffic load balancer in response to the code for monitoring detecting that the first machine is in an overload state, wherein the traffic load balancer is configured such that, in response to receiving a network packet, the traffic load balancer i) uses a load balancing method to select one of the first machine and the third machine and ii) forward the network packet to the selected machine, thereby balancing network traffic between the first machine and the third machine, and the third SC allocated to the third machine is a copy of the first SC.

18

18. A method for packet classification, the method comprising: instantiating a first machine for use in a packet classification system; instantiating a second machine for use in the packet classification system; the first machine receiving a first packet comprising a first header of a first type, a second header of a second type, and a payload; the first machine classifying the first packet based solely on information included in the first header of the first packet; the first machine, after classifying the first packet, providing to the second machine at least a portion of the first packet, said portion of the first packet comprising the second header and the payload; the second machine receiving said at least a portion of the packet and classifying said at least a portion of the packet based on information included in the second header; detecting that the first machine is in an overload state; in response to detecting that the first machine is in an overload state, instantiating a traffic load balancer and a third machine for use in the packet classification system, said traffic load balancer being configured such that, in response to receiving a network packet, the traffic load balancer i) uses a load balancing method to select one of the first machine and the third machine and ii) forward the network packet to the selected machine, thereby balancing network traffic between the first machine and the third machine; after instantiating the traffic load balancer and the third machine for use in the packet classification system, the traffic load balancer receiving a second packet comprising a first header of the first type; the traffic load balancer, in response to receiving the second packet, choosing one of the first machine and the third machine; after choosing one of the first and third machines, the traffic load balancer sending the second packet to the chosen machine; the chosen machine classifying the second packet based on information included in the first header of the second packet; and the chosen machine, after classifying the second packet, providing to the second machine at least a portion of the second packet.

19

19. A method for packet classification, the method comprising: instantiating a first machine for use in a packet classification system; instantiating a second machine for use in the packet classification system; the first machine receiving a first packet comprising a first header of a first type, a second header of a second type, and a payload; the first machine generating meta-data for the first packet based on information included in the first header of the first packet, wherein the first machine is configured to provide to the second machine the meta-data and at least a portion of the first packet regardless of the information included in the first header of the first packet; the first machine, after generating the meta-data for the first packet, providing to the second machine the meta-data and at least a portion of the first packet, said portion of the first packet comprising the second header and the payload; detecting that the second machine is in an overload state; in response to detecting that the second machine is in an overload state, instantiating a third machine for use in the packet classification system and reconfiguring the first machine such that the first machine is configured to choose between the second machine and the third machine based on information contained in a first header of a packet; after instantiating the third machine for use in the packet classification system, the reconfigured first machine receiving a second packet comprising a first header of the first type and a second header of the second type, wherein the reconfigured first machine is reconfigured to choose between the second machine and the third machine based on information contained in the first header of the second packet; the reconfigured first machine obtaining the information included in the first header of the second packet; the reconfigured first machine, after obtaining the information from the first header of the second packet, selecting a destination for the second packet based on the information obtained from the first header of the second packet, wherein selecting the destination comprises choosing one of the second machine and the third machine based on the information obtained from the first header of the second packet; and the reconfigured first machine providing to the selected destination at least a portion of the second packet, said portion of the second packet comprising the second header and the payload of the second packet.

Patent Metadata

Filing Date

Unknown

Publication Date

March 20, 2018

Inventors

Sten PETTERSSON
Per ANDERSSON
Anders FRANZEN
Tarik HAMMAM
Bengt JOHANSSON
Jon MALOY
Tord NILSSON
Richard TREMBLAY
Abdallah CHATILA

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEMS AND METHODS FOR PACKET CLASSIFICATION” (9923997). https://patentable.app/patents/9923997

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

SYSTEMS AND METHODS FOR PACKET CLASSIFICATION — Sten PETTERSSON | Patentable