ipgen
— L2 and L3
traffic generator and interactive benchmarking utility
ipgen |
[-V vlanid]
[-P ] -R
rx-ifname,gateway-addr,[my-addr[/prefix]]
[-V vlanid]
[-P ] -T
tx-ifname,gateway-addr,[my-addr[/prefix]]
[-H hz]
[-n npkt]
[--ipg ] [--burst ]
[-S script]
[-L logfile]
[-s packet-size]
[-p packet-per-second]
[-t duration]
[-f ] [-v ]
[-X ] [-XX ]
[-XXX ] [--tcp ]
[--udp ] [--fragment ]
[--l1-bps ] [--l2-bps ]
[--allnet ] [--saddr
begin[-end]]
[--daddr
begin[-end]]
[--sport
begin[-end]]
[--dport
begin[-end]]
[--flowlist file]
[--flowsort ] [--flowdump ]
[-F nflow]
[--rfc2544 ]
[--rfc2544-interval seconds]
[--rfc2544-no-early-finish ]
[--rfc2544-output-json file]
[--rfc2544-pktsize
size,[size, ...]]
[--rfc2544-pps-resolution
percent]
[--rfc2544-slowstart ]
[--rfc2544-tolerable-error-rate
percent]
[--rfc2544-trial-duration
seconds]
[--rfc2544-warming-duration
seconds] [--nocurses ]
[-D file]
[-d ]
[--fail-if-dropped ] |
The ipgen
utility is an L2 and L3 traffic
generator with the following design goals:
- Wire-speed support based on
Netmap
API on
FreeBSD or XDP
on
Linux,
- Benchmarking capability with multiple packet flows,
- Interative user interface to show various statistics, and
- RFC 2544 benchmarking methodology.
The ipgen
utility exits 0 on
success, and >0 if an error occurs.
The following example does a loopback test assuming
igb1
with MAC address
00:11:22:33:44:55
and igb2
with 66:77:88:99:aa:bb
are on a box running
ipgen
and the two ports are directrly connected by
an Ethernet cable (back-to-back connection defined in Section 3.1, RFC
1242). Note that each gateway address must be specified to the MAC address
of another endpoint:
ipgen -T igb1,66:77:88:99:aa:bb -R igb2,00:11:22:33:44:55
If the two Ethernet cables are connected to
igb1
and igb2
and the
another endpoint is a bridge box, such as an Ethernet hub or switch to form
a single L2 segment, the same command performs an L2 forwarding performance
test of the bridge box.
The following example does an L3 forwarding performance test. A
box running ipgen
has igb1
with an address 192.18.0.1/24
and
igb2
with 192.18.1.1/24
, and
two Ethernet cables are connected to another box (DUT: Device Under Test)
that can forward TCP/IP packets, such as a router. This assumes that the DUT
has 192.18.0.2/24
and
192.18.1.2/24
on the interfaces connected to each
segment:
ipgen -T igb1,192.18.0.2,192.18.0.1/24 -R igb2,192.18.1.2,192.18.1.1/24
The flag --rfc2544
enables RFC 2544
benchmarking report. When specified, ipgen
shows
throughput (Section 3.17 in RFC 1242) and frame loss rate (Section 3.6 in
RFC 1242) of a DUT throughout the entire range of input data rates and frame
sizes after the test finishes. The following example shows RFC 2544
benchmarking report for the same testing setup for the L2 forwarding
example:
ipgen -T igb1,66:77:88:99:aa:bb -R igb2,00:11:22:33:44:55 --rfc2544
netmap(4)
S. Bradner,
Benchmarking Terminology for Network Interconnection
Devices, RFC 1242, July
1991.
S. Bradner and
J. McQuaid, Benchmarking
Methodology for Network Interconnect Devices, RFC
2544, March 1999.
The ipgen
utility was designed and
implemented by Ryo Shimizu and is maintained by
Internet Initiative Japan Inc. .
This manual page was written by Hiroki
Sato
<hrs@FreeBSD.org>.