EXHIBIT E

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 1 of 10
US006028847A 

United States Patent (19) 11 Patent Number: 6,028,847 

Beanland (45) Date of Patent: Feb. 22, 2000 

54 MULTIPLE STREAM TRAFFIC EMULATOR 57 ABSTRACT 

The multiple Stream traffic emulator functions to generate 

75 Inventor: Matthew G. Beanland, Ringwood, multiple Stream packet based traffic pursuant to a Selected 

Australia statistical model. The generation of the traffic is controlled 

by an element that generates data indicative of a pattern of 

data traffic for each of a plurality of input data Streams. This 

73 Assignee: Hewlett-Packard Company, Palo Alto, element can either produce this data in real time or this data 

Calif. can be resident in memory. In the real time application, a 

processor, Such as a digital signal processor (DSP), can be 

used to generate the data. In the pregenerated data instance, 

the data is twpically produced by an external processin 

21 Appl. No.: 08/904,188 element and E. , memory, where either t USC 

22 Filed: Jul. 31, 1997 Select from among various types of data Stored in the 

memory, or the data for use in a single traffic emulation 

(51) Int. Cl." ...................................................... G06F 9/455 instance is Stored in the memory. In one implementation of 

52 U.S. Cl. ............................................. 370/252; 370/412 the System, an interdeparture queue is used to Store data 

58 Field of Search ..................................... 370/241, 242, representative of a Selected Statistical traffic model, com 

370/243, 244, 245, 250, 252,253,412, prising both a pattern of data traffic and a traffic load. A 

537; 395/500.44; 375/527; 702/182, 183, departure Scheduler reads this Stored data out of the list 

185 maintained by the interdeparture queue to identify the tem 

poral relationships of data outputs among the plurality of 

input data Streams. The departure Scheduler identifies the 

56) References Cited desired time of departure of each data packet as well as the 

Selected Stream from which the data packet originates. The 

U.S. PATENT DOCUMENTS departure Scheduler drives a cell generator which produces 

5,440,719 8/1995 Hanes et al. ....................... 30s so the resultant output data stream for transmission to the 

5,526.283 6/1996 Hershey et al. ........................ 370/252 equipment under test. The cell generator produces Standard 

5,586.266 12/1996 Hershey et al. ...... ... 370/252 data packets for each of the output data Streams and releases 

5,615,135 3/1997 Waclawsky et al. ................... 702/183 the generated packets into these Streams at a time designated 

Primary Examiner Ricky Ngo 

ADDR DATA 

by the departure Scheduler. 

20 Claims, 3 Drawing Sheets 

INTER 

DEPARTURE - E" - 101 

CTRL 

STREAM INTERDEPARTURE 

DEPARTURE L 

SCHEDULER NO2 

STREAM 

CELL 

GENERATOR |- 103 

PACKET 

DATA 

HARDWARE 

ENERFACE ^-104 

 

 

 

 

 

 

 

 

 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 2 of 10
U.S. Patent Feb. 22, 2000 Sheet 1 of 3 6,028,847 

INTER 

FIG. 1 DEPARTURE 1 O1 

QUEUE 

CTRL 

STREAM INTERDEPARTURE 

DEPARTURE 

SCHEDULER N-02 

1 

CTRL STREAM 

CELL 

GENERATOR 103 

CTRL PACKET 105 ADDR DATA DATA 

HARDWARE PROCESSOR C INTEFACE N-O4 

108 

107 

PROCESSOR 

110 

u NETWORK 

109 CONTROL 

EQUIPMENT 

UNDER TEST 106 

 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 3 of 10
U.S. Patent Feb. 22, 2000 Sheet 2 of 3 6,028,847 

FIG. 2 2O1 202 

A INTER 

ASYNCHRONOUS INTERDEPARTURE DEPARTURE 

CPU INTERFACE QUEUE QUEUE 

D RAM 

STREAM INTERDEPARTURE 

INTERDEPARTURE OUEUE DEPARTURE SCHEDULER INTERFACE 

FIG. 3 

INTERDEPARTURE 

is 

QUEUE POINTER READ POINTER 

l 

STREAM 

FIG. 4 

TO/FROMINTERDEPARTURE QUEUE 

3O INTERRUPT 

