IP Library Granted Patent US 8,869,151
Granted Patent B2
US 8,869,151 · App. 13/250,938 · Granted Oct 21, 2014

Packet draining from a scheduling hierarchy in a traffic manager of a network processor

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,869,151
App. No.
13/250,938
Granted
Oct 21, 2014
Kind
B2
Abstract

Described embodiments provide for controlling a state of each node in a scheduling hierarchy of a network processor. A traffic manager generates a tree scheduling hierarchy having a root scheduler and N scheduler levels. The network processor generates tasks corresponding to received packets. A traffic manager enqueues received tasks in a queue of the scheduling hierarchy associated with a data flow. The traffic manager maintains scheduling data structures for each node in the scheduling hierarchy. The scheduling data structures include a backpressure indicator and a timer indicator. If the backpressure indicator is set, the traffic manager sets the node as unavailable for scheduling and removes the node from the scheduling hierarchy. If the timer indicator is set, the traffic managers sets the node as unavailable for scheduling. Otherwise, if neither the backpressure indicator nor the timer indicator is set, the traffic manager sets the node as available for scheduling.

Claims (92)

1. A method of controlling a state of each node in a scheduling hierarchy of a network processor having a plurality of processing modules and at least one shared memory with packet data, the method comprising:

generating, by a traffic manager of the network processor, a scheduling hierarchy comprising a tree structure of a root scheduler and N scheduler levels, wherein a scheduler is a branch node and a queue is a leaf node of the scheduling hierarchy, wherein N is a positive integer;

generating, by the network processor, one or more tasks corresponding to each of a plurality of received packets associated with one or more data flows of the network processor;

enqueuing, by the traffic manager, a task provided by one of the plurality of processing modules of the network processor to an associated queue of the scheduling hierarchy, wherein the queue is associated with a data flow corresponding to the received task;

maintaining one or more scheduling data structures for each node in the scheduling hierarchy, wherein the one or more scheduling data structures comprise a backpressure indicator and a timer indicator;

if the backpressure indicator is set:

setting the node as unavailable for scheduling;

removing the node from the scheduling hierarchy;

if the timer indicator is set:

setting the node as unavailable for scheduling;

otherwise, if neither the backpressure indicator nor the timer indicator is set:

setting the node as available for scheduling.

2. The method of claim 1 , further comprising:

setting the backpressure indicator of a given node based on a backpressure request by one of the processing modules to reduce a scheduling rate of the given node.

3. The method of claim 1 , further comprising:

setting the timer indicator of a given node based on a timer event request by the corresponding parent scheduler of the given node.

4. The method of claim 1 , wherein the one or more scheduling data structures comprise an in-hierarchy indicator corresponding to the given node of the scheduling hierarchy, and wherein the step of removing the node from the scheduling hierarchy comprises:

clearing the in-hierarchy indicator of the given node.

5. The method of claim 4 , wherein the step of setting the node as available for scheduling comprises:

setting the in-hierarchy indicator of the given node; and

clearing, if set, (i) the backpressure indicator of the given node and (ii) the timer indicator of the given node.

6. The method of claim 4 , further comprising:

determining a task count corresponding to the given node;

if the task count is zero, clearing the in-hierarchy indicator of the given node.

7. The method of claim 1 , further comprising:

receiving a backpressure request from one of the plurality of processing modules of the network processor, wherein the backpressure request comprises a ID value of the given node; and

setting the backpressure indicator of the given node based on the received backpressure request.

8. The method of claim 7 , further comprising:

receiving a backpressure release request from the corresponding one of the plurality of processing modules of the network processor, wherein the backpressure release request corresponds to the backpressure request; and

clearing the backpressure indicator of the given node based on the received backpressure release request.

9. The method of claim 8 , further comprising:

if the timer indicator is not set:

determining a task count corresponding to the given node;

if the task count is non-zero, setting the in-hierarchy indicator of the given node;

otherwise, if the timer indicator is set:

maintaining the in-hierarchy indicator as cleared for the given node.

10. The method of claim 1 , further comprising:

receiving a timer event from a timer module of the network processor; and

setting the timer indicator of the given node based on the received timer event.

11. The method of claim 10 , further comprising:

receiving a timer release request from the timer module, wherein the timer release request corresponds to the timer request; and

clearing the timer indicator of the given node based on the received timer release request.

12. The method of claim 11 , further comprising:

if the backpressure indicator is not set:

setting the in-hierarchy indicator of the given node;

otherwise, if the backpressure indicator is set:

maintaining the in-hierarchy indicator as cleared for the given node.

13. The method of claim 11 , further comprising:

counting, by the timer module, for a predetermined time before sending the timer release request for the given node.

