Commit Graph

10 Commits

Author SHA1 Message Date
Srivats P
58d4ceb9c7 Ensure setFieldData return value for all protocols
Some protocol fields were not setting 'isOk' before returning it
2021-12-11 12:56:23 +05:30
Srivats P
4c6d8f35d6 Verify and fix Ip6Address type field edit 2021-12-08 21:36:39 +05:30
Srivats P
a498dbf21a Fix incorrect UDP/ICMP checksums
For UDP encaps like VxLAN or Geneve, which can contain IP as
payload, the UDP checksum was incorrect because when summing
UDP payload (i.e. IP), we skipped the IPv4 checksum field,
which should not be skipped in this case.

Similar issue, for ICMP with IP as payload, ICMP checksum was
incorrect.

Essentially, any protocol which checksums over its payload and
the payload contains protocols with checksum fields.
2021-09-04 18:16:40 +05:30
Srivats P
8f510635a9 Use UInt128 for IPv6 address modes (inc, dec, rnd)
Fixes #283
2020-03-27 21:15:49 +05:30
Srivats P
64d4b38f41 Add protocol error checks to preflight check
Also commented out stream transmit duration check that was causing false
positives
2019-06-05 11:39:09 +05:30
Srivats P
488a2ea730 Bugfix: Fix incorrect cksums
Presence of IPv6 Extension Headers was causing incorrect TCP/UDP/ICMP
cksums. Verified that with these changes, cksums are correct for all
combinations of L3 and L4 headers with/without options/extHdrs

Fixes #271
2018-09-13 12:32:36 +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.
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.
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