302 CONTROL 

TO/FROMCELL GENERATOR 

COMPARATOR 

O ... 7 

RESULT 

ENCODER 

304 

303 

305 

 

 

 

 

 

 

 

 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 4 of 10
U.S. Patent Feb. 22, 2000 Sheet 3 of 3 6,028,847 

DEPARTURE ARRAY 

DEPARTURE TIME 

FIG. 5 

CURRENT TIME On FULL REQUEST 

501 

STREAM On OLDEST FOUND OLDEST ADDRESS 

A 

INTERDEPARTURE INTERDEPARTURE 

QUEUE WALUE 

DEPARTURE DEPARTURE ARRAY 

SCHEDULER 

DEPARTURE TIME 

604 OLDEST ADDRESS 

STREAM 

IDENTIFICATION 

OLD DEPARTURE TIME 

603 

DEPARTURE TIME 

 

 

 

 

 

 

 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 5 of 10
6,028,847 

1 

MULTIPLE STREAM TRAFFIC EMULATOR 

FIELD OF THE INVENTION 

This invention relates to test equipment and, in particular, 

to a multiple Stream traffic emulator which functions to 

generate digital traffic for equipment to be tested. The 

System, in one implementation, uses a list that contains data 

which represents any of a plurality of various traffic models, 

which list is used to control the generation of data packets 

for multiple Streams of data and the multiplexing of these 

multiple Streams of data into an output transmission. 

BACKGROUND 

In the field of test equipment, it is a problem to efficiently 

generate an output data Stream that emulates the diverse 

Statistical patterns of real world data transmissions. This is 

especially pertinent in the field of data communications for 

remotely located devices wherein the equipment must be 

operational under adverse conditions, and responsive to 

various patterns of input data traffic. In order to exhaustively 

test Such equipment, diverse patterns of data traffic as well 

as varying traffic loads must be simulated to ensure that the 

equipment is operational under the conditions that exist in 

their installed environment. 

The present State of the industry is that a large Segment of 

the equipment manufacturers do not believe that the emu 

lation of various patterns of real world data transmissions is 

either practical or effective to test their equipment. This 

Segment of the industry typically field tests their equipment 

in real-world situations to thereby ascertain whether the 

equipment is properly functioning. A significant limitation 

of this approach is that unusual patterns of traffic are 

typically not encountered during the test phase and the 

equipment is therefore not thoroughly tested. In addition, the 

user does not have any control over the loads presented to 

the equipment. Thus, this method of testing essentially 

defers the identification of Subtle problems to the customer 

detection of inoperability of the equipment. 

An alternative test approach is to analyze the equipment 

based upon a theoretical analysis of the design. This ana 

lytical approach uses Standard models of traffic generated by 

Standards or industry research bodies, Such as Bellcore, to 

review the efficacy of the equipment design. The Standard 

models of traffic can provide accurate traffic data, but the 

limitation of this approach is that the accuracy of the 

analysis is limited to the ability of the researcher to compute 

traffic loads for a Small number of Statistical patterns. In 

addition, the interaction among various loads and the use of 

unpredictable loads are typically not reviewed due to the 

overwhelming computational load presented by Such an 

analysis. 

In Summary, the problem with testing data communica 

tion and data processing equipment in the field of data 

communications is that there is no test equipment available 

to generate traffic loads that can be varied by the user to test 

equipment under widely varying traffic conditions. This is 

especially pertinent in the case of equipment which is 

connected to a transmission medium that carries multiplexed 

data traffic. 

SUMMARY OF THE INVENTION 

The above described problems are solved and a technical 

advance achieved by the multiple Stream traffic emulator 

which functions to generate a plurality of Streams of packet 

based data traffic pursuant to a user Selected traffic model. 

15 

25 

35 

40 

45 

50 

55 

60 

65 

2 

This is accomplished in one implementation of the System 

by the use of an interdeparture queue which functions to 

Store data representative of at least one Selected traffic 

model, comprising both a pattern of data traffic and a traffic 

load. A user Selects a traffic model for each of a plurality of 

input Streams, and multiple different traffic models can be 

concurrently Supported by the interdeparture queue. A 

departure Scheduler requests the next interdeparture value 

