d0cddbafb8Added a preflight check method to class StreamBase - this is used by StreamConfigDialog to notify the user of potential problems such as truncated frames
Srivats P.
2010-05-02 15:37:46 +0530
e681e1e226Added new param 'cksumScope' in AbstractProtocol's header and payload cksum methods; this ensures that TCP/UDP checksum is now correct if preceded by a IP 4over4.
Srivats P.
2010-04-24 19:16:39 +0530
ae05037265Added, edited, corrected and completed the AbstractProtocol doxygen documentation
Srivats P.
2010-04-18 21:50:35 +0530
0075a3712bAdded .hgignore
Srivats P.
2010-04-17 19:57:28 +0530
3591227c0bFixed a assert failure when closing the client with the port list expanded
Srivats P.
2010-04-17 18:44:20 +0530
254e7141b0PortStatsFilterDialog - ports can now be inserted at a specific row instead of just being added to the end
Srivats P.
2010-04-17 17:32:46 +0530
7b9c1f92a0Fixed crash in PortStatsFilterDialog while removing selected rows
Srivats P.
2010-04-16 20:11:08 +0530
35f4a8bafbFixes for 64bit compilation and Qt4.6
Srivats P.
2010-04-16 16:45:35 +0530
2e77fd8b94Adding a missing $ in version.pri for unix compilation
v0.1
Srivats P.
2010-04-10 21:15:31 +0530
836ed6e16dProvided option to manually specify revision hash for source packages and tarballs
Srivats P.
2010-04-10 17:04:54 +0530
2af83212a6Due to the switch to mercurial from svn, changed 'svnversion' to 'hg identify -i'
Srivats P.
2010-04-07 21:13:54 +0530
c630d4c291- Added icons to some menu items - Fix: Changed Preferences to inherit privately from Ui::Preferences - Added "About Qt" to Help Menu - Added the PortList/StreamList actions to File Menu - Fix: "New Stream" action is enabled only when a port is selected in the port list - Fix: Ostinato now looks for Drone in the correct path
Srivats P.
2010-04-04 08:15:39 +0000
1cfc771daa- Added Preferences Dialog - Wireshark path can be configured by user in the preferences - Support for portable mode for preferences (.ini in same location as the executable)
Srivats P.
2010-04-03 08:18:29 +0000
6d4be4272b- Removed Copyright notice from client/modeltest.* files which are Trolltech provided and carry a Trolltech copyright notice - Added the GPLv3 license text - COPYING
Srivats P.
2010-03-27 18:44:18 +0000
59c9ae8baa- Added Copyright and License (GPLv3) notifications to all source files viz. *.h, *.cpp, *.proto - Also added a "License" tab to the 'About Ostinato' dialog box.
Srivats P.
2010-03-27 18:38:57 +0000
602be86a42Fixes - Win32: If bindconfig.exe is not present, WinPcapPort::hasExclusiveControl() returns false instead of true (we assume we don't have exclusive control) - Win32: WinPcapPort now looks for bindconfig.exe in the app's dirPath() instead of the current directory
Srivats P.
2010-03-27 14:27:55 +0000
cbf114c29d- Added version/revision info to both client and server UI - Top level 'make clean' and 'make distclean' now do not stop in case of errors - 'make distclean' now removes the object_script.* generated files - Added the Logo to the About dialog and also the application icon
Srivats P.
2010-03-24 15:56:11 +0000
4dc3d2d7f9- Added TODO instruction comments to the sample protocol - Implemented ICMP protocol builder - Added #ifdefs to intcombobox.h to prevent multiple inclusion
Srivats P.
2010-03-17 15:47:56 +0000
f64d901729- Top level Makefile - The default 'all' target no longer has 'qmake' as prerequisite; 'make qmake' shd be done manually on a pristine codebase - eol's changed from dos-style to unix-style - Trivial changes in sample.h/sample.cpp - Implemented ARP protocol
Srivats P.
2010-03-13 05:46:24 +0000
3281eb8f20- Build files cleanup - Top level Makefile now has a 'release' target - pcap_set_direction() is no longer invoked in case of Win32 as older versions of WinPcap do not support this API - MyService::modifyPort() declaration modified to fix the error reported by newer gcc compiler
Srivats P.
2010-03-06 09:20:22 +0000
2581562ec5Fixes - Queued RPC calls would cause crashes due to invalid pointers to request/response and/or controller; this has been fixed - PbRpcController now takes ownership of request and response messages and will delete them when it itself is being deleted - This design mandates that request and response messages for each RPC call have to be allocated on the heap. - The convention for the Closure 'done' call now is to allocate and pass a pointer to the controller object to it which will delete it after use; this requires that controller itself be also allocated on the heap (NOTE: this is just a convention - not mandatory) - All existing RPC calls (in portgroup.cpp) have been changed to follow the above convention - Reordering of queued RPC calls has been fixed - PortManager is now destroyed at exit; because of this fix the per port temporary capture files are auto-removed at exit - WinPcapPort destructor no longer deletes the monitor threads because the parent class PcapPort already does it - Capture does not automatically (and incorrectly) stop after one packet if started immediately after a View Capture operation - User is prompted to stop transmit on a port first if he tries to apply configuration changes on a port in 'transmit' state
Srivats P.
2010-02-17 15:26:42 +0000
b28bcd3055Implemented "exclusive control" for a port using bindconfig (Win32 only). Following changes done for the same -
Srivats P.
2010-02-09 15:21:52 +0000
70ca42fbb3Enhancements - Server now updates the "packet list" after every "apply" rather than before a "start transmit" (if dirty) - this better reflects user's expectation from these operations - Client disables the entire application and changes to a "Busy" cursor when "applying" stream configuration
Srivats P.
2010-01-10 14:40:33 +0000
78a2de040bEnhancements - (Abs/Pcap/WinPcap)Port: Inter SendQueue Timing implemented using a dummy packet length of zero (this is not supported by the winpcap pcap_sendqueue_transmit() but since we don't use that API we are not affected) - (Abs/Pcap/WinPcap)Port: Loop Mode Timing across loop iterations implemented - Added the year 2010 to Copyright notice in the About dialog
Srivats P.
2010-01-10 06:21:39 +0000
c97ae3bc55Fixed a bunch of memory leaks - thanks to the superb Valgrind!
Srivats P.
2010-01-08 15:18:55 +0000
984d65b27d- PortTransmitter on Windows now uses the Win32 QueryPerformanceCounter() instead of QThread::usleep() for more accurate timing - Port Stats limitations are now sent from the server to the client (as it should have always been!)
Srivats P.
2010-01-03 13:57:47 +0000
aac2229403Removed a bunch of gcc4 warnings - mostly "unused param"
Srivats P.
2010-01-03 08:56:16 +0000
395024cc0cFixed Windows compilation issues (introduced while fixing the linux compilation issues!)
Srivats P.
2010-01-02 14:50:19 +0000
be620e0ab6Changes for successful Linux compilation
Srivats P.
2010-01-02 13:49:54 +0000
c5bcc2e0c2Converted all EOLs to unix-style '\n' only
Srivats P.
2009-12-28 10:05:42 +0000
a9e9a7db07Removed vim modelines since we have a project .vimrc now
Srivats P.
2009-12-28 08:34:47 +0000
c7d90ff1ab- All tabs converted to spaces in all files - .vimrc added to reflect settings used in the project
Srivats P.
2009-12-28 08:31:28 +0000
a1ae3e7e6cRefactoring - Major code reorganization of the server code across several classes with fewer 'friends' - New server classes - AbstractPort, PcapPort, WinPcapPort, PortManager - With this reorg classes have more focus than earlier and will be hopefully easy to extend
Srivats P.
2009-12-26 17:33:27 +0000
bb6a9235c3Features - Ostinato Client - will start the server as a child process at startup and terminate it at exit
Srivats P.
2009-11-29 16:32:31 +0000
4c5b8faff7Fixes/Rework - UserScript Protocol reworked. Needs more testing. May need a significant rewrite in the future, but for now this will have to do - therefore it has been marked "EXPERIMENTAL" for now
Srivats P.
2009-11-28 08:35:05 +0000
c9563b50ebFeatures Sample Protocol completed - can be used as a template while implementing a new protocol
Srivats P.
2009-11-16 13:09:20 +0000
3602d24767Fixes - LinkState is now updated in PortWindow as soon as a change is detected; the required minimal refactoring of the Port class usage has been done - Fixed a compiler warning in portgrouplist.cpp
Srivats P.
2009-11-14 15:09:19 +0000
17792b8253Refactoring, optimization et. al. --------------------------------- - StreamConfigDialog: Valid subsequent protocol choices for a particular protocol in the simple protocol selection widget is no longer hardcoded - ProtocolManager is queried for validitity of each pair of possible protocols; signal-slot connections are made accordingly. This refactoring makes it easier to add a protocol to the simple protocol selection widget - ProtocolManager: populates and maintains a database of valid 'neighbour protocols' and implements a method - isValidNeighbour() to query the same for a pair of protocols - AbstractProtocol: new method protocolIdType() introduced to build the above database (in conjunction with the existing method protocolId(ProtocolIdType)); default implementation returns ProtocolIdNone - Protocols which include a valid/supported ProtocolIdType (eth/llc/ip) reimplement protocolIdType() to return the apporpirate ProtocolIdType. These are viz. - combo - eth - llc - snap - ip - Speed optimization while populating streamqueues if the protocolFrameValue/Size() does not vary across packets - AbstractProtocol: new methods to support the above optimization - isProtocolFrameValueVariable() - isProtocolFrameSizeVariable() - isProtocolFramePayloadValueVariable() - isProtocolFramePayloadSizeVariable() (each of the default implementations returns false indicating that the protocol frame value or frame size is fixed and not variable) - Protocols which support variable values/size (list follows) reimplement the above methods appropriately - combo - mac - dot3 - ip4 - tcp - udp - payload - StreamInfo::makePacket() moved to base class as StreamBase::frameValue() - StreamBase: all 'get' accessor functions made 'const' - class ProtocolManager: while registering a protocol, no need to pass the protocol name; ProtocolManager finds it out internally by using the protocol's shortName() method
Srivats P.
2009-11-13 16:00:57 +0000
ade8c119d9Features - Port State (Link/Transmit/Capture) now updated alongwith port stats - On link state change, the port window is not updated - partial changes have been done under #if 0; needs refactoring of Port Class implementation/usage before a signal/slot for the same can be implemented
Srivats P.
2009-11-08 08:20:34 +0000
84c7fe1e06Features - Added support for retrieving the packet capture buffer from server to client (does not work consistently however - needs investigation) - getCaptureBuffer() Rpc signature changed - RPC: Added support in Rpc Channel (client) to queue calls - RPC: Added support for transferring arbitrary binary data from server to client (used to get packet capture files) - Rpc header changed - length is now 4 bytes instead of 2; there is no rsvd field any longer
Srivats P.
2009-11-03 14:02:09 +0000
0094f618d3Protocol Framework related -------------------------- - AbstractProtocol Constructor and Factory function now take an optional (default NULL) "parent" abstract protocol in addition to the stream; this "parent" protocol is non-NULL for protocols which are aggregated in a ComboProtocol - All subclasses of AbstractProtocol modified as per the above interface change - ProtocolManager also modifed as per the above interface change - new data members in AbstractProtocol - prev, next; the AbstractProtocol implementation now uses these members to traverse protocols on the list instead of ProtocolListIterator; this change required for ComboProtocol - ProtocolListIterator updates these new members - prev/next on insert/remove/replace - ComboProtocol and ProtocolListIterator classes made friends of AbstractProtocol - ComboProtocol implemented as a template class (completed) - Dot2LLc implemented as a combo of Dot3Raw and LLC - Dot2Snap implemented as a combo of Dot2Llc and SNAP - VlanStack implemented as a combo of VLAN + VLAN - ProtocolManager now uses the ProtocolId enums rather than hardcoded values
Srivats P.
2009-10-14 15:16:56 +0000
a937112e63Checking in intermediate changes in Stream Config Dialog. Changes to related to handling of protocols after introducing combo protocol
Srivats P.
2009-10-11 06:07:27 +0000
4c2df3c5a7Protocols --------- - all protocols on allocation of a configWidget, also populate it before returning from configWidget() - VLAN TPID override is now correctly saved and restored from/to its widget (vlan.cpp) - Payload protocol returns a minimum frame value of 1 byte size (Hack to avoid crash in stream config dialog when sum of all protocol frame sizes is greater than the frame length - small layout changes in mac widget (mac.ui) - src/dst ip mask changed from 255.255.255.255 to 255.255.255.0 (ip4.proto) - src mac changed from u32 to u64 (mac.proto) - "Combo Protocol" protocol container introduced to define newer protocols as a combination of existing protocols e.g. dot2 = dot3 + llc - THIS IS NOT YET COMPLETE (comboprotocol.h)
Srivats P.
2009-09-23 14:53:26 +0000
1357f495acMajor rewrite of the protocol framework - changes not yet complete
Srivats P.
2009-08-02 14:52:34 +0000
0103696016- AbstractProtocol - new method: fieldFlags() - isCksum, isMeta; Note: isMeta is a flag now not a attrib - fieldData() bit fields are now in lsb not msb - protocolFrameValue() and subclasses changed accordingly - protocolFrameValue() now takes an additional bool param indicating whether the frameValue is being requested for a checksum calculation; if so fields which are checksum fields are assumed to be zero and their value is not fetched to prevent infinite recursion - Other Protocols - mac: srcMac/dstMac modes is now working - vlan: implemented VLAN protocol - ip4: src/dst Addr modes is now working - udp/tcp: checksum done - Basic testing done for MAC, VLAN, IPv4, UDP and TCP protocols - sample protocol: .cpp/.h added to repos - need to be made compilable - StreamConfigDialog - Redesigned the protocol selection tab to accomodate "Advanced Protocol Selection" - L2 Tab config widgets are now in 2 columns - Packet Tree View is no longer collapsed if selected protocols don't change
Srivats P.
2009-05-24 14:54:11 +0000
2ec7fb30c2Protocol Framework basic code in place now. Cleanup pending.
Srivats P.
2009-05-10 06:27:17 +0000
2d856012cbNew Protocol Framework - initial checkin; not yet complete
Srivats P.
2009-04-27 16:51:44 +0000
238f332ac4- About Dialog added - Stream Dialog now remembers the "selected" tabs across close and reopen - Other trivial UI enhancements
Srivats P.
2009-04-05 07:19:37 +0000
53bcc077da- Implemented the "Stop" and "Goto Stream" per stream "nextWhat" options (Goto can only go to first stream for now - not any arbitrary stream) - StreamListView now has a delegate to display a combobox for "nextWhat" and a checkbox for "status" - StreamListView now has reasonable default widths for its columns
Srivats P.
2009-03-10 16:48:03 +0000
f13b0915d5Packet Transmit Changes - not using pcap_sendqueue_transmit() any longer
Srivats P.
2009-02-22 07:53:14 +0000
017cb75ae5- Packet Transmission is now a separate thread to allow for event processing - Packet Transmission rate (IPG) is done - need to test. IBG is still pending - Per port there are two pcap_t handles - one for Rx and one for Tx: since PCAP does not capture loopback packets, transmission by OST happens on Rx Hdl so that they are recieved on the Tx Hdl - pcap_loop() changed to pcap_dispatch() to be able to work in PCAP/Linux - forgot exactly why :-) - Removed NIC stats - Implemented PortStatsFilterDialog ordering of ports - PortStatsWindow - Tooltip on Port column dispays stats limitations
Srivats P.
2009-02-12 17:07:19 +0000
0c70668e56Split the PCAP callback into 2 - one for Rx and one for Tx using pcap_setdirection()
Srivats P.
2009-02-02 10:08:57 +0000
9ac311f80fFixing the path that was unix specific to work for both unix and win32
Srivats P.
2009-01-17 11:37:35 +0000
ab007ce0a5Checking in pcapextra.h and pcapextra.cpp that got left out in the last commit
Srivats P.
2009-01-17 10:52:00 +0000
d9aa2e43a0Changes for successful compilation in Linux. PCAP/Winpcap functions changed to use those which are common on both PCAP and WinPCAP. Some additional WinPCAP only functions (such as the pcap_sendqueue_xxx) which we intend to use have been added into pcapextra.c which will be used in case of Linux
Srivats P.
2009-01-17 10:13:46 +0000
bfc0e8d4c8Tcp/Udp checksums done. Frame Length Modes done. Data Pattern Modes done. Some minor fixes/enhancements in streamconfigdialog. Added a "Edit Stream" action in StreamList context menu
Srivats P.
2008-10-05 17:07:33 +0000
62a82dfb80Stream creation (various modes etc.) done except for Rate Control. PortStats done - need to find solution for txRates
Srivats P.
2008-09-28 18:01:52 +0000
4cf80d4ee4Demo code for stats being checked in
Srivats P.
2008-09-14 12:03:53 +0000
9e7b323973Rewrote DumpView as a subclass of QAbstractItemView (as it should be). Correspondingly reworked PacketModel to work with DumpView. Added Dot3Protocol and PayloadProtocol to Stream class
Srivats P.
2008-08-30 08:49:08 +0000
c7f4c1dec9- StreamModel no longer a friend of Stream - PacketModel refactored by moving protocol specific stuff into Stream and xxxProtocol classes
Srivats P.
2008-08-24 04:39:08 +0000
f220482876Added Google Protocol Buffers as the serialization format between client and server. Initial Checkin. PB related code not yet complete
Srivats P.
2008-08-09 03:22:13 +0000
a009fcffdfDeleted unused files
Srivats P.
2008-06-14 07:40:41 +0000
a480be5a23Finished basic PacketModel to feed actual data into PacketView TODO: PacketModel to feed data into DumpView
Srivats P.
2008-06-14 06:35:17 +0000
03ab9c4349- Fixed some trivial compilation problems with Drone - Putting in the new PacketTreeView code (still not complete)
Srivats P.
2008-05-25 11:53:49 +0000