Commit Graph

33 Commits

Author SHA1 Message Date
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
701a058c7d Merge commit 'refs/subrepo/ostinato/fetch' into subrepo/ostinato
Update from master repo into turbo
2022-06-27 14:35:22 +05:30
Srivats P
843733567a Reoganize code using subrepo for Ostinato (part 2)
This commit includes all the new and modified files
2022-06-27 13:43:46 +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
81c975d6d1 Wait 500ms for ARP/NDP to finish in resolve RPC
Fixes #318
2022-06-06 16:30:33 +05:30
Srivats P
7cf323202f Add new build() RPC
Make build an explicit RPC so that clients can call resolveNeighbor
before build
2019-05-28 18:46:58 +05:30
Srivats P
44357178c4 Rename var 'fail' as 'error'
This better reflects the following -
RPC fail : complete failure of the RPC; no changes were made
RPC error: partial failure of the RPC; some changes were made, some had
           errors
2019-02-21 20:57:24 +05:30
Srivats P
fcca47e652 Rename kRpcFail as kRpcError
Distinguish RPC Failure and RPC Error - the latter is in case of partial
failures

Also make Ack.status required - missed out in last commit
2019-02-16 20:54:11 +05:30
Srivats P
7ea8c96543 Populate Ack for every RPC
Also make error strings in Ack and RPC failure consistent
2019-02-16 20:38:25 +05:30
Srivats P
8b9cceb7ed HostDev: Return smac/dmac resolve failure via RPC 2019-02-09 17:16:31 +05:30
Srivats P
6dd6511269 Merge branch 'master' into sign 2017-12-03 12:59:26 +05:30
Srivats P
81e7e735bc sign: Resolve a few FIXMEs
* Rename track_stream_stats to is_tracking_stream_stats for consistency
with other bool params
* Change signature magic value to CODA
* Resolve notify memory leak
2017-12-03 11:26:09 +05:30
Srivats P
a2b349e5b7 Inform user about Drone version incompatibility 2017-09-25 21:26:57 +05:30
Srivats P
cffada4c07 sign: server rpc implementation of stream stats; actual collection of stream stats pending 2016-11-10 18:18:27 +05:30
Srivats P
bf92ea09df sign: TDD test script for stream stats 2016-11-06 21:28:31 +05:30
Srivats P
e0bf173b39 sign: remove sign stats and remnants of signed streams 2016-11-05 19:53:01 +05:30
Srivats P
9de3f96b20 sign: Do not allow port TxMode/StreamsType to be changed while tx is on 2016-10-27 21:44:08 +05:30
Srivats P
a79bbb1fcd sign: signed tx stats infra; actual tx signing pending 2016-10-23 17:24:23 +05:30
Srivats P
10559c2a56 sign: stats infra extended for sign stats 2016-08-22 23:26:33 +05:30
Srivats P
4a2c0066b9 Use explicit Recursive ReadWrite lock (needed by Qt >= 4.4); fixes #186 2016-06-03 18:54:14 +05:30
Srivats P
2acfb3f25a Fix warnings introduced by recent feature development 2016-06-01 20:51:29 +05:30
Srivats P
3040c72181 Device Emulation (contd.): Optimize getDeviceMac() and getNeighborMac() to return 0 if no devices are configured 2016-01-28 21:21:24 +05:30
Srivats P
3a5396c865 Feature (contd.): Device Emulation - Got rid of a bunch of FIXMEs and all trailing whitespace (in the code added for this feature) 2015-11-14 17:06:43 +05:30
Srivats P
7daf75c95a Feature (contd.): Device Emulation - added getDeviceList() RPC 2015-11-11 13:05:15 +05:30
Srivats P
492a207ede Feature (contd.): Device Emulation - reorganized/renamed some emulation RPCs and messages 2015-11-11 10:52:29 +05:30
Srivats P
280d4bedaa Feature (contd.): Device Emulation - Mac protocol can now 'resolve' src/dst mac corresponding to the packet from the Device Emulation infra 2015-11-10 19:40:32 +05:30
Srivats P
9302e5f17c Feature (contd.): Device Emulation - added resolveNeighbors() and related RPC code and implementation to send out ARP Requests and build the ARP Table on each device 2015-11-04 18:50:08 +05:30
Srivats P
246bc95c74 Feature (contd.): Device Emulation - user now configures a device group instead of a single device for easier creation of multiple devices; refactored and redistributed functionality between DeviceManager and Device; external functionality wise same as last commit; added initial code for vlans but not tested 2015-09-20 17:49:15 +05:30
Srivats P
ab433dc22b Feature: Device Emulation - first cut working code 2015-09-14 18:19:52 +05:30
Srivats P.
25ef8dd1e4 Infra: Added code to disable notifications for python-ostinato scripts since python-ostinato does not expect and hence does not know how to deal with notifications
Updates issue 144
2015-05-01 21:41:04 +05:30
Srivats P.
fbaf6edcdf Bugfix: Use 'smart' pointer to refcount and auto-destruct to avoid notification memory leaks
Updates issue 144
2015-04-28 18:45:35 +05:30
Srivats P.
ad6baea4af Infra: On a port modify, all clients are sent notifications of the same - they can request for port config again to get latest config
Updates issue 144
2015-04-24 20:53:00 +05:30
Srivats P.
a9da643fb2 Feature: Reserve Ports for cooperative use of shared drone. If a port is reserved the GUI will display the username of the owner but others can still view and control the port; in other words, we just potentially prevent unintentional usage of other people's ports, users still need to play nice with each other!
Fixes issue 144
2015-04-16 22:20:07 +05:30