IP Library Granted Patent US 7,957,311
Granted Patent B2
US 7,957,311 · App. 12/045,507 · Granted Jun 7, 2011

Programmable hardware-based traffic policing

Assignee: Bay Microsystems, 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,957,311
App. No.
12/045,507
Granted
Jun 7, 2011
Kind
B2
Abstract

A hardware-based technique for policing traffic in a network node involves programming a set of algorithm-specific policing primitives that establishes a relationship between condition primitives and action primitives and populating a searchable memory with a set of indexed action primitives. Action primitives are then selected from the searchable memory in response to condition primitives related to a received datagram. Policing actions related to the datagram are performed in response to the action primitive. Because the algorithm-specific policing primitives are programmable, a network node can be adapted to implement a wide variety of policing algorithms. Additionally, multiple different policing algorithms can be implemented in hardware without the need for a different set of combinational logic for each different policing algorithm.

Claims (52)

1. A hardware-based method for policing traffic in a network node, the method comprising:

receiving a programming input that defines a relationship between condition primitives and action primitives, wherein the condition primitives and the action primitives are used to implement a policing algorithm, each condition primitive including a series of bits that indicates an incoming color of a packet, whether enough credits are available to forward the packet, and whether a credit bucket is full, and each action primitive including a series of bits that indicates the outgoing color of a packet, whether a credit bucket should be decremented to account for a forwarded packet, whether a packet should be dropped, and whether the credit bucket should be refreshed;

storing a set of indexed action primitives according to the defined relationship, wherein the stored set of indexed action primitives comprises multiple index and action primitive pairs, wherein each action primitive is specific to the policing algorithm and includes a series of bits that indicates the outgoing color of a packet, whether a credit bucket should be decremented to account for a forwarded packet, whether a packet should be dropped, and whether the credit bucket should be refreshed;

identifying a condition primitive in response to a datagram that is received at the network node;

generating an index from the condition primitive;

using the index to select an action primitive from the stored set of indexed action primitives; and

performing a policing action related to the datagram in response to the selected action primitive;

wherein the stored set of indexed action primitives includes a decrement primitive that indicates whether or not credit should be decremented from a corresponding credit bucket and an increment primitive that indicates whether or not the corresponding credit bucket should be refreshed with credits according to a corresponding refresh rate; and

wherein performing the policing action comprises at least one of decrementing credit from the corresponding credit bucket and refreshing credits of the corresponding credit bucket according to the corresponding refresh rate.

2. The hardware-based method of claim 1 wherein the set of indexed action primitives are stored in a searchable memory.

3. The hardware-based method of claim 1 further comprising:

receiving another programming input that defines a second relationship between condition primitives and action primitives, wherein the second relationship defines a policing algorithm that is different from the first relationship; and

storing a set of indexed action primitives according to the defined second relationship such that more than one set of indexed action primitives, defining different policing algorithms, are stored at the same time.

4. The hardware-based method of claim 1 wherein the relationship between the condition primitives and the action primitives defines a single rate three color marker (srTCM) policing algorithm.

5. The hardware-based method of claim 1 wherein the relationship between the condition primitives and the action primitives defines a two rate three color marker (trTCM) policing algorithm.

6. The hardware-based method of claim 1 wherein the relationship between the condition primitives and the action primitives defines a Metro Ethernet Forum (MEF) service policing algorithm.

7. The hardware-based method of claim 1 wherein the relationship between the condition primitives and the action primitives defines a non-standard user-defined policing algorithm.

8. The hardware-based method of claim 1 wherein the set of indexed action primitives determines the outgoing color of the datagram.

9. The hardware-based method of claim 1 wherein the set of indexed action primitives determines whether a policing failure will be reported.

10. The hardware-based method of claim 1 wherein the set of indexed action primitives determines whether the datagram will be dropped.

11. The hardware-based method of claim 1 wherein the set of indexed action primitives determines:

the outgoing color of the datagram;

whether a policing failure will be reported; and

whether the datagram will be dropped.

