IP Library Granted Patent US 7,636,304
Granted Patent B2
US 7,636,304 · App. 11/093,882 · Granted Dec 22, 2009

System and method for performing distributed policing

Assignee: Cisco Technology, 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 7,636,304
App. No.
11/093,882
Granted
Dec 22, 2009
Kind
B2
Abstract

Various systems and methods that synchronize local copies of a variable used in a distributed algorithm, such as that used in distributed policing. For example, one system includes several distributed algorithm participants that are coupled to communicate with each other. Each of the each of the distributed algorithm participants maintains a shared variable in order to implement the distributed algorithm. One of the distributed algorithm participants is a synchronizer. The synchronizer is configured to calculate a new value of the shared variable and to communicate the new value to each of the other distributed algorithm participants. The distributed algorithm can be a distributed policing algorithm, and the shared variable can be a global bucket.

Claims (79)

1. A system comprising:

a network device comprising a plurality of interfaces configured to be coupled to a network link; and

a plurality of distributed algorithm participants, wherein

the network device comprises at least one of the distributed algorithm participants,

the distributed algorithm participants are coupled to communicate with each other,

each of the distributed algorithm participants is configured to implement a distributed algorithm,

each of the distributed algorithm participants maintains a shared variable in order to implement the distributed algorithm,

the distributed algorithm participants comprise a synchronizer participant and a non-synchronizer participant,

the synchronizer participant is configured to calculate a new value of the shared variable and to communicate the new value to the non-synchronizer participant, and

the non-synchronizer participant comprises:

a local update packet module; and

a global update packet module coupled to the local update packet module, wherein

the global update packet module is configured to receive the new value of the shared variable and update a local copy of the shared variable to equal the new value of the shared variable.

2. The system of claim 1 , wherein

the local update packet module is configured to send a local update packet to the synchronizer participant, in response to the non-synchronizer participant receiving the new value of the shared variable, and

the local update packet identifies an adjustment to the shared variable.

3. The system of claim 2 , wherein

the distributed algorithm is a distributed policing algorithm, and

the shared variable is a global bucket.

4. A system comprising:

a network device comprising a plurality of interfaces configured to be coupled to a network link; and

a plurality of policers, wherein

the network device comprises at least one of the policers,

the polices comprise a synchronizer policer and a non-synchronizer policer,

the policers are configured to perform distributed policing based on a global bucket variable,

the synchronizer policer is configured to calculate a new value of the global bucket variable and to send the new value to the non-syhchronizer policer, and

the non-synchronizer policer comprises:

a local update packet module; and

a global update packet module coupled to the local update packet module, wherein the global update packet module is configured to receive the new value of the global bucket variable and update a local copy of the global bucket variable to equal the new value of the global bucket variable.

5. The system of claim 4 , wherein

the synchronizer policer is configured to calculate the new value of the global bucket variable based on a local traffic value received from one of the policers.

6. The system of claim 5 , wherein

the local update packet module is configured to send a local update packet to the synchronizer policer, in response to the non-synchronizer policer receiving the new value of the global bucket variable, and

the local update packet comprises a measure of traffic permitted by the non-synchronizer policer.

7. The system of claim 6 , wherein

the local update packet module is configured to send the local update packet to the synchronizer policer in response to the non-synchronizer policer both receiving the new value and a measure of locally permitted traffic exceeding a threshold value.

8. The system of claim 5 , wherein

the synchronizer policer is configured to send the new value of the global bucket variable to a new policer, in response to detecting that the new policer has joined the plurality of policers, and

both the synchronizer policer and the new policer store an identical global bucket value subsequent to the new policer receiving the new value of the global bucket variable.

9. A system comprising:

a network device comprising a plurality of interfaces configured to be coupled to a network link and a policer, the policer comprising:

a first local update packet module; and

a global bucket update module coupled to the first local update packet module,

wherein

the first local update packet module is configured to send a first local update packet, the first local update packet comprising a measure of traffic permitted by the policer,

a global update packet received by the policer comprises a new value of a global bucket, and

the global bucket update module is configured to update a local copy of the global bucket to equal the new value of the global bucket included in the global update packet.

10. The system of claim 9 , wherein

the policer further comprises a second local update packet module, and

the second local update packet module is configured to send a second local update packet in response to reception of the global update packet.

11. The system of claim 10 , wherein

the policer sends The first local update packet to a synchronizer policer.

12. The system of claim 10 , wherein

the policer is configured to send the secondary local update packet, in response to both receiving the global update packet and determining that:

an effective bucket at the policer exceeds a burst.

13. A method comprising:

receiving a global update packet comprising a new value of a global bucket at a network device, wherein the network device comprises a plurality of interfaces configured to be coupled to a link, and

the global bucket is used to police traffic in a network, and updating the global bucket to equal the new value included in the global update packet,

wherein

the global bucket is a local copy of a global bucket variable maintained by a first policer,

a second local copy of the global bucket variable is maintained by a second policer, and

subsequent to the updating the global bucket, the value of the local copy of the global bucket variable equals the value of the second local copy of the global bucket variable.

14. The method of claim 13 , wherein

prior to the receiving the global update packet, a value of the local copy of the global bucket variable differs from a value of the second local copy of the global bucket variable.

15. The method of claim 13 , further comprising:

sending a first local update packer to a synchronizer policer, wherein

the first local update packet comprises a value identifying an amount of traffic permitted by a single policer.

16. The method of claim 15 , wherein the sending the first local update packet comprises:

sending the first local update packet in response to the value identifying the amount of traffic permitted by the single policer exceeding a threshold value.

17. The method of claim 15 , further comprising:

sending a secondary local update packet, in response to receiving the global update packet.

18. The method of claim 17 , wherein the sending the secondary local update packet comprises:

sending the secondary local update packet, in response to both receiving the global update packet and determining that an effective bucket value exceeds a burst.

19. A system comprising:

first network interface means for sending, on a network, a first local update packet, wherein the first local update packet comprises a measure of traffic permitted by a policer; and

second network interface means, coupled to the first means, for receiving, a global update

packet comprising a new value of a global bucket, wherein

the global bucket is used to police traffic in the network; and

third means for updating the global bucket to equal the new value included in the global update packet, wherein the global bucket is a local copy of a global bucket variable maintained by a first policer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2005
From: PADWEKAR, KETAN A.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 016436/0529 →
Continuity (1)
Related Publication 20060221819A1 · Oct 5, 2006