IP Library › Granted Patent US 12,375,411
Granted Patent B2
US 12,375,411 · App. 17/566,855 · Granted Jul 29, 2025

Generic tree policy search optimization for high-speed network processor configuration

Inventor: Shushan Wen (Pleasant Hill, CA)
Assignee: Fortinet, Inc.
H04L47/20G06F16/2246H04L47/2441H04L49/20H04L63/0263
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 12,375,411
App. No.
17/566,855
Granted
Jul 29, 2025
Kind
B2
Abstract

A raw policy set is received for the network processor and a dimension bitmap corresponding to the raw policy set. From the raw policy set, a policy tree builder generates a policy tree image from a set of recursive operations on the raw policy set including selecting boundaries of the raw policy set from cuts on a given dimension of the raw policy set, the dimension cut based on a dimension selection and a partition number selection for the raw policy set. Network processor hardware is configured according to the policy tree image including at least one set of registers, at least one set of tables, and at least one sequence of instructions. At runtime, the network processor applies the optimized policy set to processing of the packet session from the data communication network by the network processor hardware.

Claims (35)

1. A network processor of a computing device coupled to a data communication network, for generic tree policy search optimization for high-speed network processor configuration, the network processor comprising:

a raw policy set for the network processor and dimension bitmaps corresponding to the raw policy set, wherein a first dimension bitmap indicates which dimensions to skip a boundary check for candidate policies at a leaf node and a second dimension bitmap indicates which dimensions to enact a boundary check on a current node;

a policy tree builder to generate a control image from a set of recursive operations on the raw policy set including selecting boundaries of the raw policy set from cuts on a given dimension of the raw policy set, the dimension cut based on a dimension selection and a partition number selection for the raw policy set; and

network processor hardware to configure at least one set of registers, at least one set of tables, and at least one sequence of instructions according to the control image; and

a queue to receive packets of a packet session from the data communication network,

wherein the network processor searches the optimized policy set for application to the packet session by the network processor hardware.

2. The network processor of claim 1 , wherein the policy tree image includes data register sets and table sets to populate registers and tables of the network processor hardware.

3. The network processor of claim 1 , wherein the policy tree image includes executable instruction binaries.

4. The network processor of claim 1 , wherein the policy tree includes a node is cut into child nodes based on the dimension selection and the partition number selection.

5. The network processor of claim 1 , wherein the network processor hardware comprises a policy search module.

6. The network processor of claim 1 , wherein the dimension selection and the partition number are selected to reduce duplicate policies of the policy set.

7. The network processor of claim 1 , wherein the policy set prevents duplicate boundary checks when a boundary has been checked against an incoming packet in a node along the tree.

8. The network processor of claim 1 , wherein policies are sorted with priority, and when a policy match is found, no further searching is required.

9. The network processor of claim 1 , wherein the policy set is input from a user interface or a script.

10. The network processor of claim 1 , wherein the policy tree builder checks whether a given node is a leaf node, and if the policy is a leaf node, a leaf flag is set to 1, and if not a leaf node, updates boundaries on dimensions, selects a dimension, and selects a partition number for further cut.

11. The network processor of claim 1 , wherein the network processor is part of an access point device.

12. The network processor of claim 1 , further comprising a network processor driver to call the policy tree builder to generate the policy tree.

13. The network processor of claim 1 , further comprising a network processor driver to translate the raw policy set for the network processor hardware.

14. A method in a network processor of a computing device on a data communication network, for generic tree policy search optimization for high-speed network processor configuration, the method comprising:

receiving a raw policy set for the network processor and dimension bitmaps corresponding to the raw policy set, wherein a first dimension bitmap indicates which dimensions to skip a boundary check for candidate policies at a leaf node and a second dimension bitmap indicates which dimensions to enact a boundary check on a current node;

generating a control image from a set of recursive operations on the raw policy set including selecting boundaries of the raw policy set from cuts on a given dimension of the raw policy set, the dimension cut based on a dimension selection and a partition number selection for the raw policy set; and

configuring at least one set of registers, at least one set of tables, and at least one sequence of instructions according to the control image; and

receiving packets of a packet session from the data communication network; and

applying searching the optimized policy set for application to the packet session by the network processor hardware.

15. The method of claim 14 , wherein the policy tree image includes data register sets and table sets to populate registers and tables of the network processor hardware.

16. The method of claim 14 , wherein the policy tree image includes executable instruction binaries.

