Commit Graph

9 Commits

Author SHA1 Message Date
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
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
4924d7fe60 Bugfix: Encode hexdump and IPv4 options correctly
Using QString().fromStdString() caused conversion to Unicode via utf8
instead of using the plain binary data
2018-09-13 12:29:13 +05:30
Srivats P
c2f36c5cb3 IPv4 now supports options - configured as a hex string for now; fixes #120 2016-10-27 23:51:55 +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.
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.
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