IP Library Granted Patent US 7,616,568
Granted Patent B2
US 7,616,568 · App. 11/557,059 · Granted Nov 10, 2009

Generic packet generation

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,616,568
App. No.
11/557,059
Granted
Nov 10, 2009
Kind
B2
Abstract

There are disclosed processes and systems relating to simulated real-time packet generation to test a communications network. A first packet stream is defined and transmitted. Each packet in the first packet stream is composed from a first background data field and one or more user defined fields that overlay the first background data field.

Claims (107)

1. A process to generate packets, comprising:

defining a first packet stream comprising a first plurality of packets;

composing and transmitting the first plurality of packets at a first packet frequency, wherein

the transmission of the first plurality of packets is controlled by a first series of interrupts from a hardware timer, and

each packet of the first plurality of packets is comprised of a first background data field and one or more user defined fields that overlay the first background data field;

defining a second packet stream comprising a second plurality of packets;

composing and transmitting the second plurality of packets at a second packet frequency different from the first packet frequency, wherein

the first packet stream and the second packet stream are transmitted, at least in part, concurrently, and

the transmission of the second plurality of packets at the second packet frequency is controlled by a second series of interrupts interleaved with the first series of interrupts from the hardware timer; and

generating a time reference signal controlled by a third series of interrupts interleaved with the first series of interrupts and second series of interrupts from the hardware timer.

2. The process to generate packets of claim 1 , wherein the first background data field is fixed and common to all packets of the first plurality of packets.

3. The process to generate packets of claim 2 , wherein the one or more user defined fields contain data that changes between successive packets of the first plurality of packets.

4. The process to generate packets of claim 3 , wherein a user defined field is selected from the group consisting of a random number, a counter, an IP checksum, a UDP checksum, and a value selected sequentially from a table of values.

5. The process to generate packets of claim 1 , wherein

defining a first packet stream is performed by an application program operating in a user space

composing and transmitting the plurality of packets is performed by a generic packet generator program operating in kernel space.

6. The process to generate packets of claim 1 , wherein defining a first packet stream further comprises:

defining the first background data, a number of packets in the first plurality of packets, and a first packet frequency

defining the type, position, length, and at least one parameter for each of the one or more user defined fields.

7. The process to generate packets of claim 1 , wherein

defining a first packet stream further comprises defining a maximum packet length, a minimum packet length, and a statistical distribution between the maximum packet length and the minimum packet length

composing and transmitting the first plurality of packets further comprises randomly determining the length of each packet as defined in the first packet stream description.

8. A process to generate packets, comprising:

composing and transmitting a first packet stream at a first packet frequency;

composing and transmitting a second packet stream at a second packet frequency not equal to the first packet frequency; and

controlling the transmission of the first packet stream and the second packet stream by interrupts from a single hardware timer,

wherein the first packet stream and the second packet stream are transmitted, at least in part, concurrently, and

wherein controlling the transmission of the first packet stream and the second packet stream further comprises:

identifying a most urgent packet, where the most urgent packet is either the next packet to be transmitted from the first packet stream or the next packet to be transmitted from the second packet stream, whichever has to be transmitted first;

determining a time interval between the present time and a required time to initiate transmission of the most urgent packet;

setting the hardware timer to issue an interrupt after the time interval;

receiving the interrupt from the hardware timer;

initiating transmission of the most urgent packet; and

repeating from identifying a most urgent packet until all packets in the first packet stream and the second packet stream have been transmitted.

9. A process to generate packets, comprising:

composing and transmitting a plurality of packet streams at multiple packet frequencies; and

controlling the transmission of the plurality of packet streams using interrupts from a single hardware timer,

wherein the plurality of packet streams are transmitted, at least in part, concurrently, and

wherein controlling the transmission of the plurality of streams of packets further comprises:

identifying a most urgent packet, wherein the most urgent packet is the next packet to be transmitted selected from all of the plurality of packet streams;

determining a time interval between the present time and a required time to initiate transmission of the most urgent packet;

setting the hardware timer to issue an interrupt after the time interval;

receiving the interrupt from the hardware timer;

initiating transmission of the most urgent packet and

repeating from identifying a most urgent packet until all the packets in the plurality of packet streams have been transmitted.

10. The process to generate packets of claim 9 , where in identifying a most urgent packet further comprises:

sorting the packet streams into a plurality of frequency groups where all periodic events in a frequency group occur at the same frequency

for each frequency group:

sorting the packet streams by order of occurrence

forming an ordered doubly linked list of timer data structures, each timer data structure associated with one of the plurality of packet streams and each timer data structure including a pointer to a callback function to initiate transmission of the next packet in the associated packet stream