17. The method of claim 14 , wherein the policy tree includes a node is cut into child nodes based on the dimension selection and the partition number selection.

18. The method of claim 14 , wherein the network processor hardware comprises a policy search module.

19. The method of claim 14 , wherein the dimension selection and the partition number are selected to reduce duplicate policies of the policy set.

20. A non-transitory computer-readable media storing source code, in a network device, implemented at least partially in hardware for, when executed by a processor, performs a method for preventing malware execution by injecting virtual machine characteristics in a real computing environment of the computer device, the method comprising the steps of:

receiving a raw policy set for the network processor and dimension bitmaps corresponding to the raw policy set, wherein a first dimension bitmap indicates which dimensions to skip a boundary check for candidate policies at a leaf node and a second dimension bitmap indicates which dimensions to enact a boundary check on a current node;

generating a control image from a set of recursive operations on the raw policy set including selecting boundaries of the raw policy set from cuts on a given dimension of the raw policy set, the dimension cut based on a dimension selection and a partition number selection for the raw policy set; and

configuring at least one set of registers, at least one set of tables, and at least one sequence of instructions according to the control image; and

receiving packets of a packet session from the data communication network; and

applying searching the optimized policy set for application to the packet session by the network processor hardware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2021
From: WEN, SHUSHAN
To: FORTINET, INC.
Reel/Frame 058513/0868 →
Continuity (1)
Related Publication 20230214388A1 · Jul 6, 2023
References Cited (31)
US 5951651A · Lakshman · 1999 [cited by examiner]
US 6880158B1 · Basso · 2005 [cited by examiner]
US 6970462B1 · McRae · 2005 [cited by examiner]
US 7236493B1 · McRae · 2007 [cited by examiner]
US 7249149B1 · Eatherton · 2007 [cited by examiner]
US 9270586B2 · Assarpour · 2016 [cited by examiner]
US 10103976B2 · Nainar · 2018 [cited by examiner]
US 10460250B2 · Goyal · 2019 [cited by examiner]
US 10944724B2 · Guo · 2021 [cited by examiner]
US 12041032B2 · Wen · 2024 [cited by examiner]
US 20050132034A1 · Iglesia · 2005 [cited by examiner]
US 20100175124A1 · Miranda · 2010 [cited by examiner]
US 20130089099A1 · Pollock · 2013 [cited by examiner]
US 20130166491A1 · Zhang · 2013 [cited by examiner]
US 20140086240A1 · Assarpour · 2014 [cited by examiner]
US 20150117450A1 · Thibaut · 2015 [cited by examiner]
US 20160191466A1 · Pernicha · 2016 [cited by examiner]
US 20160335298A1 · Haggerty · 2016 [cited by examiner]
US 20180152385A1 · Xu · 2018 [cited by examiner]
US 20180287859A1 · Desigowda · 2018 [cited by examiner]
US 20190306118A1 · Guo · 2019 [cited by examiner]
US 20200403975A1 · Kashima · 2020 [cited by examiner]
US 20220014970A1 · Cao · 2022 [cited by examiner]
US 20240114000A1 · Wen · 2024 [cited by examiner]
US 20240323165A1 · Wen · 2024 [cited by examiner]
Vamanan, Balajee, Gwendolyn Voskuilen, and T. N. Vijaykumar. “EffiCuts: Optimizing packet classification for memory and throughput.” ACM SIGCOMM Computer Communication Review 40.4 (2010): 207-218. [cited by examiner]
Li, Wenjun, et al. “Cutsplit: A decision-tree combining cutting and splitting for scalable packet classification.” IEEE Infocom 2018—IEEE Conference on Computer Communications. IEEE, 2018. [cited by examiner]
Liu, Zhi, et al. “BitCuts: A fast packet classification algorithm using bit-level cutting.” Computer Communications, 109 (2017), pp. 38-52. [cited by examiner]
Chen, Shuhui, et al. “CMT: an efficient algorithm for scalable packet classification.” The Computer Journal 64.6 (2021): 941-959. [cited by examiner]
Jamil, Hasibul, and Ning Weng. “Multibit tries packet classification with deep reinforcement learning.” 2020 IEEE 21st International Conference on High Performance Switching and Routing (HPSR). IEEE, 2020. [cited by examiner]
“Machine Code”. FOLDOC: Free Online Dictionary of Computing, https://foldoc.org/machine+code, Jun. 2009. [cited by examiner]