14. A non-transitory machine-readable medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method of controlling a state of each node in a scheduling hierarchy of a network processor having a plurality of processing modules and at least one shared memory with packet data, the method comprising:

generating, by a traffic manager of the network processor, a scheduling hierarchy comprising a tree structure of a root scheduler and N scheduler levels, wherein a scheduler is a branch node and a queue is a leaf node of the scheduling hierarchy, wherein N is a positive integer;

generating, by the network processor, one or more tasks corresponding to each of a plurality of received packets associated with one or more data flows of the network processor;

enqueuing, by the traffic manager, a task provided by one of the plurality of processing modules of the network processor to an associated queue of the scheduling hierarchy, wherein the queue is associated with a data flow corresponding to the received task;

maintaining one or more scheduling data structures for each node in the scheduling hierarchy, wherein the one or more scheduling data structures comprise a backpressure indicator and a timer indicator;

if the backpressure indicator is set:

setting the node as unavailable for scheduling;

removing the node from the scheduling hierarchy;

if the timer indicator is set:

setting the node as unavailable for scheduling;

otherwise, if neither the backpressure indicator nor the timer indicator is set:

setting the node as available for scheduling.

15. The non-transitory machine-readable medium of claim 14 , further comprising:

setting the backpressure indicator of a given node based on a backpressure request by one of the processing modules to reduce a scheduling rate of the given node; and

setting the timer indicator of a given node based on a timer event request by the corresponding parent scheduler of the given node.

16. The non-transitory machine-readable medium of claim 14 , wherein the one or more scheduling data structures comprise an in-hierarchy indicator corresponding to the given node of the scheduling hierarchy, and wherein the step of removing the node from the scheduling hierarchy comprises:

clearing the in-hierarchy indicator of the given node; and

wherein the step of setting the node as available for scheduling comprises:

setting the in-hierarchy indicator of the given node; and

clearing, if set, (i) the backpressure indicator of the given node and (ii) the timer indicator of the given node.

17. The non-transitory machine-readable medium of claim 16 , further comprising:

determining a task count corresponding to the given node;

if the task count is zero, clearing the in-hierarchy indicator of the given node.

18. The non-transitory machine-readable medium of claim 14 , further comprising:

receiving a backpressure request from one of the plurality of processing modules of the network processor, wherein the backpressure request comprises a ID value of the given node; and

setting the backpressure indicator of the given node based on the received backpressure request;

receiving a backpressure release request from the corresponding one of the plurality of processing modules of the network processor, wherein the backpressure release request corresponds to the backpressure request; and

clearing the backpressure indicator of the given node based on the received backpressure release request.

19. A network processor comprising:

a plurality of processing modules and at least one shared memory with packet data, wherein one of the plurality of processing modules is configured to generate one or more tasks corresponding to each of a plurality of received packets associated with one or more data flows;

a traffic manager of the network processor configured to:

receive a task corresponding to a data flow, the task provided by one of the plurality of processing modules of the network processor;

generate a scheduling hierarchy comprising a tree structure of a root scheduler and N scheduler levels, wherein a scheduler is a branch node and a queue is a leaf node of the scheduling hierarchy, wherein N is a positive integer;

enqueue each received task in a queue of the scheduling hierarchy associated with the received task, the queue having a corresponding parent scheduler at each of one or more next levels of the scheduling hierarchy up to a root scheduler of the scheduling hierarchy, wherein the queue and one or more corresponding parent schedulers at each level of the scheduling hierarchy form a branch of the scheduling hierarchy;

maintain one or more scheduling data structures for each node in the scheduling hierarchy, wherein the one or more scheduling data structures comprise a backpressure indicator and a timer indicator;

if the backpressure indicator is set, the traffic manager is configured to:

set the node as unavailable for scheduling;

remove the node from the scheduling hierarchy;

if the timer indicator is set, the traffic manager is configured to:

set the node as unavailable for scheduling;

otherwise, if neither the backpressure indicator nor the timer indicator is set, the traffic manager is configured to:

set the node as available for scheduling.

20. The network processor of claim 19 , wherein the network processor is implemented as an integrated circuit chip.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE FROM IP LEGAL SERVICES TO LSI CORPORATION PREVIOUSLY RECORDED ON REEL 027006 FRAME 0347. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 18, 2011
From: SUNDARARAMAN, BALAKRISHNAN; NEMAWARKAR, SHASHANK; SONNIER, DAVID; AULAKH, SHAILENDRA
To: LSI CORPORATION
Reel/Frame 027082/0800 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2011
From: SUNDARARAMAN, BALAKRISHNAN; NEMAWARKAR, SHASHANK; SONNIER, DAVID; AULAKH, SHAILENDRA
To: IP LEGAL SERVICES
Reel/Frame 027006/0347 →