forming a doubly linked list of frequency data structures, wherein

each frequency data structure corresponds to a frequency group

each frequency data structure includes a pointer to the timer data structure corresponding to the packet stream containing the next packet to be transmitted within the corresponding frequency group

setting a root pointer to point to the frequency data structure corresponding to the frequency group containing the most urgent packet.

11. A computing device to generate packets, the computing device comprising:

a processor;

a memory coupled with the processor;

a hardware interface to the communication network;

a hardware timer; and

a computer readable storage medium having instructions stored thereon which when executed cause the computing device to perform actions comprising:

defining a first packet stream comprising a first plurality of packets;

composing and transmitting the first plurality of packets at a first packet frequency, wherein

the transmission of the first plurality of packets is controlled by a first series of interrupts from the hardware timer, and

each packet of the first plurality of packets is comprised of a first background data field and one or more user defined fields that overlay the first background data field;

defining a second packet stream comprising a second plurality of packets:

composing and transmitting the second plurality of packets at a second packet frequency different from the first packet frequency, wherein

the first packet stream and the second packet stream are transmitted, at least in part, concurrently, and

the transmission of the second plurality of packets at the second packet frequency is controlled by a second series of interrupts interleaved with the first series of interrupts from the hardware timer; and

generating a time reference signal controlled by a third series of interrupts interleaved with the first series of interrupts and second series of interrupts from the hardware timer.

12. A computer readable storage medium having instructions stored thereon which when executed by a computing device will cause the computing device to perform actions comprising:

defining a first packet stream comprising a first plurality of packets;

composing and transmitting the first plurality of packets at a first packet frequency, wherein

the transmission of the first plurality of packets is controlled by a first series of interrupts from a hardware timer, and

each packet of the first plurality of packets is comprised of a first background data field and one or more user defined fields that overlay the first background data field;

defining a second packet stream comprising a second plurality of packets;

composing and transmitting the second plurality of packets at a second packet frequency different from the first packet frequency, wherein

the first packet stream and the second packet stream are transmitted, at least in part, concurrently, and

the transmission of the second plurality of packets at the second packet frequency is controlled by a second series of interrupts interleaved with the first series of interrupts from the hardware timer; and

generating a time reference signal controlled by a third series of interrupts interleaved with the first series of interrupts and second series of interrupts from the hardware timer.

13. A computing device to generate packets, the computing device comprising:

a processor

a memory coupled with the processor

a hardware interface to the communication network

a computer readable storage medium having instructions stored thereon which when executed cause the computing device to perform actions comprising:

composing and transmitting a first packet stream at a first packet frequency;

composing and transmitting a second packet stream at a second packet frequency not equal to the first packet frequency; and

controlling the transmission of the first packet stream and the second packet stream by interrupts from a single hardware timer,

wherein the first packet stream and the second packet stream are transmitted, at least in part, concurrently and

wherein controlling the transmission of the first packet stream and the second packet stream further comprises:

identifying a most urgent packet, where the most urgent packet is either the next packet to be transmitted from the first packet stream or the next packet to be transmitted from the second packet stream, whichever has to be transmitted first;

determining a time interval between the present time and a required time to initiate transmission of the most urgent packet;

setting the hardware timer to issue an interrupt after the time interval;

receiving the interrupt from the hardware timer;

initiating transmission of the most urgent packet; and

repeating from identifying a most urgent packet until all packets in the first packet stream and the second packet stream have been transmitted.

14. A computer readable storage medium having instructions stored thereon which when executed by a computing device will cause the computing device to perform actions comprising;

composing and transmitting a first packet stream at a first packet frequency;

composing and transmitting a second packet stream at a second packet frequency not equal to the first packet frequency; and

controlling the transmission of the first packet stream and the second packet stream by interrupts from a single hardware timer,

wherein the first packet stream and the second packet stream are transmitted, at least in part, concurrently, and

wherein controlling the transmission of the first packet stream and the second packet stream further comprises:

identifying a most urgent packet, where the most urgent packet is either the next packet to be transmitted from the first packet stream or the next packet to be transmitted from the second packet stream, whichever has to be transmitted first;

determining a time interval between the present time and a required time to initiate transmission of the most urgent packet;

setting the hardware timer to issue an interrupt after the time interval;

receiving the interrupt from the hardware timer;

initiating transmission of the most urgent packet; and

repeating from identifying a most urgent packet until all packets in the first packet stream and the second packet stream have been transmitted.

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 Jul 19, 2007
From: OLDERDISSEN, JAN; RAUHAMAA, MARKO
To: IXIA
Reel/Frame 019577/0746 →