FAQ
- Q. Ostinato on Windows does not start because
wpcap.dll
orpacket.dll
is not found - Q. When I run ostinato, it does not start drone (the server) automatically
- Q. I don’t like running Ostinato/Drone as root. Is there an alternative?
- Q. Ostinato on Linux fails to start with message “Could not connect to display”
- Q. After starting Ostinato, the port group status is disconnected (the port group icon is red)
- Q. I cannot connect to the port group
- Q. I don’t see any ports in my port list
- Q. I’m unable to expand the port group
- Q. Port group has no interfaces
- Q. On starting Ostinato/Drone, I get an error “bound address is already in use”. What’s wrong?
- Q. What is the maximum transmit rate that Ostinato supports?
- Q. How do I get the traffic rate in Mbps?
- Q. Why does my DUT show incoming traffic rate less than the outgoing rate shown by Ostinato?
- Q. When I try to view the capture buffer, Wireshark gives me an error “The file could not be opened: Uncompression error: buffer error”. What’s wrong?
- Q. Can I save/restore streams across Ostinato sessions?
- Q. Can I open/save PCAP (wireshark) files?
- Q. Why isn’t my PCAP file imported correctly? Ostinato shows a “diff” after import
- Q. How do I see debug console logs on Windows platforms?
- Q. On Linux, no debug logs are seen with
-d
option - Q. Where do I get answers regarding the Ostinato Python API?
- Q. The FAQ doesn’t answer my question. What do I do?
Q. Ostinato on Windows does not start because wpcap.dll
or packet.dll
is not found
This error indicates that either npcap is not installed or installed in a non-standard directory. Follow the appropriate instructions below -
For 64-bit Windows
- Check if
C:\Windows\SysWOW64\
containspacket.dll
andwpcap.dll
– if yes, you should not be getting this error; please contact Ostinato support. - Check if
C:\Windows\SysWOW64\Npcap
containspacket.dll
andwpcap.dll
– if yes, you have npcap installed in native mode in which the DLLs are installed in a non-standard path. The fix is simple - just addC:\Windows\SysWOW64\Npcap\
to your system PATH. - If both the above directories don’t contain
packet.dll
andwpcap.dll
– you don’t have npcap installed. Please install from npcap.org.
For 32-bit Windows
- Check if
C:\Windows\System32\
containspacket.dll
andwpcap.dll
– if yes, you should not be getting this error; please contact Ostinato support. - Check if
C:\Windows\System32\Npcap
containspacket.dll
andwpcap.dll
– if yes, you have npcap installed in native mode in which the DLLs are installed in a non-standard path. The fix is simple - just addC:\Windows\System32\Npcap\
to your system PATH. - If both the above directories don’t contain
packet.dll
andwpcap.dll
– you don’t have npcap installed. Please install from npcap.org.
Q. When I run ostinato, it does not start drone (the server) automatically
Check the following -
- The drone executable is in the same path as ostinato
- The path does not contain any spaces
- You have WinPcap installed (Windows Only)
Q. I don’t like running Ostinato/Drone as root. Is there an alternative?
Only the drone
agent requires special privileges, not the controller (See Controller-Agent Architecture).
The below commands assume drone was installed in /usr/bin
. Some distros may install it at /usr/local/bin
or /bin
. Please use the path appropriate for your system when running these commands. You can find the path for your system by running which drone
after installing the package.
If you are using Linux, and your distro provides the setcap
utility to set capabilities, you can assign just the required network privileges to the drone binary instead of full root privileges. Run the following via sudo or as root -
setcap cap_net_raw,cap_net_admin=eip /usr/bin/drone
This is the recommended way.
However, if your distro doesn’t support the setcap
utility, you can set suid root for Drone. This assigns full root privileges to the drone binary. Run the following via sudo or as root -
chown root /usr/bin/drone
chmod u+s /usr/bin/drone
Either of these methods, need to be done only once. Post this setup, you should be able to run Ostinato/Drone as a normal user without using sudo or as root.
Note: Although Drone can be invoked without sudo or as root, it will run with the privileges you assigned to it by one of the above methods.
Q. Ostinato on Linux fails to start with message “Could not connect to display”
If you are getting an error similar to the following, try running Ostinato as a normal user (not as root). Make sure you have assigned privileges to Drone.
root@potter:/home# ostinato
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Aborted (core dumped)
Q. After starting Ostinato, the port group status is disconnected (the port group icon is red)
See I cannot connect to the port group
Q. I cannot connect to the port group
Check if drone is running. If yes, try reconnecting to the port group (File | Connect Port Group) - make sure that the firewall is not blocking TCP port 7878. If drone is not running, try running drone manually.
Q. I don’t see any ports in my port list
See Port group has no interfaces
Q. I’m unable to expand the port group
See Port group has no interfaces
Q. Port group has no interfaces
Check the following in the order given -
- Verify that the port group status is “connected” (the port group icon is green)
- Check that ports are not administratively disabled
- Ensure that drone is running with required privileges
- Linux: There’s an easy way and a better way
- Easy way: If your distro supports
sudo
usesudo ostinato
, otherwise become root by doingsu
and then runostinato
. Doing this provides full root privileges to bothostinato
anddrone
which is unnecessary and insecure. - Better way: Do a one-time privilege assignment. After doing that you can run
ostinato
as a normal user
- Easy way: If your distro supports
- Mac OSX: There’s an easy way and a better way
- Easy way: Use
sudo /Applications/Ostinato/Ostinato.app/Contents/MacOS/Ostinato
. Doing so provides full root privileges to bothostinato
anddrone
which is unnecessary and insecure. - Better way: Install Wireshark, if you haven’t already. It is a great tool to have alongside Ostinato. During Wireshark installation, it creates a startup task that sets up appropriate ownership and permissions to the /dev/bpf* devices so that capture/transmit applications such as Wireshark/Ostinato can be invoked normally without sudo. In other words, if you can run Wireshark without sudo, you can run Ostinato without sudo.
- Easy way: Use
- Windows: Ostinato uses WinPcap on Windows. Typically WinPcap is installed to run at startup and applications using WinPcap don’t need anything special to be done. If however, this isn’t the case for you, you can right click on the Ostinato application and select “Run as administrator”.
- Linux: There’s an easy way and a better way
- Ports are not being filtered out by
drone
Q. On starting Ostinato/Drone, I get an error “bound address is already in use”. What’s wrong?
The error indicates that some application is already using the TCP port number (7878) that is used by drone.
Check if drone is already running - if not, maybe some other application is running that is using that port number (use netstat to check). You can change the port number that drone uses by passing it as a command line argument - drone <port-number>
. From Ostinato, you will need to connect to drone on that particular port by specifying it in the “New Port Group” command.
Q. What is the maximum transmit rate that Ostinato supports?
Ostinato supports line rate traffic generation at 10G, 25G, 40G and 100G using the Turbo Transmit add-on on supported hardware.
Without the Turbo add-on, it depends. Since the traffic is generated by software, it depends on the capabilities (CPU, memory etc.) of the host running drone
. To generate “top-speed” traffic, configure a stream with “Packets/Sec” as 0 (Zero). If running on Windows, also configure the “Number of Packets” to be at least 100. However, Ostinato on Windows is significantly slower due to Windows OS limitations; please use Ostinato for Linux instead.
If packet size is not of concern, just the bits per second throughput, use the largest packet size you can - including jumbo frames if supported by your NIC.
Q. How do I get the traffic rate in Mbps?
A bit of theory first.
An ethernet frame is composed of 8 bytes of preamble+SFD followed by the actual data, followed by 4 byte FCS and finally 12 bytes of inter-packet gap. When you specify the packet size in Ostinato, you are configuring the size of the actual data including the 4 byte FCS.
Traffic rate calculated using this packet size is called the data rate. If we add the 8+12=20 byte overhead to every packet and then calculate the traffic rate, what we get is the line rate. When we say interface is a 1Gbps interface, we refer to its maximum line rate. The maximum data rate that can be transferred on this interface will be less than the line rate due to the 20 bytes per packet overhead e.g. for 64 byte packets, the line rate of 1000 Mbps corresponds to data rate of 762 Mbps.
If you are using a fixed packet size in your stream(s), you can calculate the data rate and line rate using the following formulae -
Data Rate (in Mbps) = (fps * packetSize * 8)/1000000
Line Rate (in Mbps) = (fps * (packetSize+20) * 8)/1000000
where fps
is the Frame Send Rate (fps)
or Frame Receive Rate (fps)
as shown in the Ostinato Statistics Window.
If you are using a mix of packet sizes in your stream(s), you can calculate the data rate using the following formula -
Date Rate (in Mbps) = (Bps*8)/1000000
where Bps
is the Byte Send Rate (Bps)
or Byte Receive Rate (Bps)
as shown in the Ostinato Statistics Window. With the current version of Ostinato it is not possible to calculate the line rate in this case.
Q. Why does my DUT show incoming traffic rate less than the outgoing rate shown by Ostinato?
First check if your DUT can handle the rate you are sending to it e.g. some virtual images are rate limited.
Ostinato always displays (and takes input as) the line rate. Check if your DUT displays the line rate or data rate - the latter will always be less than the former. Learn more about line rate and data rate.
Q. When I try to view the capture buffer, Wireshark gives me an error “The file could not be opened: Uncompression error: buffer error”. What’s wrong?
The error indicates there are no packets in the packet buffer - maybe you forgot to start capture?
Q. Can I save/restore streams across Ostinato sessions?
Save/Restore streams is supported from version 0.2 onwards. However, the file format is not final yet - see FileFormat Spec for more information on backward and forward compatibility.
Q. Can I open/save PCAP (wireshark) files?
PCAP/PDML import/export is supported Ostinato 0.4 onwards
Q. Why isn’t my PCAP file imported correctly? Ostinato shows a “diff” after import
Ostinato has some limitations when importing PCAP files -
- The following external programs are required - tshark, gzip, awk and diff (except for tshark, the remaining should be available by default on any linux/unix system and for Windows these are shipped alongwith the Ostinato binaries)
- Only ethernet encapsulation is supported currently
- The “intelligent import” option is dependent on the tshark version - for best results use tshark 2.x/3.x with Ostinato 1.1 or newer. With Ostinato 1.0 or older, use the latest 1.x tshark. You can have multiple Wireshark/tshark versions installed parallely and change Ostinato preferences to use the appropriate version
- Ostinato (since v1.2.0) recalculates checksums of imported packets. If your PCAP contained packets with incorrect checksums (maybe due to checksum offload as Wireshark reports), Ostinato will report a diff between the original packet and what Ostinato will send out. You can turn off recalculate checksums during PCAP import, if required.
- Packets with length > 16K are truncated
- Some text based protocols may be imported as a hexdump instead of text - please report such instances on the mailing list alongwith the PCAP file so that this may be enhanced in future versions of Ostinato
Potential Solution: If you don’t need to edit the imported packets, retry the import and uncheck the Intelligent Import option.
Q. How do I see debug console logs on Windows platforms?
On a Windows platform, console logs from GUI applications do not go to STDOUT or STDERR but to a special “debugging” window. Install the free application DebugView and run it before you start Ostinato/Drone. Logs from Ostinato/Drone will be shown within DebugView. You can copy-paste logs from this window or save the entire log as a text file.
NOTE: Starting version 0.6, Drone is now a pure console app and not a GUI app, so debug output from Drone does not go to the “debugging” window but to the console stdout. To capture Drone output starting version 0.6, you will need to run drone from a cmd/powershell terminal.
Q. On Linux, no debug logs are seen with -d
option
Please try exporting the following environment variable -
export QT_LOGGING_RULES="*.debug=true"
Alternately, you can prefix the variable while starting ostinato/drone -
QT_LOGGING_RULES="*.debug=true" ostinato -d
QT_LOGGING_RULES="*.debug=true" drone -d
Q. Where do I get answers regarding the Ostinato Python API?
Please check the Ostinato API Technical FAQ or the Ostinato API Licensing FAQ
Q. The FAQ doesn’t answer my question. What do I do?
Drop a mail to the Ostinato mailing list - ostinato at googlegroups dot com