from the interdeparture queue and adds this value to the last 

Scheduled departure time for each of the plurality of input 

data Streams to Schedule the next departure. The departure 

Scheduler identifies the desired time of departure of each 

data packet as well as the Selected Stream from which the 

data packet originates. The departure Scheduler drives a cell 

generator which produces the resultant output data Stream 

for transmission to the equipment under test. The cell 

generator produces a data packet for an identified output 

data Stream at the appropriate instant of time identified by the departure Scheduler. 

This apparatus can concurrently incorporate data which 

present a plurality of types of loads and which have traffic 

characteristics that follow different models into the gener 

ated Streams of cells. In this manner, the interactions among 

the various data Streams occasioned by the concurrent 

presence of varying loads and varying data traffic types can 

be determined. The user can create any desired traffic 

conditions that they desire. 

In addition, the System can be implemented in a number 

of alternative ways to generate both deterministic and Sta 

tistical data traffic patterns. The interdeparture values can be 

generated via the use of the above-noted list or they can be 

calculated in real time by the incorporation of a processing 

element into the traffic generator, to thereby make the packet 

generation a function of real-time variables that are detected 

by the processing element. Furthermore, the content of the 

generated data traffic can be dynamically varied So that this 

architecture can be used to produce fixed length packets or 

packets of varying length, with the contents of the packets being dynamically determined. Thus, this System concept 

has broad applicability and provides the flexibility to imple 

ment a wide variety of test environments. 

BRIEF DESCRIPTION OF THE DRAWINGS 

FIG. 1 illustrates in block diagram form the overall 

architecture of the multiple Stream traffic emulator and an 

application environment in which it operates, 

FIG. 2 illustrates additional details of the structure of the 

interdeparture queue; 

FIG. 3 illustrates the mapping of a stream to an interde 

parture value; 

FIG. 4 illustrates additional details of the structure of the 

departure Scheduler, 

FIG. 5 illustrates the process of a departure array search 

attempt; and 

FIG. 6 illustrates the process of a departure array replace 

ment. 

DETAILED DESCRIPTION OF THE 

PREFERRED EMBODIMENTS 

Data transmission based upon cell or packet technology is 

well known. In this technology, the Sequence of information 

to be transmitted is broken into discrete Segments termed 

cells or packets, with cells typically being fixed length and 

packets being variable length. The cell information is termed 

the payload and it contains user information bits and is given 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 6 of 10
6,028,847 

3 a header which includes network information bits to aid in 

identifying, checking and routing the cell. The cells can then 

be transmitted acroSS the network independently of other 

cells in the information Sequence. A well known implemen 

tation of Such a data transmission technology is termed the 

Asynchronous Transfer Mode (ATM) which employs a 53 

byte cell, which includes a 5 byte header and a 48 byte payload. Therefore, for this description, the implementation 

details of the multiple stream traffic emulator are described 

in terms of the ATM technology. 

Architecture Considerations 

The multiple Stream traffic emulator functions to generate packet data representative of a typical traffic pattern for a 

plurality of independent inputStreams. The generation of the 

traffic is controlled by an element that generates data indica 

tive of a pattern of data traffic for each of a plurality of input 

data Streams. This element can either produce this traffic 

pattern data in real time or this traffic pattern data can be 

resident in memory. In the real time application, a processor, 

Such as a digital signal processor (DSP), can be used to 

generate the traffic pattern data. In the pregenerated data 

instance, the traffic pattern data is typically produced by an 

external processing element and Stored in a memory, where 

either the user can Select from among various types of traffic 

pattern data Stored in the memory, or the traffic pattern data 

for use in a Single traffic emulation instance is Stored in the 

memory. 

The data traffic that is generated for each input Stream 

comprises a Series of cells that are generated and output 

pursuant to a typical traffic model. The plurality of input 

Streams are uniform in that no input Stream receives pref erential processing for incorporation into the output Stream. 

However, each input Stream can carry data traffic that differs 

in its content, traffic load and traffic pattern from the other 

ones of the plurality of inputStreams. The class of data traffic 

that is generated can be constant bit rate, variable bit rate, 

available bit rate (where the channel provides feedback 

regarding the present bit rate capacity of the channel), 

random data, or any type of data traffic desired by the user. 

