-
Notifications
You must be signed in to change notification settings - Fork 733
TcpReassembly flowKey hash5Tuple fnvHash collision fix #2043
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
e10839a to
34b0323
Compare
|
@yvyw thanks for working on this PR! |
Should fix the error: "Error occurred - packet doesn't match either side of the connection!!"
34b0323 to
d25bacd
Compare
|
Hi, @seladb! Thank you for PcapPlusPlus, it's very useful! The changes are intended to replace flowKey with the real connection object in order to eliminate collisions. Backward compatibility is not preserved because the About breaking into a smaller PR's. I think I can, but it will take time. Also, PRs would look strange without knowing the final purpose. Maybe it would be better to leave it as it is or split it into commits without creating PRs. What do you think? Regarding CI. The project passes the tests on my machine. I will fix the errors as they appear in CI. |
|
@yvyw replacing Sicne it's used in TCP Reassembly it should support high throughput and scale, and I think this implementation might cause degradation of both. Please let me know what you think. |
|
@seladb, your concerns are valid. Here's what I think: On calculations slowdown. On memory consumption. |
I have thought about doing this, unfortunately |
I agree. I think this is premature optimization according to Knuth, and it's better to just wait for C++17. In the comment, I wanted to say that there is some more room for memory optimization if it's required. I think projects with extremely high loads will encounter problems anyway and end up tailoring their code with a profiler. |
Fix #636. Should fix the error "Error occurred - packet doesn't match either side of the connection!!", if it is caused by hash collision.