IP Library Granted Patent US 11,423,084
Granted Patent B2
US 11,423,084 · App. 16/539,186 · Granted Aug 23, 2022

Generating packet processing graphs

Inventors: Michael Jeffrey Evans (Enfield, GB); Christian Dominic Lund (Enfield, GB)
Assignee: METASWITCH NETWORKS LTD
G06F16/9024H04L41/12H04L43/045H04L45/74H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,423,084
App. No.
16/539,186
Granted
Aug 23, 2022
Kind
B2
Abstract

A graph data structure for a packet processing system is generated. The structure comprises graph data objects representing classifier nodes of a packet processing graph. The classifier nodes include a root node and leaf nodes. The root node is connected to each of the leaf nodes through respective corresponding packet processing paths through the graph. Each graph data object includes node match data indicative of at least one match to be applied by the respective classifier node. One or more n-type match graph data objects are identified, which include node match data indicative of an n-type match corresponding to content from n header field types. One or more (n+m)-type match graph data objects are identified, which include node match data indicative of an (n+m)-type match corresponding to a combination of content from a (n+m) different header field types. n and m are integer values of 1 or more.

Claims (51)

1. A method of generating a graph data structure by a packet processing system comprising a processor and memory, the graph data structure usable by a packet data processor to process packets in a communications network, the method comprising:

obtaining, by the packet processing system, a plurality of packet processing rules comprising rule match data indicative of one or more packet header field types to be used by the packet data processor to identify a network application;

generating, by the packet processing system, a graph data structure comprising a plurality of classifier nodes, the classifier nodes including a root node and a plurality of leaf nodes, the root node being connected to the plurality of leaf nodes via packet processing paths through the graph data structure;

identifying, by the packet processing system, an (n+m)-type match graph data object which includes node match data indicative of an (n+m)-type match corresponding to a combination of (n+m) different packet header field types, wherein the node match data is derived from the plurality of packet processing rules and the (n+m)-type graph data object matches a combination of two or more packet header field types;

updating, by the packet processing system, the graph data structure to include the (n+m)-type match graph data object as an added packet processing path of the graph data structure, wherein the updating is based on the added packet processing path of the graph data structure associated with a first threshold proportion of network traffic of the communications network and having fewer nodes than at least a second processing path associated with a second threshold proportion of network traffic;

loading the generated graph data structure into a memory of the packet data processor; and

classifying, by the packet data processor, packet data in accordance with the generated graph data structure.

2. The method of claim 1 , wherein at least one of the graph data objects comprises node action data indicative of at least one action to be applied by a respective node.

3. The method of claim 2 , wherein:

the rule match data comprises rule action data indicative of one or more actions to be applied by the packet data processor to packets of an identified network application,

and wherein:

the node action data is derived from the rule action data in at least one of the packet processing rules.

4. The method of claim 1 , further comprising performing said updating on the basis of an overall graph data structure cost associated with the packet processing paths.

5. The method of claim 4 , wherein the (n+m)-type match graph data object is selected in preference to a n-type match graph data to reduce object the overall graph data structure cost.

6. The method of claim 1 , further comprising:

obtaining traffic profile data indicative of an expected proportion of network traffic originating from at least one network application; and

performing the updating on the basis of the traffic profile data.

7. The method of claim 6 , wherein each processing path comprises zero or more intermediate leaf nodes between the root node and a respective end leaf node, and wherein a processing path representing a first network application having a relatively high expected proportion of network traffic includes fewer intermediate leaf nodes than a processing path representing a second network application having a relatively low expected proportion of network traffic.

8. The method of claim 1 , comprising generating the graph data structure based on a parameter indicative of a quantity of potential matches to be processed by a classifier in the graph.

9. The method of claim 8 , wherein the parameter is indicative of a limit to a number of potential matches to be processed by a classifier in the graph, further comprising splitting the processing of a header field type in a given processing rule into a plurality of levels of nodes in the graph data structure in accordance with the parameter.

10. The method of claim 1 , wherein each of said classifier nodes comprises a match-action classifier node.

11. The method of claim 10 , wherein the graph data objects include node action data indicative of at least one action to be applied along a no-match path of a leaf node.

12. A system for generating a graph data structure for a packet processing system configured to process packets in a communications network, the system comprising:

