IP Library Granted Patent US 8,442,056
Granted Patent B2
US 8,442,056 · App. 13/170,427 · Granted May 14, 2013

Scheduling packets in a packet-processing pipeline

Inventors: Kurt Thomas Boden (Strangnas, SE); Jakob Carlstrom (Uppsala, SE)
Assignee: Marvell International Ltd.
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,442,056
App. No.
13/170,427
Granted
May 14, 2013
Kind
B2
Abstract

The disclosed embodiments relate to a packet-processing system. This system includes an input which is configured to receive packets, wherein the packets include control-message (CM) packets and traffic packets. It also includes a pipeline to process the packets, wherein the pipeline includes access points for accessing an engine which services requests for packets, wherein CM packets and traffic packets access the engine through different access points. The system additionally includes an arbiter to schedule packets entering the pipeline. While scheduling the packets, the arbiter is configured to account for empty slots in the pipeline to ensure that when CM packets and traffic packets initiate accesses to the engine through different access points, the accesses do not cause an overflow at an input queue for the engine.

Claims (112)

1. A packet-processing system, comprising:

an input configured to receive packets, wherein the packets include control-message (CM) packets and traffic packets;

a pipeline configured to process the packets, wherein the pipeline includes access points for accessing an engine which services requests for packets, and wherein CM packets and traffic packets access the engine through different access points; and

an arbiter configured to schedule packets entering the pipeline;

wherein while scheduling the packets, the arbiter is configured to account for empty slots in the pipeline to ensure that when CM packets and traffic packets initiate accesses to the engine through different access points the accesses do not cause an overflow at an input queue for the engine.

2. The packet-processing system of claim 1 , wherein while scheduling the packets, the arbiter is configured to:

initialize a resource shaper variable (RS) to zero;

increment RS for each time interval;

subtract a traffic-packet cost C T from RS for each traffic packet;

subtract a CM-packet cost C CM from RS for each CM packet; and

determine whether a CM packet can enter the pipeline based on the value of RS and an associated timer T.

3. The packet-processing system of claim 2 , wherein if an access point A CM for CM packets precedes an access point A T for traffic packets in the pipeline, the arbiter is configured to:

allow a previous CM packet which addresses the engine through A CM to enter the pipeline;

receive a next CM packet which also addresses the engine through A CM ; and

when RS reaches zero,

start timer T, wherein T counts down a number of pipeline stages between A CM and A T ; and

if T reaches 0 and if RS=0, allow the next CM packet to enter the pipeline.

4. The packet-processing system of claim 2 , wherein if an access point A CM for CM packets follows an access point A T for traffic packets in the pipeline, the arbiter is configured to:

allow a previous CM packet which addresses the engine through A CM to enter the pipeline;

receive a next CM packet which also addresses the engine through A CM ; and

when RS reaches zero,

allow the next CM packet to enter the pipeline;

start timer T, wherein T counts down a number of pipeline stages between A T and A CM ;

while T is running, freeze the value of RS so that RS does not change; and

when T reaches zero, unfreeze the value of RS.

5. The packet-processing system of claim 1 , wherein the engine is configured to perform one or more of the following:

a read operation into a lookup table;

a write operation into a lookup table;

a TCAM engine search; and

a checksum computation.

6. The packet-processing system of claim 1 , wherein each access point in the pipeline is associated with a delay buffer of fixed length.

7. The packet-processing system of claim 1 , wherein the pipeline is configured to process packets continuously without stalling.

8. The packet-processing system of claim 1 , further comprising:

one or more line interfaces;

one or more system interfaces that support an optional connection to a switching core; and

one or more packet buffers to facilitate internal switching within the packet-processing system.

9. The packet-processing system of claim 8 ,

wherein the pipeline can execute an ingress program for each ingress packet; and

wherein the pipeline can execute an egress program for each egress packet.

10. The packet-processing system of claim 1 ,

wherein the CM packets access the engine through one or more CM access points A CMi ;

wherein the traffic packets access the engine through one or more traffic access points A Ti ; and

wherein the CM access points A CMi are different from the traffic access points A Ti .

11. A method for operating a packet-processing system, comprising:

receiving a stream of packets, wherein the packets include control-message (CM) packets and traffic packets; and

directing packets from the stream into a pipeline that processes packets, wherein the pipeline includes access points for accessing an engine which services requests for packets, and wherein CM packets and traffic packets access the engine through different access points;

wherein directing the packets into the pipeline involves scheduling the packets to account for empty slots in the pipeline to ensure that when CM packets and traffic packets initiate accesses to the engine through different access points the accesses do not cause an overflow at an input queue for the engine.

12. The method of claim 11 , wherein scheduling the packets involves:

initializing a resource shaper variable (RS) to zero;

incrementing RS for each time interval;

subtracting a traffic-packet cost C T from RS for each traffic packet;

