Commit Graph

17 Commits

Author SHA1 Message Date
Srivats P
6f71844f7c Make win32 specific changes for per-stream latency
There are 2 changes -
1. Encode txPort in ttag packets and use it at TxTtagStats and
RxPcapStats to identify Tx and Rx packets respectively
2. Don't use pcap_sendqueue_transmit() if stream timing is in use -
since we can't modify TTAG packets inside that API
2023-05-06 13:15:37 +05:30
Srivats P
4886739da6 Compile out timing debug prints
They can be compiled in if required
2023-04-30 11:50:54 +05:30
Srivats P
b9345463c4 Add thread name for PcapRxStats
PcapTxTtagStats thread name has also been shortened since names beyond 16
chars are truncated.
2023-04-26 12:22:26 +05:30
Srivats P
05a9dd5743 Rename PcapRxStats::id_ as PcapRxStats::portId_
Better code clarity
2023-03-31 16:58:52 +05:30
Srivats P
05335b31d5 Integrate StreamTiming with the code
Bugs found during integration were fixed and minor code improvements were made
such as using consts, const params, renaming members etc.
2023-03-31 16:55:03 +05:30
Srivats P
f7b6b46a5d Move debugStats() from PcapRx to base PcapSession
With this change, other classes that use PcapSession as base can also
use debugStats(), if required
2023-03-23 15:42:41 +05:30
Srivats P
7b7ede351b Fix build break with stream stats fix
The fix was validated with Windows, but not on Linux. This commit fixes
the build break for non-windows platforms.
2023-02-09 15:06:34 +05:30
Srivats P
c70811eaa4 Fix spurious stream stats drops
The problem happens for bidirectional flows. The sequence of events is
as follows when you start Tx on Ports p1, p2 with the current code -

1. Clear stream stats on p1
2. Start tx on p1
3. Clear stream stats on p2
4. Start tx on p2

By the time #3 is executed, it may have already rx packets from p1 which
are being incorrectly cleared, this will cause these number of packets
to show up as dropped instead - incorrectly.

The fix is to change the order like this -

1. Clear stream stats on p1
2. Clear stream stats on p2
3. Start tx on p1
4. Start tx on p2

Unidirectional flows will not see this problem - as long as startTx is
done only on the Tx port and not the Rx port.

This bug is a regression caused due to the code changes introduced for the
stream stats rates feature implemented in 1.2.0
2023-02-08 16:34:03 +05:30
Srivats P
64d1525f50 Fix infinite loop when stopping capture etc.
On some platforms and/or some libpcap verisons, libpcap doesn't support a
timeout which makes interactive stop not possible. So we now use a UNIX
signal to break out. Obviously this works only on *nix platforms - which
includes MacOS. For now the problem is not seen on Windows with WinPCAP,
so we should be fine. May need to revisit when we add Npcap support.

Fixes #215, #234
2019-08-10 13:26:04 +05:30
Srivats P
9f4b70c5a8 Port server code from Qt4 to Qt5
Verification/testing of porting changes is pending
2018-03-15 19:34:42 +05:30
Srivats P
d58b614e67 sign: Exclude ICMP packets from Rx Stream Stats 2017-02-16 21:32:01 +05:30
Srivats P
13e28cff68 sign: Fix Tx stream stats counted as Rx on some platforms
On platforms that don't support filtering IN/OUT using
pcap_setdirection() - e.g. Windows, adjust Rx stats appropriately
2017-01-09 18:57:38 +05:30
Srivats P
7366e5d2e6 sign: fix yet another build break 2016-11-18 21:29:45 +05:30
Srivats P
b4beda7c30 sign: NOCAPTURE_LOCAL is not reqd since we don't tx on this handle 2016-11-18 21:12:56 +05:30
Srivats P
e7ed15fc89 sign: fix loopback problem (tx pkts rcvd by rxstats thread) on non-Windows platforms 2016-11-18 20:57:50 +05:30
Srivats P
c45bbdaa10 sign: fix non-Windows build break 2016-11-18 20:51:30 +05:30
Srivats P
e9bdfa04ea sign: implemented rx stream stats - loopback problem to be fixed 2016-11-17 21:44:34 +05:30