Commit Graph

201 Commits

Author SHA1 Message Date
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
803242db38 Device Emulation (contd.): Use portId as part of the default IP address assigned to a deviceGroup 2016-03-19 18:17:50 +05:30
Srivats P
c3fe9b0334 Device Emulation (contd.): Inform user that src/dst mac resolve requires a corresponding device 2016-03-18 19:23:26 +05:30
Srivats P
476bcd850a Bugfix: Preflight check failure strings should not be repeated for each frame in the stream that fails 2016-03-17 20:53:48 +05:30
Srivats P
e7571b2022 Device Emulation (contd.): Add 'resolve' mode for src/dst mac address for GUI configuration of stream 2016-03-08 20:51:02 +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
586a177332 Device Emulation (contd.): Change SpinBoxDelegate for our needs and relicense under GPLv3; use SpinBoxDelegate for the Vlan Table validation 2016-03-03 18:23:25 +05:30
Srivats P
98c8149fbf Device Emulation (contd.): Added SpinBox Delegate (Qt Example) - unmodified code 2016-03-02 22:32:21 +05:30
Srivats P
0ef0c6cfc0 Device Emulation (contd.): Added a IntEdit class and used in DeviceGroup Dialog 2016-03-02 22:14:14 +05:30
Srivats P
2d8510cd3a Device Emulation (contd.): Fix build break due to case typo 2016-03-02 21:41:56 +05:30
Srivats P
ff757d59c6 Device Emulation (contd.): Add default values for IPv6 fields, update IPv6 gateway if addr/pfxlen changes; define and use class Ip6Edit 2016-03-02 06:13:56 +05:30
Srivats P
0edfee8cdf Device Emulation (contd.): Add default values for IPv4 address/gateway, update gateway as address/pfxlen are edited; define and use a Ip4Edit class 2016-03-01 18:48:35 +05:30
Srivats P
9619439e6a Device Emulation (contd.): Use a default Mac address as per RFC 4814; define and use new MacEdit class 2016-02-29 20:12:02 +05:30
Srivats P
a4a654fb02 Device Emulation (contd.): Implemented load/store for the DeviceGroupDialog and supporting code - incomplete 2016-02-25 19:03:00 +05:30
Srivats P
c569328bb3 Device Emulation (contd.): Added DeviceGroupModel on the GUI client 2016-02-12 19:10:19 +05:30
Srivats P
e3a3a0cf1f Device Emulation (contd.): Fix frames not being truncated (introduced by recent changes in StreamBase::frameValue()); add test case for the same and add checksum/error check to pktlentest(s) 2016-01-27 20:39:54 +05:30
Srivats P
754a9ac20e Merge branch 'master' into emul 2016-01-27 18:46:07 +05:30
Srivats P
ad866e3025 Bugfix: Fix incorrect IPv4 pseudo-header checksum calculation for a stream with incrementing/decrementing packet length (regression bug caused by variable fields feature introduced in 0.7) 2016-01-27 18:26:49 +05:30
Srivats P
f1ff9e2616 Device Emulation (contd.) - StreamBase::frameValue() now returns truncated packet content and length instead of bailing out if the passed in buffer size is less than the packet length. This is useful for some of the device emulation code which needs packet content only uptil the IP header but not beyond, so we don't need to unnecessarily create the entire packet with payload for these cases 2016-01-15 09:37:43 +05:30
Srivats P
eff603304e Device Emulation (contd.): Receive, parse IPv6 Neigh Advt and update NDP Table 2016-01-06 18:10:28 +05:30
Srivats P
d9be523827 Device Emulation (contd.) - Implemented sending of IPv6 Neighbor Solicitation packets for IPv6 resolution 2016-01-01 20:17:54 +05:30
Srivats P
0b573d572e Device Emulation (contd.) - added intelligence for single or dual ip stack; fixed pktBuf memory leak 2016-01-01 11:59:31 +05:30
Srivats P
aaf6dbcbf2 Device Emulation (contd.) - Implemented IPv6 device creation and deletion 2015-12-31 20:17:56 +05:30
Srivats P
12d17ef6de Feature (contd.): Device Emulation - added/updated IPv6 fields in emulproto 2015-12-24 19:00:32 +05:30
Srivats P
9cd92c47ab Pull Cleanup: Minor changes and cleanup after merging the STP protocol builder contribution - removal of compilation errors, unncessary code, trailing whitespace 2015-12-17 21:15:47 +05:30
Srivats P
c3c1ca84da Merge branch 'plvision' of https://github.com/tpetriv/ostinato 2015-12-17 18:10:23 +05:30
Srivats P
71d04b63bc Feature (contd.): Device Emulation - refactored and moved EncapEmulation as a native field of DeviceGroup instead of a extension - now the device_count comment of "per encap" makes more sense with encap at the same level as device_count 2015-12-16 20:48:17 +05:30
Srivats P
147469beee Bugfix: Don't use c_str for protobuf type bytes as an intermediate 0x00 is interpreted as terminator; fixes #170 2015-12-11 20:57:48 +05:30
Srivats P
c022290da1 Merge branch 'master' of https://github.com/pstavirs/ostinato into emul
Conflicts:
	server/pcapport.cpp
