Opened 10 years ago

Last modified 10 years ago

#449 assigned enhancement

support for skipping checksums for particular protocols

Reported by: nobletrout@… Owned by: Aaron Turner
Priority: low Milestone: 4.0.0
Component: tcprewrite Version: 3.4.4
Keywords: tcprewrite icmp checksum Cc:
Operating System: OS X Add to FAQ?: no
Hardware: All
Output of tcpreplay -V: tcpreplay version: 3.4.4 (build 2450) Copyright 2000-2010 by Aaron Turner <aturner at synfin dot net> Cache file supported: 04 Compiled against libdnet: 1.12 Compiled against libpcap: 1.1.1 64 bit packet counters: enabled Verbose printing via tcpdump: enabled Packet editing: disabled Fragroute engine: enabled Injection method: bpf send()



This enhancement would allow the user to specify which checksums they would like to correct in tcprewrite. It would ideally operate as a command line operator [ --fixtcp --fixicmp --fixudp].

Use Case

I did not expect tcprewrite to correct the icmp checksum, all the help available states its IP/UDP/TCP only.

I'm currently trying to reply a pcap where the icmp payload is incorrect and wish to leave it as such. I've remarked out the code in checksum.c to temporarily give me this feature, but i have to imagine i'm not the only one that needs this.

Attachments (2)

orig_tcprewrite.pcap (27.8 KB) - added by chuck 10 years ago.
pings_single_host_bad_csums.pcap (27.8 KB) - added by chuck 10 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 10 years ago by Aaron Turner

(In [2530]) add --nofixcsum to disable all checksumming refs #449 will consider per-protocol configuration in 4.x

comment:2 Changed 10 years ago by Aaron Turner

Output of tcpreplay -V: modified (diff)
Status: newassigned

Untested change, and not certain if that will meet your needs since you didn't provide your command line arguments per the wiki directions, so I don't know what you're trying to do.

I'll be happy to provide you a tarball of the code so you don't need to check out from subversion and get AutoGen? working properly if you'd like.

comment:3 Changed 10 years ago by chuck

tcprewrite --pnat= --infile=pings_single_host_bad_csums.pcap --outfile=orig_tcprewrite.pcap

compare packet #23 in both captures. You'll see the icmp checksum gets corrected in orig_tcprewrite.pcap . I want to preserve the bad icmp checksum, but have the new correct IP checksum. Make sense?

Changed 10 years ago by chuck

Attachment: orig_tcprewrite.pcap added

Changed 10 years ago by chuck

comment:4 Changed 10 years ago by Aaron Turner

Milestone: Future Release4.0.0

ok, makes sense. glad to hear you were able to hack the code with a work around.

Note: See TracTickets for help on using tickets.