IP Library Granted Patent US 8,171,539
Granted Patent B2
US 8,171,539 · App. 12/349,924 · Granted May 1, 2012

Methods and apparatus for implementing a search tree

Assignee: Symbol Technologies, Inc.
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 8,171,539
App. No.
12/349,924
Granted
May 1, 2012
Kind
B2
Abstract

Apparatus and methods are provided for implementing a firewall in a network infrastructure component. A method comprises generating a search tree for a plurality of rules. The search tree comprises a first node having a first field bounds and a first set of rules of the plurality of rules, and a plurality of child nodes for the first node. Each child node has child field bounds based on an intersection of the first field bounds and the first set of rules, and each child node is assigned a respective subset of the first set of rules based on the respective child field bounds. The method further comprises receiving a first packet, identifying a first child node of the plurality of child nodes based on values for one or more fields of the first packet, and applying the respective subset of rules assigned to the first child node to the first packet.

Claims (65)

1. A method for implementing a firewall in a network infrastructure component having a memory, the firewall comprising a plurality of rules, the method comprising:

generating a search tree for the plurality of rules, the search tree being stored in the memory, wherein generating the search tree comprises:

assigning first field bounds and a first set of rules of the plurality of rules to a first node stored in a first region of a range of memory addresses;

dividing the first node into a plurality of child nodes based on an intersection of the first set of rules and the first field bounds, each child node of the plurality being stored in a respective region of the range of memory addresses;

assigning child field bounds to each respective child node, wherein each respective child field bounds is a subset of the intersection of the first set of rules and the first field bounds; and

assigning a respective subset of the first set of rules to each respective child node based on the respective child field bounds, wherein each respective subset intersects the respective child field bounds for the respective child node;

receiving a first packet by the network infrastructure component;

identifying a first child node of the plurality of child nodes based on values for one or more fields of the first packet; and

applying the respective subset of rules assigned to the first child node to the first packet.

2. The method of claim 1 , wherein generating the search tree comprises determining the intersection of the first set of rules and the first field bounds.

3. The method of claim 2 , wherein generating the search tree further comprises:

applying a heuristic to obtain a division criterion, wherein the division criterion is based at least in part on the intersection of the first set of rules and the first field bounds; and

splitting the first node into the plurality of child nodes based on the division criterion.

4. The method of claim 3 , wherein splitting the first node into the plurality of child nodes comprises, for each respective child node, assigning child field bounds to the respective child node based on the division criterion.

5. The method of claim 1 , further comprising:

assigning a second child field bounds to a second child node based on the intersection of the first field bounds and the first set of rules;

assigning a second subset of rules to the second child node based on the second child field bounds;

determining a number of rules of the second subset of rules is greater than a leaf threshold, wherein generating the search tree further comprises:

determining an intersection of the second set of rules and the second child field bounds;

applying the heuristic to obtain a division criterion for the second child node, wherein the division criterion is based at least in part on the intersection of the second set of rules and the second child field bounds; and

splitting the second child node into a plurality of grandchild nodes based on the division criterion, each grandchild node being stored in a respective region of the range of memory addresses.

6. The method of claim 5 , wherein splitting the second child node into the plurality of grandchild nodes comprises, for each respective grandchild node:

assigning grandchild field bounds to the respective grandchild node based on the division criterion, wherein the grandchild field bounds comprises a subset of the second child field bounds; and

assigning a set of rules comprising a subset of the second subset of rules to the respective grandchild node based on the grandchild field bounds.

7. A network infrastructure component comprising:

a memory having stored thereon a search tree comprising:

a first node stored in a first region of a range of memory addresses, the first node being assigned a first field bounds and a first set of rules; and

a plurality of child nodes for the first node, each child node of the plurality being stored in a respective region of the range of memory addresses, wherein each child node is assigned child field bounds comprising a subset of an intersection of the first field bounds and the first set of rules, and each child node is assigned a subset of the first set of rules, the subset of rules assigned to each child node intersecting its assigned child field bounds;

a communication module configured to receive a packet; and

a processing architecture coupled to the memory and the communication module, wherein the processing architecture is configured to:

identify a first child node based on values for one or more fields of the packet; and

apply the subset of the first set of rules assigned to the first child node to the packet.

8. The network infrastructure component of claim 7 , wherein the processing architecture is configured to identify the first child node by comparing values for one or more field of the packet to the assigned child field bounds of each child node.

9. The network infrastructure component of claim 7 , wherein the processing architecture and the communication module are cooperatively configured to forward the packet to a destination address if one or more fields of the packet match a rule of the first set of rules.

