Srivats P
13eed5f528
Merge pull request #275 from pstavirs/hostdev
...
Hostdev
2019-04-11 21:38:42 +05:30
Srivats P
cd9758f165
Merge branch 'master' into hostdev
2019-04-11 18:56:49 +05:30
Srivats P
677d56bf32
Don't inline sumUInt128 since it's used elsewhere as well
2019-04-04 21:38:47 +05:30
Srivats P
75c8f44079
Fix MacOS specific Hostdev bugs
...
* Fix SA_SIZE definition for MacOS
* Use sdl_index instead of rtm_index as the ifIndex
* Remove the embedded ifIndex in link local addresses
* Extract default IPv6 gateway correctly
2019-04-03 20:41:46 +05:30
Srivats P
0fb81e4d8e
Send ARP/NDP request from emuldevice if unresolved
2019-03-12 19:04:59 +05:30
Srivats P
1c2e833c4a
Don't trigger ARP/NDP if already resolved
2019-03-11 18:25:07 +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
adfe1380da
Print drone version/revision first thing at startup
...
Currently these are printed at the end of init when we start waiting for
client connections - this was done so that this info doesn't get lost in
the barrage of init logs. The downside is if there is a crash during
init, we don't get to know the version/revision from the logs. With this
change this info is printed twice - first thing when we start and just
after init when we start waiting for client connections
2019-02-18 18:16:36 +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
88b3c287d0
Track smac/dmac resolve failures when building packet list
2019-02-05 18:31:43 +05:30
Srivats P
2726192b9c
HostDev: Print interfaceInfo for debug purposes
2019-01-15 19:07:55 +05:30
Srivats P
86150a7e46
HostDev: Create Host Device even if no IP is configured
2019-01-14 18:26:24 +05:30
Srivats P
bac7fba1de
HostDev: Fix Win crash if a NIC doesn't have IP address
2019-01-14 18:10:47 +05:30
Srivats P
178b942d6e
HostDev: Start/stop emulation based on no. of deviceGroups
...
Host Devices are included in deviceCount() but not in deviceGroupCount()
and emulation is not applicable to Host devices
2018-12-23 21:54:38 +05:30
Srivats P
7e476a8361
HostDev: Return QString to avoid accessing out of scope variable
...
errMsg used toLocal8Bit() which uses a temporary stack variable which
could go out of scope if the function is not inlined by compiler, so
avoid it by returning QString and use qPrintable
2018-12-23 21:50:46 +05:30
Srivats P
edd326fb24
HostDev: Refactor device list(s) ops
...
Use function(s) to hide the insertion/removal from multiple internal
lists
2018-12-23 21:49:21 +05:30
Srivats P
e6592c03a2
HostDev: Fix another bunch of FIXME/TODOs
2018-12-12 22:00:09 +05:30
Srivats P
112c3ff788
HostDev: Fix typo causing Linux build break
2018-12-11 21:27:57 +05:30
Srivats P
545f740676
HostDev: Fixed a bunch of FIXME/TODOs
2018-12-11 18:57:53 +05:30
Srivats P
12d6713491
Fix MacOS build break due to missing SA_SIZE definition
2018-12-10 18:00:00 +05:30
Srivats P
5956de4f6f
HostDev: Add BSD host device
2018-12-08 11:40:57 +05:30
Srivats P
d8bae11144
HostDev: Fix MacOS build break
2018-10-31 21:19:01 +05:30
Srivats P
7696f7d8f9
HostDev: Add BSD interface info
2018-10-31 19:59:08 +05:30
Srivats P
db446966f7
HostDev: Fix symbol clash between net/if.h and libnl use of linux/if.h
2018-09-08 13:18:46 +05:30
Srivats P
a1155b0022
HostDev: Fix IPv6 gw search code
2018-09-08 17:08:53 +05:30
Srivats P
c5c071ee56
HostDev: Fix linux scope in qmake .pro
2018-09-02 21:06:08 +05:30
Srivats P
73043f6fe6
HostDev: Added Linux host device code
2018-09-02 19:45:08 +05:30
Srivats P
f58c4e309c
HostDev: Add IPv6 support for Windows hosts
2018-08-15 10:51:04 +05:30
Srivats P
ffa0fdaa74
HostDev: Use unused constants
2018-07-31 22:24:31 +05:30
Srivats P
86ab58ae8c
HostDev: Remove unused constants
2018-07-31 22:04:10 +05:30
Srivats P
34323bb187
Merge branch 'master' of D:/srivatsp/projects/ostinato/master into hostdev
2018-07-31 20:27:40 +05:30
Srivats P
fce1df8dab
HostDev: Print both code and string for errors (win32)
2018-07-31 18:11:29 +05:30
Srivats P
1b74c55fee
HostDev: Squelch unused warning
2018-07-27 18:54:21 +05:30
Srivats P
205663e59e
Enable c++11 for drone server
2018-07-27 17:25:43 +05:30
Srivats P
fc31e52f61
HostDev: #ifdef Windows code
2018-07-26 21:20:58 +05:30
Srivats P
bc972e4476
HostDev: Added infra and windows IPv4 implementation
2018-07-26 20:53:33 +05:30
Srivats P
0d5e836d3f
HostDev: Refactored Device into base Device and EmulDevice
2018-07-19 18:54:01 +05:30
Srivats P
9a4e7e7550
Silence warnings
2018-05-22 21:48:21 +05:30
Bernhard Ehlers
1d8bb9f4df
Fix warnings about DumpView::dataChanged and struct StatsTuple
2018-05-21 21:31:44 +02:00
Srivats P
016694f1fe
Use %ll instead of PRI since Windows dev env has been upgraded
2018-05-20 13:33:38 +05:30
Srivats P
e1194a1db3
Check for active stream count when building interleaved packet list
2018-05-10 21:34:51 +05:30
Srivats P
1cddfbf2ec
Use Windows' connection name as the port description
...
... instead of the PCAP returned description. This allows for a better
UX since user can more easily identify which port is which.
This will work only Windows Vista and higher since IPHLPAPI.DLL has
published APIs only for these versions. Older windows versions such as
XP will continue to use the PCAP returned description
Fixes #222
2018-05-07 22:05:04 +05:30
Srivats P
a16eefbff4
Treat warnings as errors and fix existing warnings
2018-04-20 20:50:51 +05:30
Srivats P
90fe2080c1
Debug Xcode build failure 8/...
2018-03-19 20:14:30 +05:30
Srivats P
7a61d14243
Fix Travis build issues
2018-03-16 21:59:34 +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
f82cf933b4
Print PCAP library version at drone startup
2018-02-08 22:39:22 +05:30
Srivats P
f756ead433
Add Tx/Rx bps to GUI stats window
...
bps stats are derived from the Bps stats and represent line rate taking
into account the per packet overhead on the line with the following
assumptions -
* Link type is Ethernet
* Bps (and total Bytes) stats don't include the 4-byte FCS
Fixes #241
2018-01-31 16:03:34 +05:30
Srivats P
c0f94ec58c
Use static linking on win32
2017-12-07 19:04:18 +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
57e8fe7236
UX: Report more drone startup errors
...
* Changed drone exit code from -1 to 1 'coz typically exit codes are
between 0 and 255
* Detect and report drone TCP port bind failure
* In all the following drone errors are reported (including previous
commits) -
* Drone already running (TCP port bind failure)
* Drone executable not found
* Packet.dll not found (Win32 only)
* The following conditions should NOT be reported
* Start/Stop Ostinato
* Stop before 5sec
* Stop after 5sec
2017-09-26 19:59:49 +05:30
Srivats P
a2b349e5b7
Inform user about Drone version incompatibility
2017-09-25 21:26:57 +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
8f97a69220
sign: Refactor StreamStatsTracking methods
...
Start/StopStreamStatsTracking() methods made private helper functions
specific to PcapPort. AbstractPort::setStreamStatsTracking() virtual
function should be implemented by subclasses as required
2016-12-07 18:19:09 +05:30
Srivats P
35c56b9181
sign: Calculate stream stats only if configured
...
Stream Stats Rx and Tx both are calculated only if 'Track Stream Stats'
is configured on the port
2016-12-06 21:41:47 +05:30
Srivats P
028843c55a
sign: Refactor AbstractPort::setStreamSatsTracking
...
Move start/stop stream stats tracking inside setStreamStatsTracking. In
future, maybe convert setStreamStatsTracking to virtual function?
2016-12-06 18:30:26 +05:30
Srivats P
de503d8d96
sign: Fix crash when doing TX on a streamless port
...
Ensure packetListSize_ is non zero to avoid division by zero. Also reset
packetListSize_ to 0 in the constructor - call clearPacketList() to do
this
2016-11-29 18:20:00 +05:30
Srivats P
b622cc8e72
sign: add #define and #include for PRIu64
2016-11-27 13:35:59 +05:30
Srivats P
4f8ee757b3
sign: print Tx stream stats related vars for debug
2016-11-27 12:35:33 +05:30
Srivats P
bf161811b4
sign: Add Stream Stats button to GUI port config
2016-11-21 18:39:55 +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
Srivats P
defdc218bd
sign: fix the tx stream stats calculation and update associated test case
2016-11-15 22:23:55 +05:30
Srivats P
f8575ef101
sign: post tx stream stats collection; testing pending
2016-11-13 19:11:24 +05:30
Srivats P
afcb4126b5
sign: port stream tx stats are updated when TxThread finishes; actual Tx stream stats collection by TxThread is still pending
2016-11-11 21:22:07 +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
1986845bae
sign: remove streamsType and associated code
2016-11-05 19:41:02 +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
31c2cd2dcb
sign: refactored tx stats into a new PcapTxStats class
2016-10-19 18:52:35 +05:30
Srivats P
831b5c0916
Interleaved mode updatePacketList - just clear list if there are no streams. Fixes #195
2016-09-21 20:26:08 +05:30
Srivats P
523258442c
Precalculate mask and subnet for use during emulation rx/tx
2016-09-17 14:34:44 +05:30
Srivats P
f86ce2603d
Bugfix: use default gateway for off subnet destinations in all cases - fixes #196
2016-09-17 12:16:53 +05:30
Srivats P
12351d6304
sign: Refactored PortTransmitter into PcapTransmitter and PcapTxThread classes. Also broke out PacketSequence and Timestamp stuff into their own files. No change in functionality.
2016-09-13 19:05:24 +05:30
Srivats P
eba14bf9a3
sign: fix build break for non Windows platforms
2016-09-06 20:49:07 +05:30
Srivats P
20fa1dcb69
sign: refactor (Pcap)PortTransmitter into a separate file
2016-09-06 18:50:08 +05:30
Srivats P
10559c2a56
sign: stats infra extended for sign stats
2016-08-22 23:26:33 +05:30
Srivats P
fdceca71e8
Resolve for mcast dstIp should return mcast dmac
...
Fixes #192
2016-08-15 21:20:19 +05:30
Srivats P
cd100aa6e0
Drone checks for updated software version at startup
2016-06-07 21:11:38 +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
b6a6b776e1
Open Session - Drone on Windows now sends actual /Device/NPF_XXXX as port names - client sets up the ifX style alias and uses that all places; this was needed for comparison of port names while opening sessions for Drones running on Windows
2016-05-18 18:37:48 +05:30
Srivats P
8b80b4c3ef
Device Emulation (contd.): Checked and decided on a couple of FIXMEs/TODOs
2016-03-24 18:47:43 +05:30
Srivats P
fbb56720ba
Device Emulation (contd.): Renamed Device List and Device Neighbor List fields so that the names are better reflective of what they contain
2016-03-22 20:18:53 +05:30
Srivats P
72bab2737f
Device Emulation (contd.): 'Resolve Neighbors' will now resend ARP/NDP requests for unresolved entries
2016-03-17 20:12:13 +05:30
Srivats P
259dafa3e9
Device Emulation (contd.): Fixed bug where DeviceNeighborList.device_index did not match the correct device in PortDeviceList
2016-03-15 18:15:35 +05:30
Srivats P
7561b09c1e
Device Emulation (contd.): Implemented display of NDP Cache Device Detail; also fixed missing clear of NDP cache on server
2016-03-14 21:16:46 +05:30
Srivats P
db8ad92738
Device Emulation (contd.): Assign a random mac address to a DeviceGroup at alloc time to ensure unique device keys when enumerating devices from device groups
2016-03-07 21:40:48 +05:30
Srivats P
600bdc1946
Device Emulation (contd.): Add check for duplicate/non-existing devices when deviceManager enumerates devices
2016-03-07 18:42:14 +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
f6c852495d
Device Emulation (contd.): resolveNeighbors() now resolves the device gateway also in addition to looking at transmit packet content to figure out which IPs to resolve
2016-01-28 20:01:19 +05:30