The characteristics of each input Stream can be defined by 

the user, independent of the characteristics of the other input 

channels. Furthermore, the data carried by each input Stream 

can be defined on a fixed or dynamic basis. Thus, the 

multiple Stream traffic emulator enables the user to create 

any test configuration that is desired. 

The multiple Stream traffic emulator is disclosed herein as 

a list-based System, wherein an interdeparture queue Stores 

the data indicative of the output cell generation Schedule for 

each of the input Streams. The interdeparture queue data is 

indicative of the time interval between Successive output cells for each of the output Streams. The interdeparture data 

reflects a distribution of output cells that corresponds to a 

Selected deterministic or Statistical traffic pattern. The list 

based implementation of the multiple Stream traffic emulator 

provides a clear illustration of the capabilities of the multiple 

Stream traffic emulator System. 

System Architecture of the Multiple Stream Traffic Emulator 

FIG. 1 illustrates in block diagram form the multiple 

Stream traffic emulator 1 which functions to generate mul 

tiple Stream packet data traffic pursuant to Selected traffic 

models, as well as an operating environment in which it 

operates. A typical operating environment comprises the 

equipment under test 106, Such as a data terminal, connected 

via a data communication medium 107 to the multiple 

stream traffic emulator 1. The multiple stream traffic emu 

lator 1 receives its inputs from any of a number of Sources, 

which can be an external Source, Such as a terminal/ 

15 

25 

35 

40 

45 

50 

55 

60 

65 

4 

processor 108, a data communication connection 109, a data 

Storage medium 110, or an internal Source, Such as processor 

105. The multiple stream traffic emulator 1 receives the 

inputs, which comprise control data that defines the Statis 

tical traffic model for each of the input Streams as well as 

other operational/control data, and generates a multiplexed 

Stream of output data packets which can be applied directly 

to an equipment under test 106 or can be transmitted via the 

data communication medium 107 to the equipment under 

test 106. 

The multiple Stream traffic emulator 1 conceptually con 

Sists of two Segments: data generation and traffic generation. 

The data generation Segment produces the actual data that is 

transmitted to the equipment under test 106. The traffic 

generation Segment receives data transmit request messages 

from the interface hardware 104 that interconnects the 

multiple Stream traffic emulator 1 to the equipment under 

test 106 and returns an indication to the data generation 

Segment of whether there is data to be sent, which input data 

Stream is to be sent, and manages contention when more 

than one Stream is waiting to Send a cell. The data generation 

Segment translates this received information to the actual 

data to be sent. In the multiple stream traffic emulator 1, the 

data generation Segment comprises the cell generator 103 

and the traffic generator Segment comprises the interdepar 

ture queue 101, departure scheduler 102 and the processor 

105. 

The data generation is managed in the multiple Stream 

traffic emulator 1 by the use of an interdeparture queue 101 

which functions to Store data representative of at least one 

Selected traffic model, comprising both a pattern of data 

traffic and a traffic load. A traffic model is selected for each 

of a plurality of input streams, and multiple different traffic 

models can be concurrently Supported. A departure Sched 

uler 102 reads this stored data out of the lists maintained by the interdeparture queue 101 to identify the temporal rela 

tionships of data outputs among the plurality of input data 

streams. The departure scheduler 102 identifies the desired 

time of departure of each data packet as well as the Selected 

Stream from which the data packet originates. The departure 

scheduler 102 drives a cell generator 103 which produces 

the resultant output data Stream for transmission to the 

equipment under test 106. The cell generator 103 produces 

Standard data packets for each of the output data Streams and 

releases the generated packets into these Streams at a time 

designated by the departure Scheduler 102. An equipment specific interface 104 may optionally be provided to inter 

connect the cell generator 103 to the equipment under test 

106 or the data communication medium 107. The equipment specific interface 104 functions to provide the physical 

interconnection as well as the protocol conversion necessary 

to enable the cell generator output to be presented to the 

equipment under test 106. 

The traffic models used in this apparatus can be Standard 

Statistical models of traffic generated by Standards or indus 

try research bodies, Such as Bellcore, to review the efficacy of the equipment design, or can be any user defined model 

of data traffic. Included in this architecture is the ability to 

