IP Library Granted Patent US 10,819,682
Granted Patent B1
US 10,819,682 · App. 15/996,552 · Granted Oct 27, 2020

Systems and methods for high-efficiency network-packet filtering

Inventors: Anant Deepak (San Jose, CA); Puneet Mehra (Alameda, CA); Zequn Huang (Sunnyvale, CA); Huapeng Zhou (Menlo Park, CA); Nikita Shirokov (Mountain View, CA)
Assignee: Facebook, Inc.
H04L63/0236H04L63/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 10,819,682
App. No.
15/996,552
Granted
Oct 27, 2020
Kind
B1
Abstract

The disclosed computer-implemented method may include (i) configuring a packet filtering policy at least in part by defining an attribute map and a set of network-packet filtering rules that use logical groupings of distinguishing attributes as input parameters, (ii) after configuring the packet filtering policy, receiving an incoming network packet, (iii) extracting distinguishing attributes from the incoming network packet, (iv) translating, based on the attribute map, the distinguishing features extracted from the incoming network packet into logical groupings associated with the network packet, and (v) applying the packet filtering policy to the incoming network packet by using the logical groupings associated with the network packet as input parameters to the filtering rules. Various other methods, systems, and computer-readable media are also disclosed.

Claims (65)

1. A computer-implemented method comprising:

configuring a packet filtering policy at least in part by:

defining an attribute map that associates each of a plurality of distinguishing attributes of network packets with one or more logical groupings of distinguishing attributes, wherein each logical grouping comprises a plain-language identifier that describes an association between each distinguishing attribute associated with the logical grouping;

defining one or more filtering rules for filtering network packets subject to the packet filtering policy, using the plain-language identifiers of one or more logical groupings of distinguishing attributes as input parameters for the one or more filtering rules; and

converting an obsolete filtering rule that uses a specific distinguishing attribute as an input parameter into an updated filtering rule that uses, as defined in the attribute map, at least one plain-language identifier of at least one logical grouping of the specific distinguishing attribute as an input parameter by replacing the specific distinguishing attribute in the obsolete filtering rule with the at least one plain-language identifier;

receiving, after configuring the packet filtering policy, an incoming network packet as part of examining a network connection that is subject to the packet filtering policy;

extracting one or more distinguishing attributes of the network connection from the incoming network packet;

translating, based on the attribute map, the one or more distinguishing attributes extracted from the incoming network packet into one or more plain-language identifiers of one or more logical groupings of the incoming network packet; and

applying the packet filtering policy to the incoming network packet by using the one or more plain-language identifiers of the one or more logical groupings of the incoming network packet as input parameters to the one or more filtering rules.

2. The method of claim 1 , wherein at least one of the one or more filtering rules filters, with the same filtering result, differing incoming network packets that comprise differing distinguishing attributes based on the differing distinguishing attributes each being associated with the same logical grouping in the attribute map.

3. The method of claim 1 , wherein two or more filtering rules use the same logical grouping as an input parameter.

4. The method of claim 1 , further comprising, for each filtering rule in the one or more filtering rules, incrementing a trigger counter associated with the filtering rule each time the filtering rule matches a network packet.

5. The method of claim 1 , wherein the attribute map comprises a hash map that uses distinguishing attributes of network packets as keys of the hash map and uses logical groupings as values of the hash map.

6. The method of claim 1 , further comprising defining a plurality of attribute-specific attribute maps at least in part by assigning, to each attribute-specific attribute map, a corresponding category of distinguishing attributes for use as input parameters.

7. The method of claim 1 , wherein the distinguishing attributes comprise at least one of:

a host Internet Protocol address;

a destination Internet Protocol address;

a host port;

a destination port;

a subnet address;

a Transmission Control Protocol flag;

an IPv6 flow label;

a Media Access Control address; or

an Internet Protocol address prefix.

8. The method of claim 1 , further comprising consolidating a plurality of obsolete filtering rules by:

determining that each input parameter of each obsolete filtering rule in the plurality of obsolete filtering rules is associated, by the attribute map, with a particular logical grouping;

determining that each obsolete filtering rule in the plurality of obsolete filtering rules applies a same filtering result to each network packet; and

generating a unified filtering rule that uses the plain-language identifier of the particular logical grouping as an input parameter and applies the same filtering result to each incoming network packet that comprises distinguishing attributes that match the particular logical grouping.

9. The method of claim 1 , further comprising updating a filtering policy for network packets that include a particular distinguishing attribute by modifying, within the attribute map, the logical groupings that are associated with the particular distinguishing attribute.

10. A system comprising:

a configuration module, stored in a memory of the system, that configures a packet filtering policy at least in part by:

defining an attribute map that associates each of a plurality of distinguishing attributes of network packets with one or more logical groupings of distinguishing attributes, wherein each logical grouping comprises a plain-language identifier that describes an association between each distinguishing attribute associated with the logical grouping;

defining one or more filtering rules for filtering network packets subject to the packet filtering policy, using the plain-language identifiers of one or more logical groupings of distinguishing attributes as input parameters for the one or more filtering rules; and

