Ostinato Change Log¶
2023-10-19 version 1.3.0¶
Added¶
- 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
Changed¶
- 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
Fixed¶
- 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
Added¶
- 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
Changed¶
- 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
Fixed¶
- 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¶
Added¶
- 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
Changed¶
- 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)
Fixed¶
- 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
toinput
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¶
Added¶
- 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
Changed¶
- 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 askRpcError
- 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
Fixed¶
- 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