subtracting a CM-packet cost C CM from RS for each CM packet; and

determining whether a CM packet can enter the pipeline based on the value of RS and an associated timer T.

13. The method of claim 12 , wherein if an access point A CM for CM packets precedes an access point A T for traffic packets in the pipeline, scheduling the packets involves:

allowing a previous CM packet which addresses the engine through A CM to enter the pipeline;

receiving a next CM packet which also addresses the engine through A CM ; and

after RS reaches zero,

starting timer T, wherein T counts down a number of pipeline stages between A CM and A T , and

if T reaches 0 and if RS=0, allowing the next CM packet to enter the pipeline.

14. The method of claim 12 , wherein if an access point A CM for CM packets follows an access point A T for traffic packets in the pipeline, scheduling the packets involves:

allowing a previous CM packet which addresses the engine through A CM to enter the pipeline;

receiving a next CM packet which also addresses the engine through A CM ; and

after RS reaches zero,

allowing a CM packet to enter the pipeline;

starting timer T, wherein T counts down a number of pipeline stages between A T and A CM ;

while T is running, freezing the value of RS so that RS does not change; and

when T reaches zero, unfreezing the value of RS.

15. The method of claim 11 , wherein the engine is configured to perform one or more of the following:

a read operation into a lookup table;

a write operation into a lookup table;

a TCAM engine search; and

a checksum computation.

16. The method of claim 11 , wherein each access point in the pipeline is associated with a delay buffer of fixed length.

17. The method of claim 11 , wherein the pipeline is configured to process packets continuously without stalling.

18. The method of claim 11 , wherein the packet-processing system further comprises:

one or more line interfaces;

one or more system interfaces that support an optional connection to a switching core; and

one or more packet buffers to facilitate internal switching within the packet-processing system.

19. The method of claim 18 ,

wherein the pipeline can execute an ingress program for each ingress packet; and

wherein the pipeline can execute an egress program for each egress packet.

20. The method of claim 11 ,

wherein the CM packets access the engine through one or more CM access points A CMi ;

wherein the traffic packets access the engine through one or more traffic access points A Ti ; and

wherein the CM access points A CMi are different from the traffic access points A Ti .

21. A packet-processing system, comprising:

one or more line interfaces;

a switching core;

a pipeline configured to process packets received from the one or more line interfaces to be sent to the switching core, and packets received from the switching core to be sent to the one or more line interfaces;

wherein the packets include control-message (CM) packets and traffic packets; and

wherein the pipeline includes access points for accessing an engine which services requests for packets, wherein CM packets and traffic packets access the engine through different access points; and

an arbiter configured to schedule packets entering the pipeline, wherein while scheduling the packets, the arbiter is configured to account for empty slots in the pipeline to ensure that when CM packets and traffic packets initiate accesses to the engine through different access points the accesses do not cause an overflow at an input queue for the engine.

22. The packet-processing system of claim 21 , wherein while scheduling the packets, the arbiter is configured to:

initialize a resource shaper variable (RS) to zero;

increment RS for each time interval;

subtract a traffic-packet cost C T from RS for each traffic packet;

subtract a CM-packet cost C CM from RS for each CM packet; and

determine whether a CM packet can enter the pipeline based on the value of RS and an associated timer T.

23. The packet-processing system of claim 22 , wherein if an access point A CM for CM packets precedes an access point A T for traffic packets in the pipeline, the arbiter is configured to:

allow a previous CM packet which addresses the engine through A CM to enter the pipeline;

receive a next CM packet which also addresses the engine through A CM ; and

when RS reaches zero,

start timer T, wherein T counts down a number of pipeline stages between A CM and A T ; and

if T reaches 0 and if RS=0, allow the next CM packet to enter the pipeline.

24. The packet-processing system of claim 22 , wherein if an access point A CM for CM packets follows an access point A T for traffic packets in the pipeline, the arbiter is configured to:

allow a previous CM packet which addresses the engine through A CM to enter the pipeline;

receive a next CM packet which also addresses the engine through A CM ; and

when RS reaches zero,

allow the next CM packet to enter the pipeline;

start timer T, wherein T counts down a number of pipeline stages between A T and A CM ;

while T is running, freeze the value of RS so that RS does not change; and

when T reaches zero, unfreeze the value of RS.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2012
From: MARVELL TECHNOLOGY SWEDEN AB
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027938/0615 →
CHANGE OF NAME Recorded Mar 26, 2012
From: XELERATED NEWCO AB
To: MARVELL TECHNOLOGY SWEDEN AB
Reel/Frame 027930/0941 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: XELERATED AB
To: XELERATED NEWCO AB
Reel/Frame 027387/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2011
From: BODEN, KURT THOMAS; CARLSTROM, JAKOB
To: XELERATED AB
Reel/Frame 027321/0261 →
Continuity (1)
Related Publication 20130003556A1 · Jan 3, 2013