incorporate a processing element 105 in the multiple Stream 

traffic emulator 1 to thereby provide real time data traffic 

generation based upon feedback received from, for example, 

the data communication medium in the case of available bit 

rate data transmissions (where the channel provides feed 

back regarding the present bit rate capacity of the channel). 

Interdeparture Queue 

The data that defines the characteristics of the output packets are Stored in the interdeparture queue 101, which is 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 7 of 10
6,028,847 

S 

shown in additional detail in FIG. 2. The entry of this data 

into the interdeparture queue 101 is accomplished by pro 

viding both data (DATA or D) and address (ADDR or A) bus 

extensions from the processor 105 which is the source of 

data to the interdeparture queue 101 to the interdeparture 

queue logic circuit 201. The instance of a processor provided 

Source of data is illustrated in the preferred embodiment 

disclosed herein, although the above-mentioned alternative 

Sources of data are possible. The interdeparture queue 101 maintains a plurality (128, 

for example) of independent and identically featured input data Streams, using the interdeparture queue memory 202 to 

Store the queue data. Each of the plurality of input data 

streams has its bandwidth and distribution controlled by a 

concatenated queue which contains the list of interdeparture data and interdeparture control words. In particular, the input 

data Streams are defined in terms of the time interval 

between the transmission of Successive output packets. This 

Simplifies the Stream management task, Since the data Stored 

in the interdeparture queue memory 202 comprises an 

interdeparture word which defines this interdeparture time 

interval for each of the plurality of input data Streams. Thus, 

the temporal pattern of output data packet transmissions for 

a particular input data Stream, as defined by the Sequence of 

interdeparture words, represents the Selected Statistical traf 

fic pattern for the Selected input data Stream. Each of the 

plurality of input data Streams may be transmitted once or 

continuously as defined by the control word entries written 

into the interdeparture queue memory 202. 

As shown in FIG. 3, the interdeparture queue 101 maps 

each of the plurality (128) of input data streams to a 

corresponding queue pointer 401 which contains eight bits 

of queue Segment address, which data is accessed on an 

input data Stream basis. The queue pointer 401 contains the 

queue Segment number for the corresponding input data 

Stream. In response to an input data Stream being designated 

as requiring an output, the interdeparture queue logic 201 

loads the contents of the queue pointer 401 into the read 

pointer 402 for the interdeparture queue memory 202. The 

read pointer 402 is 17 bits long and points to any location in 

the 128Kx32 bit word space of the interdeparture queue 

memory 202. The read pointer 402 is then used by the 

interdeparture queue logic 201 to lookup the corresponding 

interdeparture word that is Stored in interdeparture queue 

memory 202 for this designated input data stream. The 

interdeparture word contains a 21 bit interdeparture value 

field which represents the number of cell slots (standard time 

intervals) desired between consecutively transmitted cells 

for this stream, 3 bits of control and 8 unused bits. The 

interdeparture word is used as shown in FIG. 6, with the 

departure Scheduler 102 computing the departure time for 

the next output data packet for this designated input data 

stream. The control field is decoded in order to work out how 

to modify the read pointer and whether to output the 

interdeparture data value or to disable the data Stream. 

Departure Scheduler 

The departure scheduler 102 and its operation are shown 

in additional detail in FIGS. 4, 5 and 6. The departure Scheduler 102 contains an array of data pointers (departure 

array 601), each of which represents data indicative of the 

next desired output data packet departure time for a corre 

sponding one of the plurality of input data Streams, as 

defined by the interdeparture queue 101. The departure array 

601 thus contains the same number of entries as input data 

Streams, in the present example, 128 entries. 

The departure Scheduler 102 receives requests to generate 

traffic from the hardware interface 104. The hardware inter 

15 

25 

35 

40 

45 

50 

55 

60 

65 

6 

face 104 may include Some cell/packet level processing in 

addition to providing an interface to the transmission 

medium 107 and/or the equipment under test 106. The 

hardware interface 104 typically produces a traffic request 

Strobe on one of the control leads that connect the hardware 

interface 104 with the departure scheduler 102. The depar 

ture scheduler 102 responds to the received traffic request 

Strobe with a response control Signal indicative of the receipt and acceptance of this request. The departure Scheduler 102, 

