Commit Graph

1014 Commits

Author SHA1 Message Date
Srivats P
6f4ef70dbc Add FUNDING.yml for GitHub sponsors 2022-06-24 15:46:51 +05:30
Srivats P
b296c5fddd Check duration > 0 before calculating stream rates
Avoid divide by zero error and/or inf/nan values
2022-06-22 12:56:07 +05:30
Srivats P
d9cd90a13d Clear stream stats before starting Tx on port
This is required for correct stream rate calculations
2022-06-21 18:53:35 +05:30
Srivats P
fb879d2c72 Return txDuration as 0 for ports with no streams 2022-06-21 18:51:42 +05:30
Srivats P
5e7bf77b0c
Merge pull request #350 from pstavirs/streamrates
Add average rate per GUID in stream statistics
2022-06-20 17:27:24 +05:30
Srivats P
a1d985e44b Show stream stats in GUI sorted by GUID 2022-06-16 18:14:23 +05:30
Srivats P
b8d5d9421f Show Duration 'n rates in stream stats by default
Port Pkt stats are no longer shown by default. To see them and byte
counters, use context menu option - "Show details" (renamed from the
existing "Show Byte counters")
2022-06-16 14:46:18 +05:30
Srivats P
2868806f3f GUI side changes for displaying stream rates
At the moment, the Tx duration for a GUID is taken to be the largest of
all tx duration for that GUID across all ports. In the future, we may
consider changing it to average instead of largest.
2022-06-16 12:30:13 +05:30
Srivats P
ccf5b5ca47 Add a few asserts to debug GUI client crash
The crash seems to happen in the following scenario -
 * Ostinato and drone are both running (with some devices/streams)
 * Kill and restart drone
 * Wait for GUI to reconnect to drone
 * Click on one of the ports in the port list
2022-06-09 20:32:22 +05:30
Srivats P
c03038167c Initiate ARP/NDP resolve during session open
The current implementation won't work for all cases. See the notes added
in the code.

Updates #311
2022-06-09 20:30:42 +05:30
Srivats P
de9018166d Remove extra braces 2022-06-09 15:11:55 +05:30
Srivats P
c0d860b92d Support 0 rate for interleaved streams
Fixes #297
2022-06-09 13:35:05 +05:30
Srivats P
81c975d6d1 Wait 500ms for ARP/NDP to finish in resolve RPC
Fixes #318
2022-06-06 16:30:33 +05:30
Srivats P
1854f1ab9e
Merge pull request #336 from pstavirs/gre
WIP: Add GRE protocol
2022-05-27 13:43:46 +05:30
Srivats P
5a91dc4561 Remove TODOs from GRE implementation files 2022-05-26 17:30:29 +05:30
Srivats P
3d6f39e84d Implement override checksum for GRE 2022-05-25 15:16:33 +05:30
Srivats P
60f61ed947 Add and use UIntEdit for 32-bit GRE Key/Seq fields 2022-05-23 17:04:27 +05:30
Srivats P
26d0c8ab9c Skip not-included fields in variable fields list
Optional protocol fields not included in the packet have bitSize = 0
2022-05-23 13:31:01 +05:30
Srivats P
25a91e52f6 Change GRE optional fields implementation
* frameFieldCount() always includes all frame fields whether or not
included in packet
* if an optional field is not included in packet
    - FieldName is still returned
    - FieldTextValue is returned as "<not-included>"
    - FieldBitWidth is 0
    - all remaining attributes are QVariant()
2022-05-23 13:18:18 +05:30
Srivats P
c8cc7a021f Merge branch 'master' into gre 2022-05-21 12:16:14 +05:30
Srivats P
564687ffe3
Merge pull request #348 from Benni0109/master
Update portstatswindow.ui
2022-04-22 21:05:38 +05:30
Benjamin
9d4aaa4f7b
Update portstatswindow.ui 2022-04-16 19:14:44 +02:00
Srivats P
329469dd6e Calculate port tx duration and send to controller
This commit only includes server side changes plus the .proto changes.

Client side UI changes are still pending.
2022-02-21 22:20:59 +05:30
Srivats P
7374c74b95 Increase default width of port list pane
The list and detail panes were currently set to 1:2, so that the list
pane is 1/3rd the width. But for some reason it is not working like I
expect it to work. Setting it 1:1 looks better.
2022-02-12 19:26:18 +05:30
Srivats P
6f433bb7a1 Move View menu immediately after Edit menu
This seems to be the convention and also recommended by MacOS HIG
2022-02-11 18:34:06 +05:30
Srivats P
2ee19da15c Add Stream and Device menus to main window menu bar
Stream and Device related actions from the File menu has been moved
under these new menus
2022-02-11 18:09:30 +05:30
Srivats P
22b8c405f7 Use palette colors for stream stats
Using harcoded colors leads to unexpected results in dark mode.
2022-02-11 11:37:03 +05:30
Srivats P
2ce7f0c7a0 Disconnect portgroup before removing from list
Disconnecting _during_ remove sometimes causes crash because disconnect
triggers the logs window alert which **can** lead to repainting of
other windows which access port groups which have not been synced after
the removal of one or more portgroups.