converting an obsolete filtering rule that uses a specific distinguishing attribute as an input parameter into an updated filtering rule that uses, as defined in the attribute map, at least one plain-language identifier of at least one logical grouping of the specific distinguishing attribute as an input parameter by replacing the specific distinguishing attribute in the obsolete filtering rule with the at least one plain-language identifier

a reception module, stored in the memory of the system, that receives, after the configuration module configures the packet filtering policy, an incoming network packet as part of examining a network connection that is subject to the packet filtering policy;

an extraction module, stored in the memory of the system, that extracts one or more distinguishing attributes of the network connection from the incoming network packet;

a translation module, stored in the memory of the system, that translates, based on the attribute map, the one or more distinguishing attributes extracted from the incoming network packet into one or more plain-language identifiers of one or more logical groupings of the incoming network packet;

an enforcement module, stored in the memory of the system, that applies the packet filtering policy to the incoming network packet by using the one or more plain-language identifiers of the one or more logical groupings of the incoming network packet as input parameters to the one or more filtering rules; and

at least one physical computer processor that is configured to execute the configuration module, the reception module, the extraction module, the translation module, and the enforcement module.

11. The system of claim 10 , wherein the enforcement module applies one or more filtering rules that filter, with the same filtering result, differing incoming network packets that comprise differing distinguishing attributes based on the differing distinguishing attributes each being associated with the same logical grouping in the attribute map.

12. The system of claim 10 , wherein two or more filtering rules use the same logical grouping as an input parameter.

13. The system of claim 10 , wherein the enforcement module increments, for each filtering rule in the one or more filtering rules, a trigger counter associated with the filtering rule each time the filtering rule matches a network packet.

14. The system of claim 10 , wherein the attribute map comprises a hash map that uses distinguishing attributes of network packets as keys of the hash map and uses logical groupings as values of the hash map.

15. The system of claim 10 , wherein the configuration module defines a plurality of attribute-specific attribute maps at least in part by assigning, to each attribute-specific attribute map, a corresponding category of distinguishing attributes for use as input parameters.

16. The system of claim 10 , wherein the distinguishing attributes comprise at least one of:

a host Internet Protocol address;

a destination Internet Protocol address;

a host port;

a destination port;

a subnet address;

a Media Access Control address; or

an Internet Protocol address prefix.

17. The system of claim 10 , wherein the configuration module converts a plurality of obsolete filtering rules by:

determining that each input parameter of each obsolete filtering rule in the plurality of obsolete filtering rules is associated, by the attribute map, with a particular logical grouping;

determining that each obsolete filtering rule in the plurality of obsolete filtering rules applies a same filtering result to each network packet; and

generating a unified filtering rule that uses the plain-language identifier of the particular logical grouping as an input parameter and applies the same filtering result to each incoming network packet that comprises distinguishing attributes that match the particular logical grouping.

18. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one physical processor of a computing device, cause the computing device to:

configure a packet filtering policy at least in part by:

defining an attribute map that associates each of a plurality of distinguishing attributes of network packets with one or more logical groupings of distinguishing attributes, wherein each logical grouping comprises a plain-language identifier that describes an association between each distinguishing attribute in the plurality of distinguishing attributes;

defining one or more filtering rules for filtering network packets subject to the packet filtering policy, using the plain-language identifiers of one or more logical groupings of distinguishing attributes as input parameters for the one or more filtering rules; and

converting an obsolete filtering rule that uses a specific distinguishing attribute as an input parameter into an updated filtering rule that uses, as defined in the attribute map, at least one plain-language identifier of at least one logical grouping of the specific distinguishing attribute as an input parameter by replacing the specific distinguishing attribute in the obsolete filtering rule with the at least one plain-language identifier;

receive, after configuring the packet filtering policy, an incoming network packet as part of examining a network connection that is subject to the packet filtering policy;

extract one or more distinguishing attributes of the network connection from the incoming network packet;

translate, based on the attribute map, the one or more distinguishing attributes extracted from the incoming network packet into one or more plain-language identifiers of one or more logical groupings of the incoming network packet; and

apply the packet filtering policy to the incoming network packet by using the one or more plain-language identifiers of the one or more logical groupings of the incoming network packet as input parameters to the one or more filtering rules.

Assignments (3)
CHANGE OF NAME Recorded Feb 18, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059191/0695 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COMMA AFTER THE PERIOD IN INC. IN THE ASSIGNEE'S NAME. THE ASSIGNEE'S NAME SHOULD APPEAR FACEBOOK, INC. PREVIOUSLY RECORDED ON REEL 049668 FRAME 0106. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 31, 2022
From: DEEPAK, ANANT; MEHRA, PUNEET; HUANG, ZEQUN; SHIROKOV, NIKITA; ZHOU, HUAPENG
To: FACEBOOK, INC.
Reel/Frame 058906/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2019
From: DEEPAK, ANANT; MEHRA, PUNEET; HUANG, ZEQUN; ZHOU, HUAPENG; SHIROKOV, NIKITA
To: FACEBOOK, INC.,
Reel/Frame 049668/0106 →
Cited By (2)
US 12,204,824 US 12,513,186