precise traffic generator

21
Precise Traffic Generator Geoff Salmon, Monia Ghobadi, Yashar Ganjali, Martin Labrecque, J. Gregory Steffan University of Toronto

Upload: michi

Post on 26-Feb-2016

41 views

Category:

Documents


1 download

DESCRIPTION

Precise Traffic Generator. Geoff Salmon, Monia Ghobadi , Yashar Ganjali , Martin Labrecque , J. Gregory Steffan University of Toronto. What is the Precise Traffic Generator (PTG)?. Uses NetThreads on the NetFPGA to generate packets. Goals - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Precise Traffic Generator

Precise Traffic GeneratorGeoff Salmon, Monia Ghobadi, Yashar Ganjali,

Martin Labrecque, J. Gregory SteffanUniversity of Toronto

Page 2: Precise Traffic Generator

What is the Precise Traffic Generator (PTG)?Uses NetThreads on the NetFPGA to

generate packets.Goals

1. Send packets precisely at the requested time.

2. Allow packets to be constantly streamed from host PC.

No separate “load phase”.

Page 3: Precise Traffic Generator

Why Are These Goals Interesting?1. Precise transmission times:

Can emulate diverse network conditions and topologies.

2. Stream packets from host PC: Allows generated traffic to be reactive

ie. TCP flows with congestion control

Page 4: Precise Traffic Generator

Motivation: Network Testbed ExperimentsTesting systems which are sensitive to packet

arrival times (ie. packet buffering and scheduling in routers) requires realistic test traffic.Need to explore a wide range of traffic

With a small testbed, this is difficult or impossible.

With a large enough testbed, this is difficult and expensive.

Page 5: Precise Traffic Generator

Simplified ProblemA few computers can create required traffic

volume.However, resulting traffic may not be

realistic.

How is the traffic different?The PTG focuses on controlling the packet transmission times.

Page 6: Precise Traffic Generator

Components of the PTG

3. pktgen

Linux Kernel

NetFPGA

Packet Travel Direction

2. nf2 Linux Driver

NetLink

GigE1.

NetThreads Application

PCI

Host Computer

Page 7: Precise Traffic Generator

Userspace Program: pktgenSimple command-line utility used for testing

PTG.Sends descriptions of packets and

transmission times to the driver.Uses inter-transmission times and payload

sizes that are either:fixed, orread from files.

Communicates with driver using a NetLink socket.Easily replaced by other userspace or kernel

code.

Page 8: Precise Traffic Generator

nf2 Linux DriverModified version of nf2 driver.Main jobs:

Receive packet descriptions from NetLink socket.

Build command packets containing multiple descriptions.

Send command packets to the NetThreads app over the PCI bus.

Page 9: Precise Traffic Generator

NetThreads ApplicationEight threads of execution in NetThreads:

7 threads receive command packets and prepare packets to transmit in output memory.

1 thread sends packets from the output memory at correct times.

Input Memory Output Memory

Page 10: Precise Traffic Generator

PCI Bus is a BottleneckCannot copy all packets across PCI bus.Main idea: do not copy packet payloads

Payloads are zeroed when sent from NetFPGA.Experiment often only look at packet headers

anyway.PCI transaction overheads require driver to

gather multiple packet descriptions into single command packet.

Page 11: Precise Traffic Generator

Transmission Time PrecisionCompare against Stanford’s Packet

Generator (SPG)PTG/SPG

Sending fixed rate packets

NetFPGA router

measures inter-arrival

times Remember it takes 8ns to send 1 byte on GigE.

Page 12: Precise Traffic Generator

Throughput: MTU-Size Packets

Preamble Ethernet Hdr Data CRC

22 bytes 46-1500 bytes 4 bytes

MTU-sized Packet = 1526 bytesTransmits in 1526 * 8 = 12208 nsAdd Inter Frame Gap of 96ns. 12304ns is back to back!

Page 13: Precise Traffic Generator

Throughput: Smaller Packets

Page 14: Precise Traffic Generator

Throughput: Smaller Packets cont.Errors appear between 6000-7000ns.See the same problem for different packet

sizes.The mean inter-transmission times are

correct,not a PCI bottleneck problem.

Most likely: the sending thread is doing too much work between packet transmissions.In 6400ns each thread has

6400 ns / 8 ns per cycle / 4 threads = 200 clock cycles

Page 15: Precise Traffic Generator

Future WorkImplement receiving packets

Currently PTG cannot receive packets and send them to the host PC, so generating reactive traffic requires another NIC.

Augment existing software network emulator (ie. NISTNet) with PTG to transmit packets at the correct times.

Page 16: Precise Traffic Generator

ConclusionThe PTG precisely controls the transmission

times of packets streamed from the host PC.It has the potential to

enhance the realism of software network emulators, and

allow researchers to perform experiments which are currently difficult or impossible.

Page 17: Precise Traffic Generator

Modified Hardware DesignsNetThreads design:

Removed Output Queues increase accuracy of transmission times.

NetFPGA reference router design used in measurements:Removed Input Arbiter

and Output Port Lookup.

Page 18: Precise Traffic Generator

Inaccuracy of NISTNetSoftware network emulators schedule packet

transmissions with fixed-rate timers/interrupts.

Ran experiment to measure inaccuracy using NISTNet.

PTG

NISTNet host

Delays packets by

100ms

NetFPGA router

measuring arrival times

Measure inter-arrivals here

Measure inter-arrivals here

Page 19: Precise Traffic Generator

Packets Sent Every 70 μs

Page 20: Precise Traffic Generator

Packets Sent Every 640 μs

Page 21: Precise Traffic Generator

Packets Sent Every 700 μs