2015-12-01 21:00:41 +05:30
Srivats P
bed034a08b Merge branch 'master' into emul 2015-12-01 19:16:24 +05:30
Srivats P
cad62c1fd7 Feature (contd.): Device Emulatiom - converted emulation tests to use the py.test framework 2015-11-29 12:52:08 +05:30
Taras Petriv
5a51e13ad9 Some changes 2015-11-24 14:33:25 +02:00
Taras Petriv
f5c4648bb1 Adding STP protocol support 2015-11-24 14:31:17 +02:00
Srivats P
f8d5cbd252 Bugfix: Fixed frameVariableCount() for the stream when it doesn't contain the payload protocol and is configured to generate increment/decrement/random length packets
Fixes #168
2015-11-22 20:03:24 +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
2cad79b87e Bugfix: A calculated UDP checksum of 0 should be set as 0xFFFF in the frame as per RFC 768. A checksum value of 0 in the frame is "special" and indicates that no checksum was calculated and hence receiver should not verify the same. This special case seems to be only for UDP, not TCP though.
Fixes #160
2015-10-07 20:40:31 +05:30
Srivats P
fcfcfe6887 Feature (contd.): Device Emulation - Removed 'mode' from both vlan and device; will reintroduce or replace with something else when needed 2015-10-03 20:15:20 +05:30
Srivats P
7f224f61cd Bugfix: Variable fields related code is now generated correctly when saving a stream as a python script
Fixes #158
2015-10-02 13:49:54 +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.
24d341cce3 Bugfix(collateral): Fixed TCP/UDP checksum on big-endian platforms; collateral of changes made in IPv4/IPv6 pseudo header cksum for variable fields feature 2015-06-06 15:28:16 +05:30
Srivats P.
d677b09491 Fixed gcc4 warnings 2015-06-05 20:18:41 +05:30
Srivats P.
384fd6e172 Feature (contd.): Variable Fields - fixed errors and warnings reported by gcc4 in the code added for this feature 2015-06-01 19:05:43 +05:30
Srivats P.
a8069bbb39 Feature (contd.): Variable Fields - bumped up file format revision number because of this new feature 2015-05-31 21:38:07 +05:30
Srivats P.
022fac534c Feature (contd.): Variable Fields - fixed 2nd protocol of combo protocols not being listed and offset/mask not being calculated correctly for them via the GUI 2015-05-31 20:47:25 +05:30
Srivats P.
6bb64a3b26 Feature (contd.): Variable Fields - renamed variable_fields as singular; this makes it consistent with other repeated variables in protocol.proto and in any case the C++/Python generated code "sounds" better with a repeated field named in its singular form, rather than plural 2015-05-31 20:14:32 +05:30
Srivats P.
641a4f3c89 Feature (contd.): Variable Fields - defined a template function varyCounter to avoid duplicating code for different counter sizes 2015-05-31 19:46:16 +05:30
Srivats P.
77f5b124e7 Feature (contd.): Variable Fields - fixed the code to use 'step' while varying fields which was missed out earlier. Updated the test suite and made sure all test cases pass 2015-05-31 18:02:06 +05:30
Srivats P.
60c47c34a1 Feature (contd.): Variable Fields - AbstractProtocol now caches fieldFrameBitOffset unless the subclass says not to 2015-05-27 22:41:31 +05:30
Srivats P.
4f2abcb789 Feature (contd.): Variable Fields - AbstractProtocol now caches the frameVariableCount (of variableFields) 2015-05-27 21:28:40 +05:30
Srivats P.
7a1f791a37 Feature (contd.): Variable Fields - removed protocol subclass implementations of isProtocolFrameValueVariable() since the updated implementation in the base abstract class is now sufficient. Updated subclass implementations of protocolFrameValueVariableCount() to query the base class and use the return value in its calculation 2015-05-27 20:36:49 +05:30
Srivats P.
df24cf8b15 Feature: Variable Fields - any field of any protocol can now be varied by specifying it as a generic 8/16/32 bit field at a specified offset (relative to the protocol frame value) with a certain mask and a (initial) value alongwith count and step; this is working code - but incomplete. Bunch of FIXME/TODOs and testing pending 2015-05-26 21:43:37 +05:30
Srivats P.
7dc7a840f1 Merging heads 2015-05-02 11:46:05 +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.
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
Srivats P.
0c861201b3 Save streams as Python Script: The generated script now checks for Ctrl-C while waiting for transmit to stop, so that cleanup can be done 2015-04-09 21:44:54 +05:30
Srivats P.
e3e61b7320 Merge 2015-03-01 21:36:54 +05:30
Srivats P.
10d921adfc Export streams as a python script for use with python-ostinato 2015-03-01 21:36:13 +05:30
Srivats P.
c0f6a71123 Fix infinite loop(s) when QT_NO_DEBUG_OUTPUT is defined
Fixes issue 146
2015-02-27 20:29:38 +05:30
Srivats P.
f4f5214b7a If no L4 protocol follows IPv6, set the IPv6 Next-Header field to 0x3B (IPv6-No-Next-Header) instead of leaving it at 0 which is interpreted as IPv6-Hop-By-Hop by the recipient and subsequent failure in parsing the frame 2015-01-13 18:51:21 +05:30
Srivats P.
42f716e693 When reading PDML files, skip all XML tokens at the start of the file till you reach the first element and then check whether it is 'pdml'
Fixes issue 132
2014-11-08 10:17:57 +05:30
Srivats P.
470d390658 fix gcc warnings 2014-07-06 18:36:01 +05:30
Srivats P.
9955d31b77 Added RPC for version compatibility check between client and server; both GUI and DroneProxy call this as the first RPC before proceeding ahead; if client is inompatible, drone additionally closes the connection; drone won't handle any RPCs untiil version check is performed and client is found compatible; fixed DroneProxy bug which did not allow to connect again after disconnect; fixed RPC bug which failed to detect unsupported method id; RPC-server now returns RPC error in case of failure; added a bunch of RPC tests for version compat 2014-07-06 11:19:22 +05:30
Srivats P.
048777c064 IGMPv3/MLDv2 Query widget now displays the Group Address field
Fixes issue 107
2014-06-30 20:25:39 +05:30
Srivats P.
1ea635bcfb Renamed RPCs start/stopTx as start/stopTransmit 2014-06-30 19:49:17 +05:30
Srivats P.
35472a6ac7 CLI: Initial Commit for Python Bindings 2014-06-03 07:14:54 +05:30
Srivats P.
0ebff976d8 Fixed build warnings 2014-05-22 20:24:04 +05:30
Srivats P.
8a74987fa5 NOX: Doxygen-style documentation for PdmlProtocol. Added SamplePdmlProtocol with TODO comments on the same lines as SampleProtocol 2014-05-09 07:21:42 +05:30
Srivats P.
5ee4786008 NOX: moved uintToHexStr() definition from AbstractProtocol to AbstractProtocolConfigForm because it is supposed to be used by config widgets in their load methods. For Mac/Arp protocols which were using it to display mac address as text a new macro uintToMacStr() was added and used 2014-05-02 04:52:00 +05:30
Srivats P.
40837fae40 NOX - Extracted each xxxPdmlProtocol from pdmlprotocols.h/.cpp into its own .h/.cpp. It is now more evident that while implementing a new protocol, one has to implement the xxxConfigFrom and xxxPdmlProtocol as well. 2014-05-01 21:15:41 +05:30
Srivats P.
6193db495d NOX: SampleProtocol - separated protocol and widget as per new framework 2014-04-25 07:52:55 +05:30
Srivats P.
7d3caad43c NOX: UserScript - separated protocol and widget as per new framework 2014-04-25 06:58:38 +05:30
Srivats P.
88ec853d09 NOX: HexDumpProtocol - separated protocol and widget as per new framework 2014-04-22 06:03:40 +05:30
Srivats P.
bacee5dd18 NOX: TextProtocol - Separated protocol and widget as per new framework 2014-04-19 12:36:14 +05:30
Srivats P.
30c70a73e4 NOX: ICMP - Separated protocol and widget as per new framework 2014-04-17 07:10:13 +05:30
Srivats P.
bbe645725a NOX: Udp - separated protocol and widget as per new framework 2014-04-15 05:31:28 +05:30
Srivats P.
481e517fa6 NOX: GMP, IGMP, MLD - Separated protocol and widget as per new framework 2014-04-10 18:24:30 +05:30
Srivats P.
21b606e9ea NOX: TCP - Separated protocol and widget as per new framework 2014-04-08 05:52:27 +05:30
Srivats P.
3ba67e9ee3 NOX: IPv4over6, IPv6over4, IPv6over6 - separated protocol and widget as per new framework 2014-04-05 14:59:12 +05:30
Srivats P.
710b295d74 NOX: IPv4over4 - Separated protocol and widget as per new framework 2014-04-05 05:43:26 +05:30
Srivats P.
d818b90a8f NOX: IPv4 - Separated protocol and widget as per new framework 2014-04-03 07:23:04 +05:30
Srivats P.
e6339e3d09 NOX: Arp - separated protocol and widget as per new framework 2014-03-28 05:52:15 +05:30
Srivats P.
24fbac9c5a NOX: Dot2Snap - Separated protocol and widget as per new framework 2014-03-27 18:21:47 +05:30
Srivats P.
38c17d5e5b NOX: SNAP - Separated protocl and widget as per new framework 2014-03-27 09:56:57 +05:30
Srivats P.
4608edf771 NOX: Dot2Llc - Separated protocol and widget as per new framework 2014-03-27 06:39:08 +05:30
Srivats P.
a8dcc42d4c NOX: LLC - Separated protocol and widget as per new framework 2014-03-25 06:13:23 +05:30
Srivats P.
70937bd4a4 NOX: ComboProtocol - Separated protocol and widget as per framework; VlanStack - separated protocol and widget using the refactored ComboProtocol 2014-03-25 05:32:27 +05:30
Srivats P.
e1cfd39786 NOX: SVLAN - Separated protocol and widget as per new framework 2014-03-20 06:35:40 +05:30
Srivats P.
a97a7d9511 NOX: VLAN - Separated protocol and widget as per new framework + cosmetic layout change in the widget 2014-03-20 06:03:55 +05:30
Srivats P.
e6fa745b81 NOX: 802.3 - Separated protocol and widget as per new framework 2014-03-14 07:03:44 +05:30
Srivats P.
bdc1252b95 NOX: IPv6 - Separated protocol and widget as per new framework 2014-03-14 06:16:46 +05:30
Srivats P.
f39031d663 NOX: Payload - Separated protocol and widget as per new framework 2014-03-13 07:27:29 +05:30
Srivats P.
c0f009c44a NOX: Eth2 - Separated protocol and widget as per new framework 2014-03-13 06:29:56 +05:30
Srivats P.
37ca28ca94 NOX: Mac - Separated protocol and widget as per new framework 2014-03-13 06:08:43 +05:30
Srivats P.
cabd6ad096 NOX: Framework to separate the protocol widgets from the protocol. Changes in client to use the new framework. Changes may not compile 2014-03-11 06:16:41 +05:30
Srivats P.
925697dfcc NOX: Removed GUI stuff from the drone app. Changes may not compile 2014-03-03 20:30:42 +05:30