gw-cs-sd / sd-2017-team-ddos

sd-2017-team-ddos created by GitHub Classroom
0 stars 0 forks source link

Week 12: TCP connection replay, part 2 #2

Open mrdude opened 7 years ago

mrdude commented 7 years ago

@twood02

My goal for this week was to figure out how to implement packet checksums and finish my TCP connection replay feature.

I spent most of the week fiddling around with checksumming packets in a throwaway git branch. I couldn't get hardware checksum offload working initially, so I started working on a software implementation. I used DPDK's checksumming methods at first, but the documentation claimed that they don't support TCP options; I want to be able to support TCP options, so I started writing my own implementations of DPDK's checksumming functions.

After I had rewritten 80% of DPDK's checksum functions, I found a post on the DPDK mailing list that showed me how to turn on the flag for hardware checksumming. Once I committed that, I gave up on my software implementation. I may (depending on time constraints) go back and finish it.

The next two important commits (54a97a and b5a9ca) in my throwaway branch just finish the code for the TCP handshake and sequence number patching.

TODO:

twood02 commented 7 years ago

Talk to Neel ASAP to get the 3rd node setup before he leaves for thanksgiving. Alternatively, you can use the CloudLab testbed.

For the TCP checksum enabling is it correct that all you need to do is create a tx_conf variable and pass it to the function? I would expect that you'd need to set the flags to something other than 0. https://github.com/mrdude/openNetVM/commit/6ce4cec4cf5adab435805924e4cbe165c9b03986#diff-440c8d0fcfa51fde10327b87318448d2L263