Вы находитесь на странице: 1из 3

Netmap-Pktgen:

Running netmap-pktgen:
./pkt-gen -i vale:p}3 -f tx
Options:
-i
-f
-n
-t
-r
-l
-d
-s
-D
-S
-a
-b
-c
-p
-T
-P
-w
-R
-X
-H

interface
interface name
function
tx rx ping pong
count
number of iterations (can be 0)
pkts_to_send
also forces tx mode
pkts_to_receive also forces rx mode
pkt_size
in bytes excluding CRC
dst_ip[:port[-dst_ip:port]] single or range
src_ip[:port[-src_ip:port]] single or range
dst-mac
src-mac
cpu_id
use setaffinity
burst size
testing, mostly
cores
cores to use
threads
processes/threads to use
report_ms
milliseconds between reports
use libpcap instead of netmap
wait_for_link_time in seconds
rate
in packets per second
dump payload
len
add empty virtio-net-header with size 'len'

Data Transmit Rate:


Netmap-Pktgen has the options to send number of packets per second. If GUI set the
speed in bps, then internal calculation has to be done and pass to application with -R
option.
PPS = Wire Rate / ((Packet size + Preamble + IFG) * 8)
Eg: 10Gbps for 64 bytes
PPS = (10 * 109 ) / ((64 + 8 + 12) * 8)
PPS = 14.88 Mpps (Million packets per sec)
Assumptions:
By default wire rate = 10 Gbps ( Demo works in pipe interface, there is no limit in

traffic rate. Still wire rate assumption taken for consideration to configure the Data
transmit rate in GUI.)
Test Duration:
Netmap-Pktgen has option for total number of iterations. For transmitting it is like a
number of packets to transmit. Hence Time duration need some calculation in background
before starting the Pktgen application.
Total num of packets = Packets per Second * Number of seconds to run
Eg: Duration 1 min for 64 bytes packets at 10 Gbps rate
Total num of packets = 14.88 Mpps * 60
Total num of packets = 892857142
Assumption:
Default Duration : 1 min
Packet size :

Using -l option
Assumption:
Default : 64 bytes.
Report :
It will be given in every 1sec. This also can be given using -T (in milli seconds).
Test Results every Reporting interval:
Number of Packets per second:
Function: main_thread()
Variables:
uint64_t pps -- Average Packets per sec.
uint64_t npkts --- Total number of packets per sec

These are updating every one sec or every reporting time interval.
Test Report after completion:
Reports at Transmitting end:
Function: tx_output()
Variables:
uint64_t sent
int size
double delta

--- Total number of packets sent (During pktgen app running)


--- Packet size transmitted
--- Duration in sec

double pps
--- Speed in packets per sec.
double bw
--- Bandwidth in Mbps.
double raw_bw --- Bandwidth at wire rate in Mbps (Including IFG + Preamble).
Reports at Receiving end:
Function: rx_output()
Variables:
uint64_t received
--- Total number of packets received (During pktgen app running).
double delta
--- Duration in sec
double pps
--- Speed in packets per sec.