10. The network infrastructure component of claim 7 , wherein the processing architecture and the communication module are cooperatively configured to drop the packet if one or more fields of the packet match a rule of the first set of rules.

11. The network infrastructure component of claim 7 , wherein the processing architecture is configured to generate the search tree.

12. The network infrastructure component of claim 11 , wherein the processing architecture is configured to generate the search tree by:

assigning the first field bounds to the first node;

assigning the first set of rules to the first node based on the first field bounds;

determining the intersection of the first set of rules and the first field bounds;

obtaining a division criterion for the first node, wherein the division criterion is based at least in part on the intersection of the first set of rules and the first field bounds; and

splitting the first node into the plurality of child nodes based on the division criterion.

13. The network infrastructure component of claim 7 , further comprising an input device coupled to the processing architecture, the input device being adapted to allow a user to enter a plurality of rules, wherein the processing architecture is configured to generate the search tree by:

assigning the first set of rules to the first node based on the first field bounds, the first set of rules comprising a subset of the plurality of rules;

determining node bounds as an intersection of the first field bounds and the first set of rules; and

dividing the first node into the plurality of child nodes based on the node bounds.

14. A method for creating a search tree for an access control list including a plurality of rules, the method comprising:

assigning a first field bounds to a first node, the first node being stored in a first region of a range of memory addresses in a memory;

assigning a first set of rules of the plurality of rules to the first node based on the first field bounds;

determining node bounds as an intersection of the first field bounds and the first set of rules;

dividing the first node into a plurality of child nodes based on the node bounds, each child node being stored in a respective region of the range of memory addresses and each child node being assigned child field bounds comprising a subset of the node bounds; and

updating an index stored in an index region of the range of memory addresses, the index storing relationship information for the first node and the plurality of child nodes.

15. The method of claim 14 , wherein dividing the first node into a plurality of child nodes comprises:

applying a heuristic using the node bounds to obtain a division criterion; and

splitting the first node into the plurality of child nodes based on the division criterion.

16. The method of claim 15 , wherein splitting the first node into the plurality of child nodes comprises, for a first child node of the plurality of child nodes:

assigning first child field bounds to the first child node based on the division criterion, the first child field bounds comprising a first subset of the node bounds; and

assigning a second set of rules to the first child node based on the first child field bounds, the second set of rules comprising a subset of the first set of rules that intersects the first child field bounds.

17. The method of claim 16 , wherein if a number of rules in the second set of rules is greater than the threshold value, the method further comprises:

determining child node bounds as an intersection of the first child field bounds and the second set of rules;

dividing the first child node into a plurality of grandchild nodes based on the child node bounds, each grandchild node being stored in a respective region of the range of memory addresses; and

updating the index, wherein the index stores relationship information for the first child node and the plurality of grandchild nodes.

18. The method of claim 17 , wherein dividing the first child node into a plurality of grandchild nodes comprises:

applying the heuristic using the first child node bounds to obtain a second division criterion; and

splitting the first child node into the plurality of grandchild nodes based on the second division criterion.

Assignments (13)
RELEASE OF PATENT AND TRADEMARK SECURITY INTEREST AT REEL/FRAME NO. 46050/0546 Recorded Jul 30, 2026
From: BANK OF MONTREAL, AS AGENT
To: EXTREME NETWORKS, INC.
Reel/Frame 076081/0088 →
SECURITY INTEREST Recorded Jul 29, 2026
From: EXTREME NETWORKS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 076078/0590 →
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: SYMBOL TECHNOLOGIES, LLC
To: EXTREME NETWORKS, INC.
Reel/Frame 040579/0410 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
RELEASE OF SECURITY INTEREST Recorded Aug 17, 2015
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SYMBOL TECHNOLOGIES, INC.
Reel/Frame 036371/0738 →
CHANGE OF NAME Recorded Jul 8, 2015
From: SYMBOL TECHNOLOGIES, INC.
To: SYMBOL TECHNOLOGIES, LLC
Reel/Frame 036083/0640 →
SECURITY AGREEMENT Recorded Oct 31, 2014
From: ZIH CORP.; LASER BAND, LLC; ZEBRA ENTERPRISE SOLUTIONS CORP.; SYMBOL TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC. AS THE COLLATERAL AGENT
Reel/Frame 034114/0270 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2009
From: MIRANDA, TREVOR
To: SYMBOL TECHNOLOGIES, INC.
Reel/Frame 022070/0344 →
Continuity (1)
Related Publication 20100175124A1 · Jul 8, 2010