IP Library Granted Patent US 8,576,713
Granted Patent B2
US 8,576,713 · App. 12/766,704 · Granted Nov 5, 2013

Traffic generator with priority flow control

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,576,713
App. No.
12/766,704
Granted
Nov 5, 2013
Kind
B2
Abstract

Port units, methods, and computer readable storage media for testing a network are disclosed. A traffic generator may generate and transmit test traffic over a network under test, the test traffic including a plurality of interleaved packet streams, each traffic stream associated with one of a plurality of flow control groups. A traffic receiver may receive flow control packets from the network under test. The traffic generator may be configured to stop transmission of all packet streams associated with one or more paused flow control groups when the traffic receiver receives a flow control packet identifying the one or more paused flow control groups.

Claims (93)

1. A port unit, comprising:

a traffic receiver to receive flow control packets from a network under test; and

a traffic generator pipeline to generate and transmit test traffic over the network under test, the test traffic including a plurality of interleaved packet streams, each packet stream associated with one of a plurality of flow control groups, the traffic generator pipeline comprising:

a scheduler to determine a sequence in which packets belonging to the plurality of packet streams are generated, and

two or more processing engines, including a first processing engine and a last processing engine, to perform sequential stages of a packet generation process, wherein

the first processing engine inputs data indicative of the packet sequence from the scheduler and outputs flow control data to the scheduler,

the last processing engine outputs competed packets ready for transmission, selectively pausing packet streams associated with one or more paused flow control groups in accordance with the received flow control packets,

each processing engine except the last processing engine outputs packet forming data to a subsequent processing engine in the pipeline, and

each processing engine except the first processing engine outputs flow control data to a previous processing engine in the pipeline.

2. The port unit of claim 1 , wherein

each of the two or more processing engines includes a respective bank of first-in-first-out (FIFO) queues, each bank including a plurality of FIFO queues associated respectively with the plurality of flow control groups, each FIFO queue to store packet forming data associated with the respective flow control group.

3. The port unit of claim 2 , wherein

the flow control data output by each processing engine indicates, for each flow control group, whether or not the FIFO queues within the processing engine can accept additional packet forming data.

4. The port unit of claim 3 , wherein

when the last processing engine pauses packet streams associated with one or more paused flow control groups, other processing engines in the traffic generator pipeline continue processing packets associated with each paused flow control group until flow control data received from an adjacent processing engine indicates the respective FIFO queue in the adjacent processing engine cannot accept additional packet forming data.

5. The port unit of claim 3 , wherein

the scheduler is configured to stop scheduling packet streams associated with each paused flow control group when the respective FIFO queue in the first processing engine cannot accept additional packet forming data.

6. The port unit of claim 2 , wherein:

the first processing engine is a background engine to retrieve a packet template for each packet in accordance with packet forming data received from the scheduler, the background engine including a first bank of FIFO queues;

the last processing engine is a front end engine to insert checksums and insert a time stamp into the filled packet template to complete each packet, the front end engine including a third bank of FIFO queues; and

the traffic generator pipeline further comprises a fill engine coupled between the background engine and the front end engine to insert content into variable content fields within the packet template to form a filled packet template, the fill engine including a second bank of FIFO queues.

7. The port unit of claim 6 , the traffic generator pipeline further comprising:

flow control logic to provide first flow control data to the front end engine based on received flow control packets.

8. The port unit of claim 7 , wherein

the front end engine provides second flow control data to the fill engine,

the fill engine provides third flow control data to the background engine, and

the background engine provides scheduler flow control data to the scheduler.

9. The port unit of claim 8 , wherein

when the second flow control data indicates a FIFO queue with in the front end engine cannot accept additional packet forming data, the fill engine stops processing packet streams associated with the corresponding flow control group,

when the third flow control data indicates a FIFO queue within the fill engine cannot accept additional packet forming data, the background engine stops processing packet streams associated with the corresponding flow control group, and

when the scheduler flow control data indicates a FIFO queue within the background engine cannot accept additional packet forming data, the scheduler stops scheduling packet streams associated with the corresponding flow control group.

10. A method for testing a network, comprising:

receiving flow control packets from a network under test; and

generating test traffic and transmitting the test traffic over the network under test, the test traffic including a plurality of interleaved packet streams, each packet stream associated with one of a plurality of flow control groups,

wherein generating test traffic further comprises:

generating packets using a traffic generator pipeline comprising a scheduler and two or more processing engines including a first processing engine and a last processing engine,

the first processing engine inputting data indicative of the packet sequence from the scheduler and outputting flow control data to the scheduler,

the last processing engine outputting competed packets ready for transmission, selectively pausing packet streams associated with one or more paused flow control groups in accordance with the received flow control packets,

each processing engine except the last processing engine outputting packet forming data to a subsequent processing engine in the pipeline, and

each processing engine except the first processing engine outputting flow control data to a previous processing engine in the pipeline.

11. The method of claim 10 , wherein:

each of the two or more processing engines includes a bank of first-in-first-out (FIFO) queues, each bank including a plurality of FIFO queues associated respectively with the plurality of flow control groups, and

the method further comprises storing packet forming data in the FIFO queues associated with the respective flow control group.

12. The method of claim 11 , wherein

the flow control data output by each processing engine indicates, for each flow control group, whether or not the FIFO queues within the processing engine can accept additional packet forming data.

13. The method of claim 12 , generating test traffic further comprising:

