Version 4.7
01/11/2024bittwiste (editor)
- added support for editing IEEE 802.1ad Q-in-Q VLAN packets
Version 4.6
28/10/2024bittwiste (editor)
- added support for editing IEEE 802.1Q VLAN packets
Version 4.5
23/10/2024bittwist (generator)
- added -j flag to enable jumbo frame transmission on supported NICs
Version 4.4
22/10/2024bittwist (generator)
- truncate large packets, e.g. TSO packets, to the supported MTU
bittwiste (editor)
- bumped max. payload length from 1514 to 65535 bytes
Version 4.3
21/10/2024bittwist (generator)
- use pcap_send_queue on Windows when using -r 0
Version 4.2
14/10/2024bittwist (generator)
- fix cleanup()
bittwiste (editor)
- updated option -X to also accept range or range:payload, e.g.
-X 0-1000
-X 0-1000:0302aad1
- updated option -T eth -t type to also accept integer or hexadecimal value in
addition to the existing keywords: ip, ip6, arp
Version 4.1
11/10/2024- executables moved from src to bin directory
- Linux distribution: aarch64 executables included for SBCs, e.g. Raspberry Pi
Version 4.0
08/10/2024- Linux distribution: executables included with statically linked libpcap 1.10.5
- BSD distribution: rebuilt with libpcap 1.10.5
- macOS distribution: rebuilt with libpcap 1.10.5
- Windows distribution: rebuilt using MinGW-w64 with Npcap 1.80
- removed github repo https://github.com/ayeowch/bittwist to limit maintenance
bittwiste (editor)
- remove linking to libpcap
Version 3.8
06/07/2023- bumped from gcc -O2 to -O3 optimization flag:
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-O3
bittwist (generator)
- added RFC 2544 benchmark data generator and benchmark page
- improved actual inter-packet gap replay by using token bucket algorithm for
short IPG and self-regulated timer for long IPG
Version 3.7
27/06/2023bittwist (generator)
- 30% speed up when sending large pcap file
bittwiste (editor)
- added -G option to set fixed or random inter-packet gap in microseconds
- added support for CIDR notation when modifying IPv4/IPv6 address
- added support for random MAC address
Version 3.6
17/06/2023- added github repo for source code browsing:
https://github.com/ayeowch/bittwist
bittwist (generator)
- fixed linerate throttling
- updated -p option to send packets at set packets per second (pps)
- added -t option to set inter-packet gap (this was previously -p option)
bittwiste (editor)
- added option to edit IPv6 next header
- added random number support for id, ttl, proto, next header, hop limit
Version 3.5
16/06/2023bittwiste (editor)
- added option to set uniformly distributed random number (mersenne twister)
for tcp/udp source/destination port and tcp sequence/acknowledgment number
- added -N flag to duplicate packets from trace file, e.g.
-N 100000 to repeat packets from trace file for 100,000 times
- added ip6tcp and ip6udp templates
Version 3.4
13/06/2023bittwiste (editor)
- updated -I flag to allow loading trace file from built-in templates
Version 3.3
12/06/2023bittwiste (editor)
- options to edit IPv4/IPv6 packets to allow testing of classification/queuing
features of switches/routers, e.g.
-T ip -e 3 to indicate congestion to the end hosts
-T ip6 -c 16 to classify packet for operation and management of the network
-T ip6 -f 0xfffff to set custom flow label
Version 3.2
10/06/2023- added support for trace files with nanosecond resolution
- updated manual pages
bittwist (generator)
- removed speed (-m) flag; use -p/-r to shape throughput
- updated linerate (-r) flag to use token bucket algorithm
bittwiste (editor)
- added support for IPv6 packets
- improved cksum()
- expanded test cases
Version 3.1
30/05/2023- use in-memory trace files when sending packets in loop
- fixed integer overflow in stats output
- added static code analysis in Makefile (make check)
- reformatted source files for C17 standard
- added initial python testing framework for Linux systems
Version 3.0
24/05/2023- Linux distribution: rebuilt with libpcap 1.10.4
- BSD distribution: rebuilt with libpcap 1.10.4
- macOS distribution: rebuilt with libpcap 1.10.4
- Windows distribution: rebuilt with Npcap 1.75 with Npcap SDK 1.13
- updated homepage url: https://bittwist.sourceforge.io
Version 2.0
21/04/2012- switched to "struct pcap_sf_pkthdr" to support 64-bit platforms
- rebuilt with libpcap 1.2.1
- added Mac OS X distribution (author's primary platform)
- BSD distribution no longer maintained
- ended Bit-Twist Web Edition BETA
- revised copyright information and manpages
bittwistb (bridge)
- no longer maintained on all platforms
Version 1.1
12/12/2009- rebuilt with libpcap 1.0.0
- revised copyright information and manpages
- removed Eclipse dependency; requires only Cygwin environment for Windows
development
- release of bittwist(w), Bit-Twist Web Edition BETA,
http://twitter.com/bittwistw
Version 1.0
26/10/2007- revised AUTHORS, INSTALL, copyright information and manpages
- unified source files for all supported platforms
- moved Windows development to Eclipse IDE for C/C++ Developers + Cygwin
environment
bittwist (generator)
- increased max. packet throughput from 1Gbps to 10Gbps (option -r)
bittwiste (editor)
- corrected usage of strptime()
- use comma (,) instead of slash (/) as delimiter for all replace options
- added a feature request;
replace a specific MAC address with a new MAC address for eth, arp
- added a feature request;
replace a specific IP address with a new IP address for arp
Version 0.80
23/10/2006bittwist (generator)
- improved performance;
use single buffer for all packet data,
calculate linerate_interval only when necessary
bittwiste (editor)
- corrected several malloc related bugs
- added a feature request;
replace the linktype stored in the pcap file header,
e.g. to replace raw IP linktype to Ethernet linktype,
bittwiste -I rawip.pcap -O rawip.1.pcap -M 1
- added a feature request;
support for writing packets within a specific timeframe only,
e.g. bittwist -I trace.pcap -O trace.1.pcap -S
22/10/2006,21:47:35-24/10/2006,13:16:05
Version 0.74
17/09/2006bittwiste (editor)
- minor bug correction
- added a feature request;
delete a specific byte offset from a packet,
bittwiste -I trace.pcap -O trace.1.pcap -D 1-14
- added a feature request;
replace a specific IP address with a new IP address,
e.g. to replace source IP address 192.168.0.1 with 192.168.1.1,
bittwiste -I ip.pcap -O ip.1.pcap -T ip -s 192.168.0.1:192.168.1.1
Version 0.73
28/07/2006- minor correction in Makefile
- merged 180506-0.72-def.h-patch-1 (patch for OpenBSD) into BSD distribution
bittwiste (editor)
- minor bug correction
- added a feature request;
replace a specific port number with a new port number,
e.g. to replace destination port 1066 with 1067,
bittwiste -I tcp.pcap -O tcp.1.pcap -T tcp -d 1066:1067
misc.
- Bit-Twist 0.72 for Windows has been released prior to this update
Version 0.72
29/04/2006- removed definition of in_addr_t in def.h for BSD distribution
bittwistb (bridge)
- minor bug correction
Version 0.71
28/04/2006bittwist (generator)
- removed maths.h which was previously required for round(),
ROUND() is now defined in def.h
- minor bug correction
bittwistb (bridge)
- fixed gethwaddr(), previous version does not work under Linux
Version 0.7
11/04/2006bittwistb (bridge)
- removed packet duplication check (based on resource hog MD5 hashing);
this was initially required due to a faulty logic which causes the bridge
to check and forward packets that are already departing from an interface
- added explicit check for broadcast and multicast packets
- added hash entry timeout check
bittwiste (editor)
- option -R range can take a single value, e.g. -R 10 instead of previous
requirement of -R 10-10 to save only the 10th packet
- added support for checksum correction for payload which covers ICMP, TCP,
or UDP header and data
- in def.h, #define IP_FO_MAX, 8191 changed to 7770
misc.
- created manpages for bittwist, bittwistb, bittwiste
- public release: http://bittwist.sourceforge.net
Version 0.61
04/04/2006bittwistb (bridge)
- minor correction: when "forward to all", we are not suppose to forward a
packet back into the same port where we received it
Version 0.6
03/04/2006bittwistb (bridge)
- added pcap based program to bridge 2 or more LAN segments
bittwiste (editor)
- added proper handling for fragmented packets
- skip checksum calculation for fragmented packets
- option -R range is working now
Version 0.5
17/03/2006bittwist (generator)
- removed option -e timeout presented in Version 0.4 since its usage
is limited and we can do better by using the OS ping program
- added option -c count
to send packets up to count
bittwiste (editor)
- full rewrite
- added options to edit most fields in Ethernet, ARP, IP, ICMP, TCP and UDP
header
- added option -X payload
to support addition of payload from standard input
- added option -L layer
to support writing up to specific layer only
- added option -R range
to support writing of specific packets only
Version 0.4
10/03/2006- redundant definitions in bittwist.h and bittwiste.h moved to def.h
- change of datatype, e.g. unsigned char is now u_char
bittwist (generator)
- added option -e timeout
to allow sending packet as ping packet and check for host response
(currently limited to ICMP echo only, expect support for TCP in later
version)
bittwiste (editor)
- added option -c
to disable/enable checksum correction
Version 0.3
25/02/2006bittwist (generator)
- added option -r linerate
to limit packet throughput at the specified line rate (1 -> 1000Mbps)
- explicit close for pcap descriptor and file pointer removed from cleanup()
- more details in info()
bittwiste (editor)
- options to change source/destination MAC, source/destination IP, TTL,
source/destination port, enable/disable checksum correction for
IP, ICMP, TCP and UDP packets
Version 0.2
21/02/2006- removes libnet dependency
- requires libpcap 0.9.4 (and above)
- options: -d, -vv, -i interface, -s len, -l loop, -m speed, -p sleep, -h
- -v for timestamp and -vv to include hex data
- user specified interval in seconds through -p option
- interval multiplier through -m option
- packet length:
send captured length / on wire length / user specified length (14 to 1514
bytes)
through option -s
- SIGINT signal handling
Version 0.1
25/01/2006- skeleton program, uses libpcap 0.9.4 and libnet 1.1.3-RC-01
- options: -D, -V, -i interface, -l loop
- tested only on FreeBSD 6.0-STABLE