IP Library › Granted Patent US 8,627,448
Granted Patent B2
US 8,627,448 · App. 12/938,090 · Granted Jan 7, 2014

Selective invalidation of packet filtering results

Inventors: Jose Renato Santos (San Jose, CA); Yoshio Turner (San Francisco, CA); John Wickeraad (Cupertino, CA)
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,627,448
App. No.
12/938,090
Granted
Jan 7, 2014
Kind
B2
Abstract

Example embodiments relate to selective invalidation of packet filtering cache results based on rule priority. In example embodiments, a network node determines whether a rule identifier included in a cache entry of a cache of results of a packet filtering rule set is of a higher priority than a highest priority rule corresponding to a rule set version identifier included in the cache entry. If so, the network node may apply an action included in the cache entry.

Claims (58)

1. A network node for selective invalidation of packet filtering cache results based on rule priority, the network node comprising:

a cache of results of a packet filtering rule set to store a plurality of entries, each cache entry including a rule identifier of a packet filtering rule to which the cache entry relates and a rule set version identifier that identifies a version of the packet filtering rule set when the cache entry was created;

a version memory to store a highest priority rule modified for each of a plurality of rule set version identifiers;

a current rule set version identifier identifying a current version of the packet filtering rule set; and

a packet processor to:

determine, when a cache entry corresponding to a received packet is included in the cache, whether the rule identifier included in the cache entry is of a higher priority than a highest priority rule stored in the version memory for the rule set version identifier included in the cache entry, and

apply, to the packet, an action included in the cache entry when the rule identifier included in the cache entry is of a higher priority.

2. The network node of claim 1 , wherein the packet filtering rule set includes a plurality of rules associated with a priority and, for each rule, a corresponding action to be taken when the packet matches the rule.

3. The network node of claim 1 , wherein the packet processor is further configured to:

determine whether the rule set version identifier included in the cache entry is equal to the current rule set version identifier; and

apply the action included in the cache entry to the packet when the rule set version identifier included in the cache entry is equal to the current rule set version identifier.

4. The network node of claim 3 , wherein:

the version memory stores a total of n entries, and

the packet processor ignores the cache entry when the current rule set version identifier minus the rule set version identifier included in the cache entry is greater than n.

5. The network node of claim 1 , wherein the packet processor is further configured to, when a cache entry corresponding to the packet is not included in the cache or the rule identifier included in the cache entry is of an equal or lower priority:

access the packet filtering rule set to identify a matching rule and a corresponding action for the packet;

locate an available entry in the cache; and

insert a cached result for the packet into the available entry in the cache, the cached result including a key for the packet, the corresponding action, an identifier of the matching rule, and the current rule set version identifier.

6. The network node of claim 1 , further comprising a rule set update engine to:

apply at least one modification of the packet filtering rule set to update the packet filtering rule set to a new version;

determine an identifier of a highest priority rule modified for the new version;

update the version memory to set the highest priority rule to the highest priority rule modified for the new version for each entry in the version memory for which the highest priority rule is of a lower priority than the highest priority rule modified for the new version; and

update the current rule set version identifier.

7. The network node of claim 1 , wherein:

the plurality of rules in the packet filtering rule set are ordered from a highest priority rule to a lowest priority rule based on an integer rule identifier assigned to each rule, and

the packet processor determines that the rule identifier included in the cache entry is of a higher priority than the highest priority rule stored in the version memory when the rule identifier is less than the highest priority rule.

8. A machine-readable storage medium device encoded with instructions executable by a processor of a network node for selective invalidation of packet filtering cache results based on rule priority, the machine-readable storage medium comprising:

instructions for identifying a cache entry of a cache of results of a packet filtering rule set, the identified entry including a key corresponding to a determined key of a received packet;

instructions for determining whether a rule set version identifier included in the cache entry matches a current version of the packet filtering rule set;

instructions for determining whether a rule identifier included in the cache entry is of a higher priority than a highest priority rule modified for a version of the packet filtering rule set identified by the rule set version identifier included in the cache entry; and

instructions for processing the packet according to an action identified by the cache entry when either the rule set version identifier matches or the rule identifier is of a higher priority.

9. The machine-readable storage medium of claim 8 , further comprising instructions for updating the cache when the rule set version identifier does not match the current version and when the rule identifier included in the cache entry is of an equal or lower priority, the instructions for updating comprising:

instructions for accessing the packet filtering rule set to identify a matching rule and a matching action for the packet;

instructions for inserting a cached result for the packet into an available entry in the cache, the cached result including the key for the packet, the matching action, an identifier of the matching rule, and the current version of the packet filtering rule set.

10. The machine-readable storage medium of claim 8 , further comprising instructions for updating the packet filtering rule set to a new version, the instructions for updating comprising:

instructions for updating the current version of the packet filtering rule set;

instructions for determining an identifier of a highest priority rule modified for the new version; and

instructions for updating a value storing a highest priority rule associated with each version of the packet filtering rule set such that no value identifies a rule of a lower priority than the highest priority rule modified for the new version.

11. A method for selectively invalidating packet filtering cache results based on rule priority, the method comprising:

receiving a packet in a network node;

determining, by the network node, whether a key for the packet is located in a cache of results of a packet filtering rule set, the cache including a plurality of keys, each associated with a corresponding action, a corresponding rule identifier, and a corresponding rule set version identifier;

determining, when the key for the packet is included in the cache, whether the corresponding rule identifier is of a higher priority than a highest priority rule modified for the corresponding rule set version identifier; and

applying the corresponding action to the packet when the corresponding rule identifier is of a higher priority.

12. The method of claim 11 , wherein determining whether the corresponding rule identifier is of a higher priority comprises:

accessing the rule identifier corresponding to the key for the packet from the cache;

accessing the highest priority rule modified for the corresponding rule set version identifier from a version memory, the version memory storing a plurality of entries including a highest priority rule modified for each of a plurality of rule set version identifiers; and

determining whether the corresponding rule identifier accessed from the cache is of a higher priority than the highest priority rule accessed from the version memory.

13. The method of claim 12 , further comprising updating the packet filtering rule set to a new version, the updating comprising:

updating a current rule set version identifier;

determining an identifier of a highest priority rule modified for the new version; and

updating the version memory to set the highest priority rule to the highest priority rule modified for the new version for each entry in the version memory for which the highest priority rule is of a lower priority than the highest priority rule modified for the new version.

14. The method of claim 11 , further comprising, prior to determining whether the corresponding rule identifier is of a higher priority:

determining whether the corresponding rule set version identifier is equal to a current rule set version identifier; and

applying the corresponding action to the packet when the corresponding rule set version identifier is equal to the current rule set version identifier.

15. The method of claim 11 , further comprising, when the key for the packet is not located in the cache and the corresponding rule identifier is of an equal or lower priority than the highest priority rule modified for the corresponding rule set version identifier:

accessing the packet filtering rule set to identify a matching rule and a matching action for the packet;

locating an available entry in the cache; and

inserting a cached result for the packet into the available entry in the cache, the cached result including the key for the packet, the matching action, an identifier of the matching rule, and a current rule set version identifier of the packet filtering rule set.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2011
From: SANTOS, JOSE RENATO; TURNER, YOSHIO; WICKERAAD, JOHN A.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 026228/0247 →
Continuity (1)
Related Publication 20120110656A1 · May 3, 2012