when the last processing engine pauses packet streams associated with one or more paused flow control groups, each other processing engine in the traffic generator pipeline continuing to process packets associated with each paused flow control group until flow control data received from an adjacent processing unit indicates the respective FIFO queue is the adjacent processing engine cannot accept additional packet forming data.

14. The method of claim 12 , the method further comprising:

the scheduler stopping scheduling packet streams associated with each paused flow control group when flow control data received by the scheduler from the first processing engine indicates the respective FIFO queue in the first processing engine cannot accept additional packet forming data.

15. The method of claim 11 , wherein

the first processing engine is a background engine, the last processing engine is a front end engine and the packet generator pipeline further comprises a fill engine coupled between the background engine and the front end engine, and

generating test traffic further comprises:

the background engine retrieving a packet template for each packet in accordance with packet forming instructions received from the scheduler, the background engine including a first bank of FIFO queues;

the fill engine inserting content into variable content fields within the packet template to form a filled packet template, the fill engine including a second bank of FIFO queues; and

the front end engine inserting checksums and inserting a time stamp into the filled packet template to complete each packet, the front end engine including a third bank of FIFO queues.

16. The method of claim 15 , the method further comprising:

providing first flow control data to the front end engine based on received flow control packets.

17. The method of claim 16 , generating packets further comprising:

the front end engine providing second flow control data to the fill engine;

the fill engine providing third flow control data to the background engine; and

the background engine providing scheduler flow control data to the scheduler.

18. The method of claim 17 , wherein

when the second flow control data indicates a FIFO queue within the front end engine cannot accept additional packet forming data, the fill engine stopping processing packet streams associated with the corresponding flow control group,

when the third flow control data indicates a FIFO queue within the fill engine cannot accept additional packet forming data, the background engine stopping processing packet streams associated with the corresponding flow control group, and

when the scheduler flow control data indicates a FIFO queue within the background engine cannot accept additional packet forming data, the scheduler stopping scheduling packet streams associated with the corresponding flow control group.

19. A non-transitory computer-readable storage medium storing configuration data which, when used to program a programmable device, configures the programmable device to include a traffic generator pipeline to generate and transmit test traffic over a network under test, the test traffic including a plurality of interleaved packet streams, each packet stream associate with one of a plurality of flow control groups, the traffic generator pipeline comprising:

a scheduler to determine a sequence in which packets belonging to the plurality of packet stream are generated; and

two or more processing engines, including a first processing engine and a last processing engine, to perform sequential stages of a packet generation process, wherein

the first processing engine inputs data indicative of the packet sequence from the scheduler and outputs flow control data to the scheduler,

the last processing engine outputs competed packets ready for transmission, selectively pausing packet streams associated with one or more paused flow control groups in accordance with the received flow control packets,

each processing engine except the last processing engine outputs packet forming data to a subsequent processing engine in the pipeline, and

each processing engine except the first processing engine outputs flow control data to a previous processing engine in the pipeline.

20. The non-transitory computer-readable storage medium of claim 19 , wherein

each processing engine in the traffic generator pipeline contains a bank of FIFO queues, each bank including a plurality of FIFO queues associated respectively with the plurality of flow control groups, each FIFO queue to store packet forming data associated with the respective flow control group, and

the flow control data propagated by each processing engine indicates, for each flow control group, whether or not the FIFO queues within the processing engine can accept additional packet forming data.

21. The non-transitory computer-readable storage medium of claim 20 , wherein

when the last processing engine pauses transmission of packet streams associated with one or more paused flow control groups, each other processing engine continues generating packets associated with each paused flow control group until the respective FIFO queue in a subsequent processing engine cannot accept additional packet forming data.

22. The non-transitory computer-readable storage medium of claim 20 , wherein

the scheduler is configured to stop scheduling packet streams associated with each paused flow control groups when the respective FIFO queue in the first processing engine cannot accept additional packet forming data.

23. The non-transitory computer-readable storage medium of claim 19 , wherein:

the first processing engine is a background engine to retrieve a packet template for each packet in accordance with packet forming data received from the scheduler, the background engine including a first bank of FIFO queues;

the last processing enema front end engine to insert checksums and insert a time stamp into the filled packet template to complete each packet, the front end engine including a third bank of FIFO queues; and

the packet generator pipeline further comprises a fill engine coupled between the background engine and the front end engine to insert content into variable content fields within the packet template to form a filled packet template, the fill engine including a second bank of FIFO queues.

24. The non-transitory computer-readable storage medium of claim 23 , the traffic generator pipeline further comprising:

flow control logic to provide first flow control data to the front end engine based on received flow control packets.

25. The non-transitory computer-readable storage medium of claim 24 , wherein

the front end engine provides second flow control data to the fill engine,

the fill engine provides third flow control data to the background engine, and

the background engine provides scheduler flow control data to the scheduler.

26. The non-transitory computer-readable storage medium of claim 25 , wherein

when the second flow control data indicates a FIFO queue with in the front end engine cannot accept additional packet forming data, the fill engine stops processing packet streams associated with the corresponding flow control group,

when the third flow control data indicates a FIFO queue within the fill engine cannot accept additional packet forming data, the background engine stops processing packet streams associated with the corresponding flow control group, and

when the scheduler flow control data indicates a FIFO queue within the background engine cannot accept additional packet forming data, the scheduler stops scheduling packet streams associated with the corresponding flow control group.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: IXIA
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2010
From: KAMERKAR, SUSHIL S.; LIU, LIMIN; JETHRA, ANUP; PEPPER, GERALD
To: IXIA
Reel/Frame 024290/0499 →