12. A hardware-based system for policing traffic in a network node, the system comprising:

a programming interface configured to receive a programming input that defines a relationship between condition primitives and action primitives, wherein the condition primitives and the action primitives are used to implement a policing algorithm, each condition primitive including a series of bits that indicates an incoming color of a packet, whether enough credits are available to forward the packet, and whether a credit bucket is full, and each action primitive including a series of bits that indicates the outgoing color of a packet, whether a credit bucket should be decremented to account for a forwarded packet, whether a packet should be dropped, and whether the credit bucket should be refreshed;

means for obtaining a condition primitive related to a received datagram; and

a policing module configured to select an action primitive in response to the condition primitive and to perform a policing action related to the datagram in response to the selected action primitive, the policing module comprising:

a condition module configured to generate an index from a condition primitive that is related to a received datagram; and

an action module configured to select an action primitive in response to the index, the action module comprising memory to store a set of indexed action primitives according to the defined relationship, wherein the stored set of indexed action primitives comprises multiple index and action primitive pairs, wherein each action primitive is specific to the policing algorithm and includes a series of bits that indicates the outgoing color of a packet, whether a credit bucket should be decremented to account for a forwarded packet, whether a packet should be dropped, and whether the credit bucket should be refreshed;

wherein the stored set of indexed action primitives includes a decrement primitive that indicates whether or not credit should be decremented from a corresponding credit bucket; and

wherein the stored set of indexed action primitives includes an increment primitive that indicates whether or not a credit bucket should be refreshed with credits according to a corresponding refresh rate; and

wherein the policing module is configured to decrement credit from the corresponding credit bucket and refresh credits of the corresponding credit bucket according to the corresponding refresh rate.

13. The hardware-based system of claim 12 wherein the action module simultaneously stores multiple sets of indexed action primitives that define different policing algorithms.

14. The hardware-based system of claim 12 wherein the relationship between the condition primitives and the action primitives defines a single rate three color marker (srTCM) policing algorithm.

15. The hardware-based system of claim 12 wherein the relationship between the condition primitives and the action primitives defines a two rate three color marker (trTCM) policing algorithm.

16. The hardware-based system of claim 12 wherein the relationship between the condition primitives and the action primitives defines a Metro Ethernet Forum (MEF) service policing algorithm.

17. The hardware-based system of claim 12 wherein the set of indexed action primitives determines the outgoing color of the datagram.

18. The hardware-based system of claim 12 wherein the set of indexed action primitives determines whether a policing failure will be reported.

19. The hardware-based system of claim 12 wherein the set of indexed action primitives determines whether the datagram will be dropped.

20. The hardware-based system of claim 12 wherein the set of indexed action primitives determines:

the outgoing color of the datagram;

whether a policing failure will be reported; and

whether the datagram will be dropped.

21. The hardware-based method of claim 1 wherein:

the set of indexed action primitives comprises a first subset of action primitives and a second subset of action primitives;

the first subset of action primitives includes action primitives that are related to datagrams;

the second subset of action primitives includes action primitives that are related to bucket fullness.

22. The hardware-based method of claim 1 wherein:

the set of indexed action primitives comprises a first subset of action primitives and a second subset of action primitives;

the first subset of action primitives includes action primitives that indicate that a credit bucket should be decremented;

the second subset of action primitives includes action primitives that indicate whether or not a credit bucket should be refreshed.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jan 30, 2014
From: COMERICA BANK
To: BAY MICROSYSTEMS, INC.
Reel/Frame 032093/0430 →
SECURITY AGREEMENT Recorded Dec 30, 2008
From: BAY MICROSYSTEMS, INC.
To: COMERICA BANK
Reel/Frame 022043/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2008
From: TRINH, MAN; ONO, GOICHIRO; WU, YIHUI
To: BAY MICROSYSTEMS, INC.
Reel/Frame 020660/0718 →
Continuity (2)
Provisional Application 60893958 · Mar 9, 2007
Related Publication 20080219160A1 · Sep 11, 2008