a storage device storing thereon a plurality of packet processing rules including rule data comprising rule match data indicative of one or more packet header field types to be used by the packet processing system to identify a network application; and

a processor; wherein the storage device stores thereon computer-executable instructions that, when executed by the processor, cause the system to:

generate a graph data structure comprising a plurality of classifier nodes, the classifier nodes including a root node and a plurality of leaf nodes, the root node being connected to the plurality of leaf nodes via packet processing paths through the graph data structure;

identify a (n+m)-type match graph data object which includes node match data indicative of an (n+m)-type match corresponding to a combination of (n+m) different packet header field types, wherein the node match data is derived from the plurality of packet processing rules and the (n+m)-type graph data object matches a combination of two or more packet header field types; and

update the graph data structure to include the (n+m)-type match graph data object as an added packet processing path of the graph data structure, wherein the updating is based on the added packet processing path of the graph data structure associated with a first threshold proportion of network traffic of the communications network and having fewer nodes than at least a second processing path associated with a second threshold proportion of network traffic.

13. The system of claim 12 , wherein at least one of the graph data objects comprises node action data indicative of at least one action to be applied by a respective node.

14. The system of claim 13 , wherein:

the rule data comprises rule action data indicative of one or more actions to be applied by the packet processing system to packets of an identified network application,

and wherein:

the node action data is derived from the rule action data in at least one of the packet processing rules.

15. The system of claim 12 , wherein the (n+m)-type match graph data object is updated on the basis of an overall graph data structure cost associated with each of said plurality of processing paths.

16. The system of claim 15 , further comprising computer-executable instructions that, when executed by the processor, cause the system to:

reduce the overall graph data structure cost by selecting the (n+m)-type match graph data object in preference to a n-type match graph data object.

17. The system of claim 13 , further comprising computer-executable instructions that, when executed by the processor, cause the system to:

store traffic profile data indicative of an expected proportion of network traffic originating from at least one network application, and

perform the updating on the basis of the traffic profile data.

18. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by one or more processors of a computing device, cause the computing device to:

access a plurality of packet processing rules comprising rule match data indicative of one or more packet header field types to be used by a packet data processor to identify a network application, the packet processor configured to process packets in a communications network;

generate a graph data structure comprising a plurality of classifier nodes, the classifier nodes including a root node and a plurality of leaf nodes, the root node being connected to the plurality of leaf nodes via packet processing paths through the graph data structure;

identify an (n+m)-type match graph data object which includes node match data indicative of an (n+m)-type match corresponding to a combination of (n+m) different packet header field types, wherein the node match data is derived from the plurality of packet processing rules and the (n+m)-type graph data object matches a combination of two or more packet header field types; and

update the graph data structure to include the (n+m)-type match graph data object as an added packet processing path of the graph data structure, wherein the updating is based on the added packet processing path of the graph data structure associated with a first threshold proportion of network traffic of the communications network and having fewer nodes than at least a second processing path associated with a second threshold proportion of network traffic.

19. The non-transitory computer-readable storage medium of claim 18 , wherein:

at least one of the graph data objects comprises node action data indicative of at least one action to be applied by a respective node;

the rule data comprises rule action data indicative of one or more actions to be applied by the packet processing system to packets of an identified network application; and

the node action data is derived from the rule action data in at least one of the packet processing rules.

20. The non-transitory computer-readable storage medium of claim 18 , further comprising computer-executable instructions stored thereupon which, when executed by the one or more processors of a computing device, cause the computing device to:

select the (n+m)-type match graph data object on the basis of an overall graph data structure cost associated with each of said plurality of processing paths; and

reduce the overall graph data structure cost by selecting the (n+m)-type match graph data object in preference to a n-type match graph data object.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2026
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ALIANZA, INC.
Reel/Frame 075645/0892 →
CHANGE OF NAME Recorded May 13, 2026
From: ALIANZA, INC.
To: ALIANZA, LLC
Reel/Frame 075646/0037 →
SECURITY INTEREST Recorded May 6, 2025
From: ALIANZA, INC.; METASWITCH NETWORKS LTD
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 071191/0228 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: EVANS, MICHAEL JEFFREY; LUND, CHRISTIAN DOMINIC
To: METASWITCH NETWORKS LTD.
Reel/Frame 052954/0733 →