Also emit endRemoveRows after each portgroup so that begin/end signals
match.
2022-02-10 20:34:10 +05:30
Srivats P
041f500e65 Avoid crash at GUI start up
The crash can happen before mainWindow is allocated. Don't remember how
that happens, but I have seen it happen!
2022-02-09 21:30:51 +05:30
Srivats P
7dd070fd98 Fix packet dump view bg color when using dark theme
Qt already paints the background before calling the paint event, so we
don't need to repaint it.
2022-02-07 21:44:40 +05:30
Srivats P
ac52844b3f Don't stretch stream config simple protocols widget
Only avoid the vertical stretch by adding a spacer, let horizontal still
stretch
2022-02-05 21:22:32 +05:30
Srivats P
2bf2973a23
Merge pull request #347 from pstavirs/themes
Add Ostinato Themes
2022-02-05 20:51:32 +05:30
Srivats P
341d0c3be8 Install themes as part of 'make install'
Tested only on Windows; pending on MacOS/Linux
2022-01-30 13:13:20 +05:30
Srivats P
6534312968 Look for themes in different locations on Mac/Unix
Not tested yet - since I'm coding this currently on Windows
2022-01-30 12:15:17 +05:30
Srivats P
a089cc1751 Update material themes and add qds themes 2022-01-29 12:24:08 +05:30
Srivats P
b0a81fb231 Change recalc cksum defaults implementation
These are the existing and desired defaults -
 * GUI: recalcCksum = true
 * PCAP import test: recalcCksum = false

With the existing implementation, doing PCAP import in 'raw' mode twice
would lead to recalcCksum being checked in the dialog the second time.
This was because we were always forcing it to be true for the GUI case
without checking for anything.
2022-01-23 21:46:42 +05:30
Srivats P
735e960dcb Use nsec pcap as intermediate when opening non-pcap
When opening a non-PCAP file, we convert it to intermediate PCAP format.
Use nanosecond pcap format instead of standard microsec pcap format for
higher timestamp resolution.

Updates #238
2022-01-19 18:54:46 +05:30
Srivats P
226705f015 Use integer storage and arithmetic for nanosec pcap
quint64 has larger range than double so has better accuracy. However,
for calculating packet rate, use floating-point arithmetic since the
packet rate is a double

Updates #238
2022-01-19 18:46:09 +05:30
Srivats P
45d5e15f23 Save PCAP always in nanosecond PCAP format
Updates #238
2022-01-17 18:49:24 +05:30
Srivats P
d09d83000e Add comment specifying PDML reader needs PCAP file
Updates #238
2022-01-15 18:36:15 +05:30
Srivats P
0f322fb2d8 Read nanosec PCAP files natively in non-pdml mode
In PDML mode, nanosecond support is already present - in fact, only
nanosecond is supported not microseconds.

Updates #238
2022-01-15 16:22:28 +05:30
Srivats P
0587e22de9 Add theme-manager and qt-material themes 2021-12-24 21:36:14 +05:30
Srivats P
5045b7f273 Update preferences.ui as per recent QtDesigner
No changes to the form - .ui file changes only because QtDesigner
generates the .ui file differently
2021-12-19 14:16:23 +05:30
Srivats P
a89400a4e5
Merge pull request #346 from pstavirs/find-replace
Find replace
2021-12-18 12:03:02 +05:30
Srivats P
db226d7069 Fix build break due to typo in #include files 2021-12-16 17:49:01 +05:30
Srivats P
f28e236276 Ensure mandatory fields to enable find-replace OK button 2021-12-15 21:28:52 +05:30
Srivats P
4bfd546f21 Change pcap import recalcCksum default to false
This was changed so that pcap import test produces minimal diffs like
earlier. However, for user, the import options dialog overrules this
default, so that user default remains recalcCksum as true
2021-12-12 11:06:36 +05:30
Srivats P
9208423372 Tweak find-replace UI
* matchAny op correctly hides findValue/findMask widgets
 * reorder widgets in the .ui file as per their actual appearance
 * remove tab order since the above reorder also fixes tab order
 * fix stretch factors so that UI redering doesn't change too much when
 things are checked/unchecked
2021-12-12 10:52:43 +05:30
Srivats P
16b353ae30 Alloc/free Pcap import options dialog every time
The earlier code was trying to reuse the dialog but this was throwing
an unexpected error every time -

    External WM_DESTROY received for QWidgetWindow

This commit fixes this error message
2021-12-11 21:13:15 +05:30
Srivats P
dbdeee2a6f Add option to recalculate cksums during pcap import
Recalculate cksum is now the default.

This behaviour change has been done to facilitate rewriting packet
fields post PCAP import using the new Find & Replace feature. Without
this any change in fields may cause incorrect checksums.

The earlier rationale for retaining the checksums in the PCAP file
during import was to ensure replayed packet was same as the one in the
PCAP file.

User now has a choice with this option.
2021-12-11 19:27:44 +05:30