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 1 November 2024 BITTWIST(1)