then automatically identifies the earliest Scheduled departure 

for an output packet and returns data identifying both the 

input data Stream designated by this identified Scheduled 

departure as well as the departure time. This is 

accomplished, as shown in FIG. 6, by the search controller 

303 of the departure scheduler 102 activating the compara 

tors 304. In order to expedite the processing of the search for 

the next packet departure time, the comparator function is 

executed in parallel, by using eight comparator elements to 

implement comparator 304. The search controller 303 com 

pares the data stored in current time buffer 502 with the 

contents of the departure array 601. The contents of the 

current time buffer 502 represent the output of a counter 

which is incremented every cell slot. Thus, the search 

controller 303 monitors the present time of day to identify 

when one of the entries written into the departure array 601 

indicate that an output data packet is to be created for that 

input data Stream at the present time. The Search controller 

303 looks for the oldest departure array data entry which is 

less than (earlier in time) than the present time. When the 

search controller 303 locates departures that are due, the 

search controller 303 outputs, in order, the address of the 

departure array entry to oldest address buffer 501 located in 

result encoder 305. The address of the memory location 

corresponds to the identification of the associated input data 

Stream. Thus, the address output indicates the identity of the 

input data Stream, whose Statistical traffic distribution, as 

Stored in interdeparture queue memory 202, requires the 

output of a data packet. 

It is obvious that the independent nature of the plurality of 

input data Streams can result in multiple Scheduled output 

packet departures for any cell slot. In order to resolve any 

Such contention, the departure Scheduler 102 uses the result 

encoder 305 to multiplex the input data streams to ensure 

fair treatment of all input data Streams. Thus, all pending departures for a selected time interval (present time indica 

tive of a cell transmission slot) are processed, even if these 

departures must be implemented in the next Successive time 

interval(s), before any departures Scheduled for the next time 

interval are Scheduled. Thus, a failed departure of an iden 

tified output data packet preempts future Scheduled depar 

tures. The downside of this process is that it distorts the 

distribution of the delayed input data streams in which the 

preemption occurs, although the degree of distortion is 

minimal. The errors in the statistical model introduced by this preemption process is distributed acroSS all of the input 

data Streams Since there is no preferential treatment among 

the plurality of input data streams. This error distribution 

thereby minimizes the impact of the errors on the input data 

Streams and represents a typical real-world random error 

condition. 

Once an output data packet is generated for a Selected 

input data stream, the departure scheduler 102 rewrites the 

memory address location of departure array 601 that was 

just read out with data indicative of the next Scheduled 

departure for the associated input data Stream. This Sched 

uling data is generated as shown in FIG. 6 by retrieving the 

next interdeparture word value for the Selected input data 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 8 of 10
6,028,847 

7 

Stream from the interdeparture associated queue memory 

202, using the associated queue pointer 401. The retrieved 

interdeparture word is read and the interdeparture value 

contained therein is loaded into the adder 605. The other 

input of adder 605 is the output of the old departure time 

buffer 602, which contains data indicative of the last com 

puted desired time for outputting a data packet for the 

Selected input data Stream. Due to contention, as noted 

above, the actual transmission time of the output data packet for the Selected input data Stream may not correspond to the 

time data stored in thee old departure time buffer 602, but the 

Stored data is used in the present computation of preserve the 

statistical traffic distribution defined for this input data 

stream. Adder 605 combines the data which identifies the 

last desired departure time for this identified input data 

Stream with the retrieved interdeparture word to produce an 

indication of the next Scheduled departure time for an output data packet for this designated input data Stream. This is 

accomplished by adding the 21 bit interdeparture word data 

received from the interdeparture queue memory 202 to this 

input data Stream's last departure time to create a new 

departure time value which is written into the departure 

array 601 in the memory location whose address corre 

sponds to the Selected input data Stream identification, which 

data is output from oldest address buffer 604. 

Thus, the departure scheduler 102 listens to traffic 

requests received from the hardware interface 104 and 

determines whether an input data Stream is pending. The 

departure Scheduler 102 then arbitrates among multiple input data Streams waiting to transmit output data packets. 

The departure scheduler 102 then generates the output data 

Stream. 

Cell Generator 

The cell generator 103 functions to receive output packet 

