BITTWIST(1) General Commands Manual BITTWIST(1)
NAME
bittwist -- pcap based ethernet packet generator
SYNOPSIS
bittwist [ -djvh ] [ -i interface ] [ -s len ] [ -l loop ]
[ -c count ] [ -p pps ] [ -r rate ] [ -t gap ]
pcap-file(s)
DESCRIPTION
This document describes the bittwist program, the pcap(3) based Ether-
net packet generator. Bittwist is designed to work under Ethernet II
(IEEE 802.3) network with an MTU of up to 1500 bytes on 10Mbps (10Base-
T), 100Mbps (100BASE-TX), 1Gbps (1000BASE-T), or 10Gbps (10GBASE-T)
link speed. Packets are generated from saved tcpdump(1) capture file
referred to as trace file in this document. Some familiarity with tcp-
dump(1) and its basic options are assumed in this document. Since bit-
twist uses functions provided by pcap(3) library, e.g. pcap_open_live()
and pcap_sendpacket(), to write packets onto the network, it may re-
quire that you have special privileges, e.g. read access to /dev/bpf*
on BSD or root access on Linux, to generate packets or to enumerate
network devices with, for example, the -d flag.
Bittwist will, if not run with the -s flag, inject each packet up to
its actual length (on-wire) instead of its captured length. If the cap-
tured length is less than the actual length, bittwist will pad the
packet with zeros up to its actual length prior to injection. Bittwist
will, if not run with the -p, -r, or -t flag, inject packets from a
trace file based on the captured intervals, in particular, the time-
stamp difference between two adjacent packets, except for the first
packet in a trace file, which is always injected immediately. Bittwist
is designed to not to interfere with the packet data; it merely read a
packet and inject it as is onto the network. If modification is desired
prior to injection of a packet, you can use the bittwiste(1) program,
which does just that.
OPTIONS
-d Print a list of network interfaces available.
-j Enable jumbo frame with an MTU of up to 9000 bytes. Specify this
flag if you wish to send packets with length greater than the
typical MTU of 1500 bytes.
-v Print timestamp for each packet.
-vv Print timestamp and hex data for each packet.
-i interface
Send pcap-file(s) out onto the network through interface.
-s len Packet length to send (in bytes). Set len to:
0 : Send the actual packet length. This is the default.
-1 : Send the captured length.
or any other value from 14 to 9014. Value greater than 1514 re-
quires -j flag to be specified.
-l loop
Send pcap-file(s) out onto the network for loop times. Set loop
to 0 to send pcap-file(s) until stopped. To stop, type Control-
C.
-c count
Send up to count packets. Default is to send all packets from
pcap-file(s).
-p pps Send pps packets per second. Value for pps must be between 1 to
1000000. This flag takes precedence over the -r flag.
-r rate
Limit the sending to rate Mbps. Value for rate must be between 0
to 10000. This flag is intended to set the desired packet
throughput. If you want to send packets at line rate of 1000
Mbps, try -r 1000. If you want to send packets without rate
limit, try -r 0. This flag is typically used with -l 0 to send
pcap-file(s) until stopped. This flag takes precedence over the
-t flag.
-t gap Set inter-packet gap in seconds, ignoring the captured interval
between packets in pcap-file(s). Value for gap must be between 1
to 86400.
-h Print version information and usage.
SEE ALSO
bittwiste(1), pcap(3), tcpdump(1)
BUGS
File your bug report and send to:
Addy Yeow <ayeowch@gmail.com>
Make sure you are using the latest stable version before submitting
your bug report.
If you run bittwist with -r flag, pcap_sendpacket() may return an error
with the following error string:
send: No buffer space available
We recommend that you adjust the value for -r flag to limit the packet
throughput to a lower level that is supported by your interface, e.g.
start from -r 10 to inject packets at a maximum rate of 10Mbps and ad-
just the value accordingly.
COPYRIGHT
Copyright (C) 2006 - 2024 Addy Yeow <ayeowch@gmail.com>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MER-
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
AUTHORS
Original author and current maintainer:
Addy Yeow
The current version is available from https://bittwist.sourceforge.io
28 October 2024 BITTWIST(1)