1.\" Copyright (c) 2016 Luigi Rizzo, Universita` di Pisa 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd February 16, 2016 28.Dt NMREPLAY 1 29.Os 30.Sh NAME 31.Nm nmreplay 32.Nd playback a pcap file through a netmap interface 33.Sh SYNOPSIS 34.Bk -words 35.Bl -tag -width "nmreplay" 36.It Nm 37.Op Fl f Ar pcap-file 38.Op Fl i Ar netmap-interface 39.Op Fl B Ar bandwidth 40.Op Fl D Ar delay 41.Op Fl L Ar loss 42.Op Fl b Ar batch size 43.Op Fl w Ar wait-link 44.Op Fl v 45.Op Fl C Ar cpu-placement 46.Sh DESCRIPTION 47.Nm 48works like 49.Nm tcpreplay 50to replay a pcap file through a netmap interface, 51with programmable rates and possibly delays, losses 52and packet alterations. 53.Nm 54is designed to run at high speed, so the transmit schedule 55is computed ahead of time, and the thread in charge of transmission 56only has to pump data through the interface. 57.Nm 58can connect to any type of netmap port. 59.Pp 60Command line options are as follows 61.Bl -tag -width Ds 62.It Fl f Ar pcap-file 63Name of the pcap file to replay. 64.It Fl i Ar interface 65Name of the netmap interface to use as output. 66.It Fl v 67Enable verbose mode 68.It Fl b Ar batch-size 69Maximum batch size to use during transmissions. 70.Nm 71normally transmits packets one at a time, but it may use 72larger batches, up to the value specified with this option, 73when running at high rates. 74.It Fl B Ar bps | Cm constant, Ns Ar bps | Cm ether, Ns Ar bps | Cm real Ns Op , Ns Ar speedup 75Bandwidth to be used for transmission. 76.Ar bps 77is a floating point number optionally follow by a character 78(k, K, m, M, g, G) that multiplies the value by 10^3, 10^6 and 10^9 79respectively. 80.Cm constant 81(can be omitted) means that the bandwidth will be computed 82with reference to the actual packet size (excluding CRC and framing). 83.Cm ether 84indicates that the ethernet framing (160 bits) and CRC (32 bits) 85will be included in the computation of the packet size. 86.Cm real 87means transmission will occur according to the timestamps 88recorded in the trace. The optional 89.Ar speedup 90multiplier (defaults to 1) indicates how much faster 91or slower than real time the trace should be replayed. 92.It Fl D Ar dt | Cm constant, Ns Ar dt | Cm uniform, Ns Ar dmin,dmax | Cm exp, Ar dmin,davg 93Adds additional delay to the packet transmission, whose distribution 94can be constant, uniform or exponential. 95.Ar dt, dmin, dmax, avt 96are times expressed as floating point numbers optionally followed 97by a character (s, m, u, n) to indicate seconds, milliseconds, 98microseconds, nanoseconds. 99The delay is added to the transmit time and adjusted so that there is 100never packet reordering. 101.It Fl L Ar x | Cm plr, Ns Ar x | Cm ber, Ns Ar x 102Simulates packet or bit errors, causing offending packets to be dropped. 103.Ar x 104is a floating point number indicating the packet or bit error rate. 105.It Fl w Ar wait-link 106indicates the number of seconds to wait before transmitting. 107It defaults to 2, and may be useful when talking to physical 108ports to let link negotiation complete before starting transmission. 109.El 110.Sh OPERATION 111.Nm 112creates an in-memory schedule with all packets to be transmitted, 113and then launches a separate thread to take care of transmissions 114while the main thread reports statistics every second. 115.Sh SEE ALSO 116.Pa http://info.iet.unipi.it/~luigi/netmap/ 117.Pp 118Luigi Rizzo, Revisiting network I/O APIs: the netmap framework, 119Communications of the ACM, 55 (3), pp.45-51, March 2012 120.Pp 121Luigi Rizzo, Giuseppe Lettieri, 122VALE, a switched ethernet for virtual machines, 123ACM CoNEXT'12, December 2012, Nice 124.Sh AUTHORS 125.An -nosplit 126.Nm 127has been written by 128.An Luigi Rizzo, Andrea Beconcini, Francesco Mola and Lorenzo Biagini 129at the Universita` di Pisa, Italy. 130