indications from the departure Scheduler 102, and generate 

output packets which are output via a Synchronous interface 

to the instrument specific hardware interface 104 which 

generates the required real-time data payload for the instru 

ment under test 106. The cell generator 103 can be imple 

mented by means of a memory which contains a predeter mined number of previously created packets, each packet 

capable of being assigned once to a Single input data Stream. 

The packets in a particular input data Stream are part of a 

linked list in that each packet includes a pointer which points 

to the next Successive packet in the input data Stream. The 

cells produced by the cell generator are encapsulated in a 

packet which is 17 long words of predetermined format. The 

output cells can be Static in that they are read from memory 

and are fixed in content, or they can be dynamic in that there 

is real-time generation of a unique data contents for each 

cell. 

The cells that are generated can be packetized cells which 

include a cell as well as associated housekeeping data. The 

cells can contain real time data in that a processing element 

contained in the multiple Stream traffic emulator 1 produces 

cell data as a function of conditions extant at the present time. For example, a handshake protocol can be used to test 

the integrity of the link between the multiple stream traffic 

emulator 1 and the equipment under test 106. The multiple 

Stream traffic emulator 1 can also generate a pseudo-random 

load and transmits this data in the cell. The equipment under 

test 106 also generates the same pseudo-random load and 

compares the received cell content with the device generated 

data. Any disparity between the two Sets of data can be used 

to identify problems in the transmission medium 107 that 

interconnects the equipment under test 106 and the multiple 

stream traffic emulator 1, or the equipment under test 106 

itself. 

15 

25 

35 

40 

45 

50 

55 

60 

65 

8 

Interface to Instrument Under Test 

The cell generator 103 produces packets representative of 

the cells generated in response to the interleaved input data 

Streams. These packets must be propagated to the equipment 

under test 106 for the test to be effective. Therefore, the cell 

generator 103 must typically be connected to a hardware 

interface 104 device to interconnect the multiple stream 

traffic emulator 1 with the load which it drives. For example, 

the multiple Stream traffic emulator 1 must be connected 

with the communication medium 107 that serves the equip 

ment under test 106 to thereby transmit the packets gener 

ated by the cell generator 103 to the equipment under test 

106 that are interconnected by the network 107. There are 

presently available interface elements that can perform the 

interconnection function. For example, there exists ATM 

convergence chips termed “Sunny chips' which Serve to 

receive a packet input and output the data Stream on to a 

communication medium 107 in the proper formal and with 

the proper protocol. Thus, in an ATM environment, the 

hardware interface 104 comprises an ATM convergence chip. 

Conclusion 

The multiple Stream traffic emulator functions to generate multiple Stream packet based traffic pursuant to a Selected 

traffic model. The resultant data is effective to test the 

response of the equipment under test to traffic of varying 

traffic characteristics as well as to test the interactions among 

numerous input data Streams as a function of the traffic 

placed on the various input data Streams. The user can define 

the test Scenario with particularity and the environment So 

defined is emulated efficiently and precisely. 

I claim: 

1. A traffic emulator System for generating an output data 

Stream comprising a plurality of input Streams of packet 

data, each of Said plurality of input Streams of packet data 

having predefined data traffic characteristics, that are mul 

tiplexed together to form said output data Stream, compris ing: 

traffic generator means for generating traffic data indica 

tive of a pattern of data traffic for each of a plurality of 

input data Streams, and 

data generator means, responsive to Said generated traffic 

data, for producing a data packet for each of Said input 

Streams pursuant to Said pattern of data traffic for Said 

plurality of input data Streams. 

2. The traffic emulator system of claim 1 wherein said 

traffic generator means comprises: 

Storage means for Storing Said traffic data, indicative of 

Said pattern of data traffic for each of Said plurality of 

input data Streams, in list-based form in a memory. 

3. The traffic emulator system of claim 2 wherein said 

traffic generator means further comprises: 

pattern generator means for generating Said traffic data, 

indicative of Said pattern of data traffic for each of Said 

plurality of input data Streams, pursuant to user pro 

vided commands. 

4. The traffic emulator system of claim 2 wherein said 

traffic generator means further comprises: 

pattern generator means for receiving Said traffic data, 

