IP Library Granted Patent US 7,769,049
Granted Patent B2
US 7,769,049 · App. 12/253,836 · Granted Aug 3, 2010

Traffic generator using parallel coherent transmit engines

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,769,049
App. No.
12/253,836
Granted
Aug 3, 2010
Kind
B2
Abstract

There is disclosed a packet generator and method of generating a packet flow. The packet generator may include a plurality of parallel transmit engines to form packets for transmission and a multiplexer to coherently interleave packets formed by the plurality of transmit engines.

Claims (53)

1. A packet generator to transmit a data flow, comprising:

a plurality of parallel transmit engines to generate packets for transmission

a multiplexer to coherently interleave packets generated by the plurality of transmit engines to form the data flow

a schedule and overlay engine

wherein the schedule and overlay engine provides packet forming data to the plurality of transmit engines and provides packet sequence data to the multiplexer, the packet forming data including a stream identifier and overlay data for each packet

wherein each transmit engine further comprises

a template memory storing a plurality of packet templates associated with a corresponding plurality of streams

a background engine to select a packet template from the template memory in accordance with the stream identifier

an overlay fill engine to insert the overlay data into the selected packet template.

2. The packet generator of claim 1 , wherein the packet forming data for each packet further includes one or more of a packet length, and payload instructions.

3. The packet generator of claim 1 , wherein each transmit engine further comprises a front end engine including a checksum calculator.

4. The packet generator of claim 1 , wherein the multiplexer further comprises:

a plurality of FIFO buffers, each FIFO buffer coupled to receive packets from a corresponding one of the plurality of transmit engines

a data selector to retrieve packets from the plurality of FIFO buffers to form the data flow.

5. The packet generator of claim 4 , wherein the multiplexer further comprises:

another FIFO buffer coupled between the schedule and overlay engine and the data selector to hold the packet sequence data.

6. The packet generator of claim 4 , wherein the multiplexer further comprises:

a real time clock

a timestamp engine coupled between the data selector and a network interface unit to add a timestamp in accordance with the real time clock to at least some of the packets prior to transmission via the network interface unit.

7. The packet generator of claim 6 , wherein

the packet sequence data includes a target transmit time, and

wherein the multiplexer outputs each packet at the corresponding target transmit time as indicated by the real time clock.

8. The packet generator of claim 1 , wherein

the multiplexer outputs the data flow at a first data rate, and

the transmit engines generate packets at a second data rate lower than the first data rate.

9. The packet generator of claim 8 , wherein

the second data rate is equal to the first data rate divided by the number of transmit engines in the plurality of transmit engines.

10. The packet generator of claim 1 , wherein coherently interleaved packets are added to the data flow in a sequence determined prior to the generation of the packets.

11. A method of generating a packet flow, comprising:

providing packet forming data to a plurality of transmit engines, the packet forming data including a stream identifier and overlay data for each packet

providing packet sequence data to a multiplexer

the plurality of transmit engines generating packets, wherein generating each packet further comprises

retrieving a template associated with the steam identifier from a template memory storing a plurality of templates respectively associated with a corresponding plurality of streams

inserting the overlay data into the retrieved template

the multiplexer coherently interleaving packets generated by the plurality of transmit engines to form the packet flow in accordance with the packet sequence data.

12. The method of generating a packet flow of claim 11 , further comprising:

storing definitions for the plurality of streams

determining, from the stored definitions, a packet sequence

generating the packet sequence data indicating the order in which packets from the plurality of packet streams are to be interleaved to form the packet sequence

identifying a next packet in the packet sequence

assigning the next packet to one of the plurality of transmit engines.

13. The method of generating a packet flow of claim 12 , wherein the assigning further comprises

determining the stream identifier of the next packet

determining a length of the next packet

determining the overlay data for the next packet

providing the packet forming data including the stream identifier, the length, and the overlay data to the assigned transmit engine.

14. The method of generating a packet flow of claim 12 , wherein the coherently interleaving further comprises:

storing the packets generated by the plurality of transmit engines in a corresponding plurality of FIFO buffers

selecting packets for transmission from the plurality of FIFO buffers in accordance with the packet sequence data.

15. The method of generating a packet flow of claim 14 ,

wherein generating the packet sequence data includes setting target transmit times for at least some of the packets, and

wherein coherently interleaving includes transmitting packets at the respective target transmit times.

16. The method of generating a packet flow of claim 11 , wherein coherently interleaving comprises adding packets to the data flow in a sequence determined prior to the generation of the packets.

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 Dec 16, 2008
From: PEPPER, GERALD; TRAN, VIET QUOC
To: IXIA
Reel/Frame 021984/0474 →