]> git.ipfire.org Git - thirdparty/snort3.git/commit
Pull request #4240: stream_tcp: Refactor tcp overlap, segment list and reassembly...
authorDavis McPherson -X (davmcphe - XORIANT CORPORATION at Cisco) <davmcphe@cisco.com>
Tue, 23 Jul 2024 17:56:56 +0000 (17:56 +0000)
committerSteven Baigal (sbaigal) <sbaigal@cisco.com>
Tue, 23 Jul 2024 17:56:56 +0000 (17:56 +0000)
commit50ae174565b0600860a93e72cc2f5d6a4413968b
tree9844fabe0edc65d4bda5dcf4b4b1f84413e88906
parentdb8df0dfef067166040f82487b736d239e9e77a4
Pull request #4240: stream_tcp: Refactor tcp overlap, segment list and reassembly classes to improve class structure and relationships

Merge in SNORT/snort3 from ~DAVMCPHE/snort3:reassembly_rewrite_u2.0 to master

Squashed commit of the following:

commit 6e4456f7895584520a5e6bb2d3eae0458b33d516
Author: davis mcpherson <davmcphe@cisco.com>
Date:   Thu Feb 22 11:44:08 2024 -0500

    stream_tcp: initial refactor to move alert functions to their own class

    stream_tcp: refactor to move tcp overlap processing out of reassembly class

    stream_tcp: merge TcpStreamSession into TcpSession

    stream_tcp: refactor segment nodes to implement reassembly cursor and
    eliminate tracking variables such as c_seq/c_len, etc. add helper functions
    to track state

    stream_tcp: improve variable and function names for overlap processing

    stream_tcp: refactor TcpReassembler into a virtual base class and subclasses for each mode: ignore, IPS and IDS

    stream: refactor paf logic into a c++ class

    stream_tcp: integrate and streamline setting of flush policy and splitter
                improve tracking of rcv_nxt state

    stream_tcp: delete lws_init, it was redundant with tcp_init; delete FIXITs that are no longer relevant
    stream_tcp: updates from PR review comments
50 files changed:
src/flow/flow_cache.cc
src/flow/flow_control.cc
src/service_inspectors/dce_rpc/dce_http_proxy.cc
src/service_inspectors/dce_rpc/dce_http_server.cc
src/stream/CMakeLists.txt
src/stream/pafng.cc [new file with mode: 0644]
src/stream/pafng.h [new file with mode: 0644]
src/stream/stream.cc
src/stream/stream.h
src/stream/tcp/CMakeLists.txt
src/stream/tcp/ips_stream_reassemble.cc
src/stream/tcp/segment_overlap_editor.cc [deleted file]
src/stream/tcp/segment_overlap_editor.h [deleted file]
src/stream/tcp/stream_tcp.cc
src/stream/tcp/tcp_alerts.cc [new file with mode: 0644]
src/stream/tcp/tcp_alerts.h [new file with mode: 0644]
src/stream/tcp/tcp_defs.h
src/stream/tcp/tcp_normalizer.cc
src/stream/tcp/tcp_normalizer.h
src/stream/tcp/tcp_normalizers.cc
src/stream/tcp/tcp_normalizers.h
src/stream/tcp/tcp_overlap_resolver.cc [new file with mode: 0644]
src/stream/tcp/tcp_overlap_resolver.h [new file with mode: 0644]
src/stream/tcp/tcp_reassembler.cc
src/stream/tcp/tcp_reassembler.h
src/stream/tcp/tcp_reassembler_ids.cc [new file with mode: 0644]
src/stream/tcp/tcp_reassembler_ids.h [new file with mode: 0644]
src/stream/tcp/tcp_reassembler_ips.cc [new file with mode: 0644]
src/stream/tcp/tcp_reassembler_ips.h [new file with mode: 0644]
src/stream/tcp/tcp_reassemblers.cc [deleted file]
src/stream/tcp/tcp_reassemblers.h [deleted file]
src/stream/tcp/tcp_reassembly_segments.cc [new file with mode: 0644]
src/stream/tcp/tcp_reassembly_segments.h [new file with mode: 0644]
src/stream/tcp/tcp_segment_descriptor.cc
src/stream/tcp/tcp_segment_descriptor.h
src/stream/tcp/tcp_segment_node.cc
src/stream/tcp/tcp_segment_node.h
src/stream/tcp/tcp_session.cc
src/stream/tcp/tcp_session.h
src/stream/tcp/tcp_state_closed.cc
src/stream/tcp/tcp_state_handler.cc
src/stream/tcp/tcp_state_mid_stream_recv.cc
src/stream/tcp/tcp_state_mid_stream_sent.cc
src/stream/tcp/tcp_state_syn_sent.cc
src/stream/tcp/tcp_stream_session.cc [deleted file]
src/stream/tcp/tcp_stream_session.h [deleted file]
src/stream/tcp/tcp_stream_tracker.cc
src/stream/tcp/tcp_stream_tracker.h
src/stream/tcp/tcp_trace.cc
src/stream/tcp/test/tcp_normalizer_test.cc