indicative of Said pattern of data traffic for each of Said 

plurality of input data Streams, from a data Source 

external to Said traffic emulator System. 

5. The traffic emulator system of claim 1 wherein said 

traffic generator means comprises: 

processor means for generating Said traffic data, indicative 

of Said pattern of data traffic for each of Said plurality 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 9 of 10
6,028,847 

9 

of input data Streams, pursuant to real-time parameters 

measured by Said traffic emulator System. 

6. The traffic emulator system of claim 2 further com 

prising: 

wherein Said Storage reads Said traffic data, indicative of 

Said pattern of data traffic for each of Said plurality of 

input data Streams, from Said memory; and 

Said data generator means, is responsive to Said read 

traffic data, for computing a time at which an output 

data packet is to be transmitted for each of Said plurality 

of input data Streams. 

7. The traffic emulator system of claim 6 wherein said data 

generator means comprises: 

list generator means for generating a temporally ordered 

list of output data packets for Said plurality of input data 

StreamS. 

8. The traffic emulator system of claim 7 wherein said data 

generator means further comprises: 

arbitrator means for arbitrating among at least two of Said 

temporally ordered output data packets whose time at 

which a data packet is to be transmitted in Said output 

data Stream are identical to output Said at least two 

output data packets in Sequence. 

9. The traffic emulator system of claim 1 wherein said data 

generator means comprises: 

cell generator means for reading control data associated 

with Said traffic data, indicative of Said pattern of data 

traffic for each of Said plurality of input data Streams, to 

create an output data packet defined by Said control 

data. 

10. The traffic emulator system of claim 9 further com prising: 

transmitter means for transmitting Said output data packet 

to an equipment under test to test Said equipment. 

11. A method, operational in a traffic emulator System, for 

generating an output data Stream comprising a plurality of 

input Streams of packet data, each of Said plurality of input 

Streams of packet data having predefined data traffic 

characteristics, that are multiplexed together to form Said 

output data Stream, comprising the Steps of: 

generating data indicative of a pattern of data traffic for 

each of Said plurality of input data Streams, and 

producing, in response to Said generated data, a data 

packet for each of Said input data Streams pursuant to 

Said pattern of data traffic for Said plurality of input data 

StreamS. 

12. The method of claim 11 wherein said step of gener ating comprises: 

10 

Storing data, indicative of Said pattern of data traffic for 

each of Said plurality of input data Streams, in list-based 

form in a memory. 

13. The method of claim 12 further comprising the step of: 

5 generating Said data, indicative of Said pattern of data 

traffic for each of Said plurality of input data Streams, 

pursuant to user provided commands. 

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

receiving Said data, indicative of Said pattern of data 

traffic for each of Said plurality of input data Streams, 

from a data Source external to Said traffic emulator 

System. 

15. The method of claim 11 further comprising the step of: 

1O 

15 generating said data, indicative of said pattern of data 

traffic for each of Said plurality of input data Streams, 

pursuant to real-time parameters measured by Said 

traffic emulator System. 

16. The method of claim 12 wherein said step of gener 2O ating comprises: 

reading Said data, indicative of Said pattern of data traffic 

for each of Said plurality of input data Streams, from 

Said memory; and 

computing, in response to Said read data, a time at which 

an output data packet is to be transmitted for each of 

Said plurality of input data Streams. 

17. The method of claim 16 wherein said step of gener ating further comprises: 

generating a temporally ordered list of output data packets 

for Said plurality of input data Streams. 

18. The method of claim 17 wherein said step of gener ating further comprises: 

arbitrating among at least two of Said temporally ordered 

output data packets whose time at which a data packet 

is to be transmitted in Said output data Stream are 

identical to output Said at least two output data packets in Sequence. 

19. The method of claim 11 wherein said step of produc 40 ing comprises: 

reading control data associated with Said data, indicative 

of Said pattern of data traffic for each of Said plurality 

of input data Streams, to create an output data packet 

defined by Said control data. 

20. The method of claim 19 further comprising the step of: 

25 

35 

45 

transmitting Said output data Stream to an equipment 

under test to test Said equipment. 

k k k k k 

Case 6:20-cv-00486-ADA Document 172-5 Filed 03/23/22 Page 10 of 10