Skip to content

Ostinato Change Log

2023-10-19 version 1.3.0


  • Added per-stream average latency and jitter measurement
  • Include row/column headers when pasting stream stats as text
  • Use Outer/Inner prefix for fields of combo protocols such as IP4o4 to distinguish them
  • Double-click port name to edit port configuration properties (#344)
  • Allow user to add a port decription (#223)
  • Show port name/description in Ports Window
  • Warn about per-stream stats not supported for ICMP streams


  • Improve Port stats window
    • Remove port byte rate stats as bit rates are more useful
    • Change port stats names to always start with send/receive
    • Reorder port stats to make them consistent wrt send/receive
    • Group related port stats together
  • Try to fit all columns within stream stats window to avoid unnecessary scrolling
  • Improve IPv4 address user input for IPv4 protocol config


  • Fix Ostinato GUI crash when opening a session file or when adding/removing a portgroup - regression introduced in v1.2.0
  • Fix spurious stream stats drops - regression introduced with v1.2.0
  • Fix drone crash at startup on Linux. The crash is seen when the main routing table has a default route without a gateway
  • Write string/hexstring value correctly when saving stream(s) as Python script
  • Fix helpful message not being displayed when missing packet.dll on Windows
  • Fix potential contention for stream stats update
  • Fix per-stream stats not working for VLAN tagged packets (#354)
  • Fix missing port status when pasting port stats as text

2022-08-15 version 1.2.0

In memory of Viswa


  • Add new Protocol - GRE (accessible via advanced protocol selection)
  • Add new per-stream stats fields - duration, avg tx/rx packet and bit rates
  • Warn about retreiving stream stats from a transmitting port as they may be unavailable or incomplete (#334)
  • Add IMIX as a Frame Length mode - frame lengths 64, 594, 1518 in 7:4:1 ratio
  • Improve UI/UX of configuring port traffic rates - show port speed, allow input as % load, change port bit rate unit automatically for better readability; allow k, m suffixes for easier input of pps/bps
  • Add Find & Replace for protocol fields to bulk edit streams easily - useful especially for pcap editing post import
  • Add Recalculate Checksums option to PCAP intelligent import
  • Improve nanosec PCAP support
    • Read nanosec PCAP files natively in non-pdml mode (#238)
    • Use nsec pcap as intermediate format when opening non-pcap
    • Save PCAP always in nanosecond PCAP format
  • Add (experimental) Ostinato GUI themes
  • Warn user that stream stats may not work in case of short packets
  • Add Ctrl-C graceful cleanup for Drone on Windows


  • Display streams in order of GUID in the stream stats window
  • When stream stats tab is closed, select the previous tab - usually, the port stats tab - instead of the tab to the right (#331)
  • Reorganize application main menu by introducing two top level menus - Streams, Devices
  • Wait 500ms for ARP/NDP to resolve (#318)
  • Support 0 (top-speed) rate for interleaved streams - all streams will be sent at the same rate (#318)
  • Changes in common infra code to support Turbo add-on


  • Fix count of variable length packets which may some time lead to very long apply time (#325)
  • Fix unknown GUID 4294967295 in stream statistics
  • Fix port reservation getting cleared incorrectly when other port config properties were modified, but not the port reservation (#317)
  • Fix wrong stream getting disabled in interleaved mode (#328)
  • Close existing RPC connections at Drone exit to avoid assert crash (#314)
  • Gracefully handle portgroup disconnect during Apply so that the GUI remains usable (#326)
  • Fix incorrect display of STP Mac addresses in the STP config widget (#340)
  • Try to automatically reconnect with drone after disconnect (#333)
  • Fix incorrect UDP/ICMP checksums when their payload contains other protocols with checksum fields like VxLAN or Geneve
  • Fix disabled start/stop buttons after opening a streams file (#312)
  • Show/hide the Next column in stream list on Transmit mode change
  • Fix occassional GUI crash when deleting a port group
  • Fix colors in stream stats window in dark mode to make text readable

2020-06-19 version 1.1


  • Cut, copy, paste support added for streams, device groups, stats and logs
  • Import PCAPNG and any other Wireshark supported file format for PCAP import (#83)
  • Added support for npcap on Windows; npcap support is beta quality for now (#236)
  • Large animated notification in case of errors and warnings


  • Improved PCAP import with tshark 2.x/3.x
  • Improved PCAP replay timing accuracy
  • Improved handling of multiple simultaneous port groups by making their handling independent
  • When reset to default view, all selections and current index are also cleared
  • Set top and bottom dock windows to equal height at startup
  • File paths in preferences can be specified directly; using the file picker dialog is optional (#288)


  • Linux only - fix drone crash at startup if one of the ports doesn't have a link layer (mac) address (#298)
  • Fix drone crash due to contention between emulation packet processing thread and emulation device configuration threads
  • Gracefully abort the connection with a helpful message if bad data is received from drone instead of crashing
  • Fix device emulation packets with VLAN and CFI or Prio bits set not matching the emulated device having same VLAN as the packet
  • Fix incorrect IPv6 src/dst address when set to increment/decrement mode (#283)
  • Fix IPv6 stream configuration src/dst address prefix length in the GUI not being saved correctly
  • Fix valid IP addresses not being accepted in the IGMPv3 Source List field of a IGMPv3 stream (#292)
  • Fix incorrect IGMPv3 Group Aux Data in a IGMPv3 stream
  • Allow full range for a variable field - 0 to max (#301)
  • Change raw_input to input in stream saved as python script so that it is compatible with both Python 2 and 3
  • Allow avg rate change in streams pane from 0 to > 0 in the GUI (#294)
  • Fix jumbo error being reported multiple times during pre-flight check (#290)
  • Fix sort order of devices to VLANs+Mac (#289)
  • Fix .app path setting in preferences on Mac not working (#288)
  • Fix stream stats setting not being saved in a Ostinato session file
  • Fix 'awk not found' message during PCAP import
  • Show packet summary line correctly in PCAP import diff

2019-09-07 version 1.0


  • Host Devices - use host OS' IP address and ARP/NDP resolution
  • Custom widget to enter TOS/DSCP/ECN values for IPv4/IPv6 protocols
  • More checks to warn users about potentially bad or unexpected packets when editing streams
  • Transmit/capture status icons for each port in the port list
  • Rx/Tx bps (bits per second) rows to the Port Statistics window
  • Logs window to show communication with the agent and failures/errors, if any
  • Start/Stop Transmit buttons to Stream List window
  • Resolve/Clear ARP/NDP buttons to Device Info window
  • New build RPC to explicitly prebuild packets for transmission
  • Implicit Src/Dst mac address resolution when clicking Apply
  • Progress Bar during Apply
  • New menu item - Help | Check for Updates
  • New menu item - Help | Donate


  • Code ported from Qt4 to Qt5
  • Improved UI/UX for variable fields widget
  • Mac Protocol - default mode changed from fixed to resolve (may break scripts using the API if they assumed fixed)
  • Mac Protocol - accept : or - as mac address separator characters
  • IPv4 Protocol - when importing from PCAP, import IP options into ip.options field instead of a separate HexDump protocol
  • Ack message - enum kRpcFail renamed as kRpcError
  • New version availability is shown in a message box instead of in the status bar
  • Debug logs are disabled by default (provide -d on command-line to enable)
  • Resolve will trigger ARP/NDP from emulated devices if they are unresolved
  • Resolve will not send ARP/NDP if already resolved
  • Port Statistics window shows status icons instead of text for link state and transmit/capture state
  • Use Windows' connection name as the port description (#222)
  • The full Ostinato logo is used as the icon instead of only a part of the logo


  • On some Linux platforms, Drone and Ostinato block when stopping capture, disabling stream statistics tracking or removing last emulated device group (#215, #234)
  • Clear All Statistics does not work when "View reserved ports only" is selected
  • Reserved ports are not shown in Port Statistics window at GUI controller startup
  • Build failure in mld.cpp on some platforms (#265)
  • Pcap imported streams send 10 packets for each imported packet instead of one
  • Allow stream rates to be entered with thousands' separator characters (typically, comma) (#240)
  • HexDump protocol - pad effective only if this is the last protocol in the packet
  • TCP/UDP/ICMP checksums are incorrect if packet has a IPv6 Extension header (#271)
  • Ostinato (and Drone) hang when building packets in interleaved mode on a port which has one or more streams configured, but none are enabled
  • Variable fields of type Counter32 not able to count/step more than 65535

2017-12-10 version 0.9

  • Per stream statistics
  • Support for IPv4 options field (as a hex string)
  • Ostinato command line options and params
  • Ostinato UX improvements
  • Ostinato Python API re-licensed under a proprietary license to help sustain project
  • Bugfixes
  • Ostinato crashes, when opening PCAP containing STP packets (#213)
  • Hexdump input requires lowercase letters (#212)
  • Hexdump data input widget doesn't have focus (#103)
  • Delete streams in Interleaved mode takes a very long time (#195)
  • When emulating devices, use default gateway for off-subnet destinations (#196)
  • Multicast destination IP address should resolve to a multicast destination mac address (#192)
  • Fix IPv4/IPv6 PCAP/PDML import errors using tshark 2.x (#219)

2016-06-28 version 0.8

  • Device Emulation (IPv4/IPv6)
    • Auto ARP/NDP resolution for streams
    • Ping
  • Save/Restore session
  • Add port group now accepts IPv4/IPv6 address or hostname (#152)
  • Specify Rate Accuracy to conserve CPU usage (#151)
  • New Protocol(s)
    • STP
  • Bugfixes
    • TCP/UDP checksum incorrect for stream with increment/decrement packet length (#175)
    • Drone crashes on startup on some Linux machines (#174)
    • Ostinato GUI crashes when connected to a Drone with a lot of ports
    • Save as Python script of HexDump Protocol is incorrect (#170)
    • Increment/Decrement/Random length packets are not generated (#168)
    • A calculated UDP checksum of 0 should be set as 0xFFFF (#160)
    • Save as Python script of stream containing Variable Field is incorrect (#158)
    • Incorrect Transmit Rate when sending bursts (#157)

2015-06-16 version 0.7.1

  • Bugfix - GUI crashes on clicking View Capture button (#153)

2015-06-09 version 0.7

  • Drone settings to specify include/exclude portlists (#122)
  • Ostinato client GUI checks for version updates at startup
  • 64bit stats support for Linux (if supported by Kernel and Driver) (#70)
  • Save streams as a python script from the GUI
  • Duplicate streams (#23)
  • Port Reservation; Show my reserved ports only (#144)
  • Restore Default View (#68)
  • Variable Fields (#31, #84, #110, #127)
  • Bugfixes (several)

2014-07-07 version 0.6

  • Rearchitected/refactored the protocol builder framework to remove GUI dependency from Drone
  • Added Python bindings for scripting support
  • Multiple clients can now simultaneously connect to the same Drone instance (#22)
  • Clients now need to check for version compatibility with Drone at startup
  • Bugfixes
    • #107 - IGMPv3/MLDv2 Query missing Group Address Field
    • Start/Stop Transmit/Capture RPCs should return only after the invoked operation is complete
    • Port names in the port stats window are incorrect

2012-08-01 version 0.5.1

  • Link state and improved statistics support for Linux, BSD and Mac OSX
  • Bugfixes
    • Fixed long inter-packet delay bug in interleaved mode due to which stream transmission could not be stopped (#60, #72, #74)
    • Fixed long inter-packet delay on some Win32 platforms (#66)
    • Fixed crash at init when pcap wasn't able to open an interface (#64)
    • Fixed incorrect TCP checksum when it is overridden (#58)

2011-10-25 version 0.5

  • Improved maximum traffic generation rates (pps); Linux - upto 25x; Windows - upto 60x
  • Reduced time taken to "apply" changes to stream(s)
  • Added support for "Pkts/Sec" and "Bytes/Sec" rate stats on Linux
  • Added support for transmit rates less than 1 pps
  • Added support for nanosecond resolution while calculating inter-packet gaps
  • Added support for average/aggregate port rate
  • Added a new "Interleaved Streams" transmission mode
  • Integrated newer version of QHexEdit widget - HexDump protocol edit now supports copy-paste and undo-redo
  • Major bugfix: (Windows Only) Tx Pkts were looped back to Rx on same port

2011-05-10 version 0.4.1

  • Bugfixes
    • Fixed "Save As PCAP" for Linux distros where file was being saved in Ostinato format rather than PCAP
    • Fixed compilation problem with protobuf 2.4.0 and above

2011-04-19 version 0.4

  • PCAP/PDML file import/export
  • Jumbo Frames support upto 16K (needs Hardware support)
  • Auto-reconnect for portgroups
  • Usability enhancements
  • Bugfixes
    • Fixed drone crash when NIC doesn't support promiscuous mode
    • Fixed ostinato crash when opening a file saved by a newer version
    • Others

2010-11-11 version 0.3

  • Added IGMP (all versions v1, v2, v3)
  • Added MLD (all versions v1, v2)
  • Added HexDump (user specified content)
  • Several bugfixes

2010-08-12 version 0.2

  • Save/Restore streams to/from disk

2010-06-29 version 0.1.1

  • New platforms
    • BSD
    • Mac OS X
  • Protocols
    • Added IPv6
    • Added IP tunneling (IP-in-IP) - 6over4, 4over6, 6over6, 4over4
    • Added Text protocol - useful for HTTP, SIP, NNTP, RTSP etc.
    • Added ICMPv6
    • Preflight check for truncated frames
  • Build Framework
    • make install support
    • Qt Creator and other IDE support
  • Other
    • Improved GUI handling in the Port Stats Filter Dialog
  • Documentation
    • Improved Protocol Builder documentation (class AbstractProtocol)
  • Bugfixes
    • Invalid TCP/UDP checksums caused by invalid pseudo-IP checksum
    • Assert failure when closing Ostinato with the port list expanded
    • Crash in Port Stats Filter Dialog while removing selected rows
    • Fixes for 64bit compilation and Qt4.6

2010-04-11 version 0.1

  • First public release
Back to top