140 likes | 300 Views
MSR Tutorial: Traffic Generator Utilities for use with the MSR. John DeHart Washington University, Applied Research Lab jdd@arl.wustl.edu http://www.arl.wustl.edu/arl/. Two Traffic Generators. sendpkts More IP protocol field control Good packet/sec control
E N D
MSR Tutorial:Traffic Generator Utilitiesfor use with theMSR John DeHartWashington University, Applied Research Labjdd@arl.wustl.eduhttp://www.arl.wustl.edu/arl/
Two Traffic Generators • sendpkts • More IP protocol field control • Good packet/sec control • Better control of exact number of packets sent • Batch and period controls • Not great for high packet and bit rates • AAL5Generator • Uses APIC pacing to control rates • Control of source and destination address only • No support for UDP or TCP • Uses an ICMP ping packet as base packet to send • Good control of packet/sec and bits/sec rates • Excellent for high packet and bit rates • No control for exact number of packets sent • e.g. cannot send 10 packets • Neither is MSR specific
sendpkts • Uses IP sockets • Supports UDP and TCP • Companion serv utility to receive packets • Incorporates support for MSR shim space • Multiple instances can run at same time on same machine
Source and Executables • source location: wu_arl/utilities/IP/sendpkts • binary location: • wu_arl/utilities/bin/$OSTYPE/sendpkts • wu_arl/utilities/bin/$OSTYPE/serv
Sample Usage • sendpkts -S -n 10 -a 1 –l 192.168.216.2 192.168.211.2 • Leave room for MSR Shim • Send 10 Packets • send 1 cell packets • use local interface 192.168.216.2 • send to destination address 192.168.211.2
sendpkts Usage > ./sendpkts ./sendpkts <arguments> targethost -c : Continuous operation, Default Off -S : Include space for an 8 Byte shim if size calculations -e sz : Set socket buffer size (Endpoint) -x rate : Set the packet per second sending rate, must also set period -a cells : Overall size of AAL5 Frame in cells, Default = 1 -b bytes : Size of IP data in bytes, Default = 0 -r (0|1) : Wait for a reply packet (1 = wait). Default = No Wait -p period : Specifies period for sending a batch of pkts(msec).Default=0 msec -B num : Number of packets to send in a batch, Default = 1 -R rx_timeout : (msec) how long to wait for reply packet. Default = 100 msec
sendpkts Usage (continued) -h : This help message -P (udp|tcp) : transport protocol (can abbreviate as u or t)). Default = UDP -l host : Host name/ip to use, that is the interface to use. -v : Verbose mode -n n : Total number of packets to send. Default = 10 -s port : Source port to use, default same as destination -d port : Destination port number to use. Default = 5050 Note: batch (-B) is only meaningful if a period (-p) is specified, since it specifies the number of packets to send each period. Further, if continuous operation (-c) is selected, then the packet sent count is reset each time nsample (-n) packets are sent. So, if continuous operation is desired then set -n to an integer multiple of the batch size. In general it is a good idea to set -n <nsamples> to am multiple of -b <batch>. nsamples = i * batch, i = an integer
AAL5Generator • Uses APIC User Mode Library • Configures one APIC descriptor/buffer pair • Sets descriptor to point to itself and be Read-Only • INFINITE LOOP!! (but it’s a good infinite loop) • APIC will transmit the buffer until descriptor is turned off • After a given length of time (approximate!!) • Turns descriptor off • Uses APIC global pacer and per VC pacing • controls bit/sec rate and packet/sec rate • Intended for high performance test and analysis • Multiple instances can run at same time on same machine • Companion sendCommand utility • to change characteristics on the fly • Need to add control for APIC Batch size • APIC batches cells transmitted. Controlled by an APIC register • easy to add control, just has not been done yet.
sendCommand • Provides remote control of AAL5Generator • changes the charateristics of a running AAL5Generator • What can be changed: • Packet Rate • Kbit Rate • Destination Address • Run State: • Quit • Stop • Start
sendCommand • Sample Commands: • Sends the command to AAL5Generator on tabby which is listening on port 4444 for incoming commands: • Change the packet per second rate to 10000: • sendCommand –p 4444 tabby “Packet Rate 10000” • Change the Kbit per second rate to 10000: • sendCommand –p 4444 tabby “Kbit Rate 10000” • Change the Destination IP Address to 192.168.212.2: • sendCommand –p 4444 tabby “DestAddr 192.168.212.2” • Stop sending packets: • sendCommand –p 4444 tabby “Stop” • Restart sending packets: • sendCommand –p 4444 tabby “Start” • Quit: causes AAL5Generator to Stop sending and exit: • sendCommand –p 4444 tabby “Quit”
Source and Executables • source location: • wu_arl/utilities/APIC/AAL5Generator • binary location: • wu_arl/utilities/bin/$OSTYPE/AAL5Generator • wu_arl/utilities/bin/$OSTYPE/sendCommand
AAL5Generator Usage Most Used Command Line Options: [-svci #] (VCI for local sending of AAL5 Frames) [-kbits #] (xmit rate using paced link rate) [-frate #] (Frames/sec) [-seconds #] (running time, 0 means run forever) [-packet #] (20 <= X <=1912) pkt size (bytes) includes IP hdr [-port #] (UDP port on which to receive ctrl commands) [-src #] (IP Source address to put in packet IP Header) [-dst #] (IP Destination address to put in packet IP Hdr)
AAL5Generator Usage (cont’d) Less Used Command Line Options: [-pacer #] (0:88Mb/S <= X <= 255:3.5Mb/S pacer clock) [-svpi #] (VPI for local sending of AAL5 Frames (0)) [-rate #] (16 bit divisor whole) [-frac #] (8 bit divisor fractional) [-fsize #] (0<=X<=7) (40,136,232,520,760,1192,1480,1912) [-descr #] (0 < X < 64K initial descr) [-debug ] (print debug info) [-swap ] (htonl() byte swap output) [-apic #] (Linux: Apic Id (0 <= X <= 3))
Summary • Use sendpkts when you want to send 1 or a fixed number of packets. • Use sendpkts when you have per packet debugging turned on in the MSR!!!! • Use sendpkts when you want to test specific TCP or UDP functions • for instance, testing MSR filters • Use AAL5Generator when you are doing performance tests.