Commit Graph

  • d0cddbafb8 Added 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
  • e681e1e226 Added 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
  • ae05037265 Added, edited, corrected and completed the AbstractProtocol doxygen documentation Srivats P. 2010-04-18 21:50:35 +0530
  • 0075a3712b Added .hgignore Srivats P. 2010-04-17 19:57:28 +0530
  • 3591227c0b Fixed a assert failure when closing the client with the port list expanded Srivats P. 2010-04-17 18:44:20 +0530
  • 254e7141b0 PortStatsFilterDialog - 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
  • 7b9c1f92a0 Fixed crash in PortStatsFilterDialog while removing selected rows Srivats P. 2010-04-16 20:11:08 +0530
  • 35f4a8bafb Fixes for 64bit compilation and Qt4.6 Srivats P. 2010-04-16 16:45:35 +0530
  • 2e77fd8b94 Adding a missing $ in version.pri for unix compilation v0.1 Srivats P. 2010-04-10 21:15:31 +0530
  • 836ed6e16d Provided option to manually specify revision hash for source packages and tarballs Srivats P. 2010-04-10 17:04:54 +0530
  • 2af83212a6 Due 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
  • 602be86a42 Fixes - 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
  • 2581562ec5 Fixes - 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
  • b28bcd3055 Implemented "exclusive control" for a port using bindconfig (Win32 only). Following changes done for the same - Srivats P. 2010-02-09 15:21:52 +0000
  • 70ca42fbb3 Enhancements - 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
  • 78a2de040b Enhancements - (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
  • c97ae3bc55 Fixed 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
  • aac2229403 Removed a bunch of gcc4 warnings - mostly "unused param" Srivats P. 2010-01-03 08:56:16 +0000
  • 395024cc0c Fixed Windows compilation issues (introduced while fixing the linux compilation issues!) Srivats P. 2010-01-02 14:50:19 +0000
  • be620e0ab6 Changes for successful Linux compilation Srivats P. 2010-01-02 13:49:54 +0000
  • c5bcc2e0c2 Converted all EOLs to unix-style '\n' only Srivats P. 2009-12-28 10:05:42 +0000
  • a9e9a7db07 Removed 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
  • a1ae3e7e6c Refactoring - 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
  • bb6a9235c3 Features - 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
  • 4c5b8faff7 Fixes/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
  • ebc0403fde Features UserScript Protocol "first cut" checked-in. Needs rework. Srivats P. 2009-11-23 08:08:22 +0000
  • c9563b50eb Features Sample Protocol completed - can be used as a template while implementing a new protocol Srivats P. 2009-11-16 13:09:20 +0000
  • 3602d24767 Fixes - 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
  • 17792b8253 Refactoring, 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
  • ade8c119d9 Features - 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
  • 84c7fe1e06 Features - 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
  • 0094f618d3 Protocol 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
  • a937112e63 Checking 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
  • 4c2df3c5a7 Protocols --------- - 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
  • 1357f495ac Major 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
  • 2ec7fb30c2 Protocol Framework basic code in place now. Cleanup pending. Srivats P. 2009-05-10 06:27:17 +0000
  • 2d856012cb New 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
  • f13b0915d5 Packet 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
  • 0c70668e56 Split the PCAP callback into 2 - one for Rx and one for Tx using pcap_setdirection() Srivats P. 2009-02-02 10:08:57 +0000
  • 9ac311f80f Fixing the path that was unix specific to work for both unix and win32 Srivats P. 2009-01-17 11:37:35 +0000
  • ab007ce0a5 Checking in pcapextra.h and pcapextra.cpp that got left out in the last commit Srivats P. 2009-01-17 10:52:00 +0000
  • d9aa2e43a0 Changes 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
  • bfc0e8d4c8 Tcp/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
  • 62a82dfb80 Stream 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
  • 4cf80d4ee4 Demo code for stats being checked in Srivats P. 2008-09-14 12:03:53 +0000
  • 9e7b323973 Rewrote 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
  • f220482876 Added 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
  • a009fcffdf Deleted unused files Srivats P. 2008-06-14 07:40:41 +0000
  • a480be5a23 Finished 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
  • 8251383351 - added PortStatsFilter - added PacketDump (test code) - added PacketTree (not complete) - Protocol stuff (not complete) Srivats P. 2008-05-25 11:30:30 +0000
  • 7e8d8308e3 Initial Import Srivats P. 2008-05-03 14:37:10 +0000