]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
8 years agoflow: counters for total number of flows 2698/head
Victor Julien [Fri, 5 May 2017 13:24:45 +0000 (15:24 +0200)] 
flow: counters for total number of flows

flow.tcp
flow.udp
flow.icmpv4
flow.icmpv6

8 years agodnp3: in template, include files own headers
Jason Ish [Wed, 3 May 2017 14:55:38 +0000 (08:55 -0600)] 
dnp3: in template, include files own headers

To deal with -Wmissing-prototypes as added in
ab1200fbd7fd4d3e0fe097fab3b3bcfefaba7e2e

Note: Change was already applied to source files, this just
updates the generation.

8 years agopfring: compiler warning fixes 2697/head
Victor Julien [Mon, 8 May 2017 12:47:58 +0000 (14:47 +0200)] 
pfring: compiler warning fixes

8 years agolua: extend SCFlowAppLayerProto
Victor Julien [Fri, 5 May 2017 09:22:44 +0000 (11:22 +0200)] 
lua: extend SCFlowAppLayerProto

Change SCFlowAppLayerProto to return 5 values:
<alproto> <alproto_ts> <alproto_tc> <alproto_orig> <alproto_expect>:

alproto: detected protocol
alproto_ts: detected protocol in toserver direction
alproto_tc: detected protocol in toclient direction
alproto_orig: pre-change/upgrade protocol
alproto_expected: expected protocol in change/upgrade

Orig and expect are used when changing and upgrading protocols. In a
SMTP STARTTLS case, orig would normally be set to "smtp" and expect
to "tls".

8 years agoeve.flow: log original and expected app_protocols
Victor Julien [Fri, 5 May 2017 08:54:06 +0000 (10:54 +0200)] 
eve.flow: log original and expected app_protocols

Log protocols if they are available.

8 years agonfq: don't try to verdict detect/log flush pkts
Victor Julien [Mon, 8 May 2017 11:26:13 +0000 (13:26 +0200)] 
nfq: don't try to verdict detect/log flush pkts

8 years agoconnect/starttls: handle detection corner cases
Victor Julien [Fri, 17 Feb 2017 10:44:27 +0000 (11:44 +0100)] 
connect/starttls: handle detection corner cases

When switching protocol from http to tls the following corner case
was observed:

 pkt 6, TC "200 connection established"
 pkt 7, TS acks pkt 6 + adds "client hello"
 pkt 8 TC, acks pkt 7
 pkt 8 is where normally the detect on the 200 connection established
       would run however before detection runs the app-layer is called
       and it resets the state

So the issue is missed detection on the last data in the original
protocol before the switch.

Another case was:

TS ->    STARTTLS
TC ->    Ack "STARTTLS data"
         220
TS ->    Ack "220 data"
         Client Hello

In IDS mode, this made a rule that wanted to look at content:"STARTTLS"
in combination with the protocol SMTP 'alert smtp ... content:"STARTTLS";'
impossible. By the time the content would match, the protocol was already
switched.

This patch fixes this case by creating a 'Detect/Log Flush' packet in
both directions. This will force final inspection and logging of the
pre-upgrade protocol (SMTP in this example) before doing the final
switch.

8 years agoapp-layer: protocol change API
Victor Julien [Fri, 17 Feb 2017 10:41:02 +0000 (11:41 +0100)] 
app-layer: protocol change API

Add API calls to upgrade to TLS or to request a protocol change
without a specific protocol expectation.

If the HTTP CONNECT session includes a port on the url, use that to
look up the probing parser during protocol detection. Solves a
missed detection of a SSLv2 session that upgrades to TLSv1. SSLv2
relies on the probing parser which is limited to certain ports.

In case of STARTTLS in SMTP and FTP, the port is hardcoded to 443.

A new event APPLAYER_UNEXPECTED_PROTOCOL is set if there was a
mismatch.

8 years agoapp-layer: add decoder event for missing TLS after STARTTLS
Mats Klepsland [Wed, 15 Feb 2017 06:06:15 +0000 (07:06 +0100)] 
app-layer: add decoder event for missing TLS after STARTTLS

8 years agoapp-layer-ftp: add STARTTLS support
Mats Klepsland [Wed, 1 Feb 2017 11:56:39 +0000 (12:56 +0100)] 
app-layer-ftp: add STARTTLS support

8 years agoapp-layer-ftp: detect FTP alproto when using AUTH TLS
Mats Klepsland [Wed, 1 Feb 2017 09:24:52 +0000 (10:24 +0100)] 
app-layer-ftp: detect FTP alproto when using AUTH TLS

Try to detect FTP using the patterns '220 (' and 'FEAT', since 'USER '
and 'PASS ' are not sent in cleartext when using AUTH TLS.

8 years agooutput-json-tls: log 'from_proto' field
Mats Klepsland [Tue, 31 Jan 2017 14:02:21 +0000 (15:02 +0100)] 
output-json-tls: log 'from_proto' field

Log the original application level protocol when protocol have been
changed because of STARTTLS, HTTP CONNECT or similar.

8 years agoapp-layer-smtp: add STARTTLS support
Mats Klepsland [Tue, 31 Jan 2017 13:58:20 +0000 (14:58 +0100)] 
app-layer-smtp: add STARTTLS support

8 years agoapp-layer-htp: add HTTP CONNECT support
Mats Klepsland [Tue, 31 Jan 2017 13:45:25 +0000 (14:45 +0100)] 
app-layer-htp: add HTTP CONNECT support

8 years agoproto-detect: add debug output
Victor Julien [Fri, 17 Feb 2017 10:43:02 +0000 (11:43 +0100)] 
proto-detect: add debug output

8 years agoapp-layer: support changing flow alproto
Mats Klepsland [Tue, 31 Jan 2017 13:34:30 +0000 (14:34 +0100)] 
app-layer: support changing flow alproto

Support changing the application level protocol for a flow. This is
needed by STARTTLS and HTTP CONNECT to switch from the original
alproto to tls.

This commit allows a flag to be set 'FLOW_CHANGE_PROTO', which
triggers a new protocol detection on the next packet for a flow.

8 years agomagic: fix compile warnings
Victor Julien [Sat, 6 May 2017 08:49:43 +0000 (10:49 +0200)] 
magic: fix compile warnings

8 years agonfq: remove obsolete and broken netfilterforwin support 2687/head
Victor Julien [Tue, 2 May 2017 15:28:15 +0000 (17:28 +0200)] 
nfq: remove obsolete and broken netfilterforwin support

8 years agoisdataat: add test for leading space
Victor Julien [Tue, 2 May 2017 15:22:24 +0000 (17:22 +0200)] 
isdataat: add test for leading space

8 years agonflog: compiler warning fix
Victor Julien [Tue, 2 May 2017 12:48:21 +0000 (14:48 +0200)] 
nflog: compiler warning fix

8 years agocompiler: more strict compiler warnings 2684/head
Victor Julien [Tue, 2 May 2017 07:11:16 +0000 (09:11 +0200)] 
compiler: more strict compiler warnings

Set flags by default:

    -Wmissing-prototypes
    -Wmissing-declarations
    -Wstrict-prototypes
    -Wwrite-strings
    -Wcast-align
    -Wbad-function-cast
    -Wformat-security
    -Wno-format-nonliteral
    -Wmissing-format-attribute
    -funsigned-char

Fix minor compiler warnings for these new flags on gcc and clang.

8 years agodetect-parse: improve common parser 2683/head
Victor Julien [Mon, 1 May 2017 18:34:07 +0000 (20:34 +0200)] 
detect-parse: improve common parser

In preparation of turning input to keyword parsers to const add
options to the common rule parser to enforce and strip double
quotes and parse negation support.

At registration, the keyword can register 3 extra flags:

    SIGMATCH_QUOTES_MANDATORY: value to keyword must be quoted

    SIGMATCH_QUOTES_OPTIONAL: value to keyword may be quoted

    SIGMATCH_HANDLE_NEGATION: leading ! is parsed

In all cases leading spaces are removed. If the 'quote' flags are
set, the quotes are removed from the input as well.

8 years agodetect: enforce isdataat:!1,relative earlier 2681/head
Victor Julien [Mon, 6 Mar 2017 15:41:05 +0000 (16:41 +0100)] 
detect: enforce isdataat:!1,relative earlier

The expression 'isdataat:!1,relative' is used to make sure a match
is at the end of a buffer quite often. This patch optimizes this case
for 'content' followed by the expression. It enforces it by setting
and 'ends with' flag on the content and then taking that flag into
account while doing the pattern match.

8 years agodetect: more content inspection tests
Victor Julien [Mon, 6 Mar 2017 10:17:12 +0000 (11:17 +0100)] 
detect: more content inspection tests

8 years agodetect: don't rescan when just distance is used
Victor Julien [Sat, 4 Mar 2017 12:40:39 +0000 (13:40 +0100)] 
detect: don't rescan when just distance is used

Content inspection optimization: when just distance is used without
within we don't need to search recursively.

E.g. content:"a"; content:"b"; distance:1; will scan the buffer for
'a' and when it finds 'a' it will scan the remainder for 'b'. Until
now, the failure to find 'b' would lead to looking for the next 'a'
and then for 'b' after that. However, we already inspected the
entire buffer for 'b', so we know this will fail.

8 years agodetect: content-inspection tests
Victor Julien [Sat, 4 Mar 2017 09:15:39 +0000 (10:15 +0100)] 
detect: content-inspection tests

Add tests for the content inspection engine that count the number
of steps it takes to eval a rule.

8 years agodetect: avoid needless recursive scanning
Victor Julien [Fri, 3 Mar 2017 14:38:43 +0000 (15:38 +0100)] 
detect: avoid needless recursive scanning

Don't recursively inspect a detect list if the recursion
doesn't increase chance of success.

8 years agodetect: use BIT_U32 macro for content flags
Victor Julien [Sat, 4 Mar 2017 12:05:37 +0000 (13:05 +0100)] 
detect: use BIT_U32 macro for content flags

8 years agodebug: suppress notice message 2679/head
Victor Julien [Mon, 1 May 2017 08:38:22 +0000 (10:38 +0200)] 
debug: suppress notice message

8 years agocleanup: remove unused ringbuffer code
Victor Julien [Fri, 28 Apr 2017 07:23:09 +0000 (09:23 +0200)] 
cleanup: remove unused ringbuffer code

8 years agocleanup: remove libpcap < 1 support
Victor Julien [Fri, 28 Apr 2017 07:44:37 +0000 (09:44 +0200)] 
cleanup: remove libpcap < 1 support

8 years agoconfigure: remove CentOS5 pkg-config fix
Victor Julien [Fri, 28 Apr 2017 07:50:59 +0000 (09:50 +0200)] 
configure: remove CentOS5 pkg-config fix

8 years agocleanup: from AS_VERSION_COMPARE CentOS5 workaround
Victor Julien [Fri, 28 Apr 2017 07:48:09 +0000 (09:48 +0200)] 
cleanup: from AS_VERSION_COMPARE CentOS5 workaround

8 years agodetect: update tests that mix state/stream inspect 2673/head
Victor Julien [Wed, 19 Apr 2017 13:57:31 +0000 (15:57 +0200)] 
detect: update tests that mix state/stream inspect

8 years agounittests: add/improve helpers for stream/flow
Victor Julien [Wed, 19 Apr 2017 13:57:08 +0000 (15:57 +0200)] 
unittests: add/improve helpers for stream/flow

8 years agohttp_header: enable trailer prefilter engines
Victor Julien [Thu, 20 Apr 2017 09:48:06 +0000 (11:48 +0200)] 
http_header: enable trailer prefilter engines

Now that the mpm engines run only for the proper 'progress'
value, the trailing headers need their own engine registration.

8 years agostate: check progress before calling engine
Victor Julien [Tue, 18 Apr 2017 07:38:22 +0000 (09:38 +0200)] 
state: check progress before calling engine

Make sure progress of an inspect engine is available.

8 years agodetect: improve stateful detection
Victor Julien [Tue, 11 Apr 2017 13:24:49 +0000 (15:24 +0200)] 
detect: improve stateful detection

Now that MPM runs when the TX progress is right, stateful detection
operates differently.

Changes:

1. raw stream inspection is now also an inspect engine

   Since this engine doesn't take the transactions into account, it
   could potentially run multiple times on the same data. To avoid
   this, basic result caching is in place.

2. the engines are sorted by progress, but the 'MPM' engine is first
   even if the progress is higher

   If MPM flags a rule to be inspected, the inspect engine for that
   buffer runs first. If this step fails, the rule is no longer
   evaluated. No state is stored.

8 years agodetect: change mask logic
Victor Julien [Tue, 11 Apr 2017 16:15:16 +0000 (18:15 +0200)] 
detect: change mask logic

Previously the MPM/Prefilter engines would suggest the same rule
candidates multiple times.

For example, while processing the request body, the http headers
would be inspected by MPM multiple times.

The mask check was one way to quickly decide which rules could be
skipped.

Now that the MPM engines normally return a rule just once, this
mask check no longer makes sense. If the rule meets the ip/port/
direction based conditions, it needs to be evaluated if the MPM
said so. Even if not all conditions are yet true.

WIP disable mask as it no longer makes sense

WIP redo mask match

8 years agompm: run engines as few times as possible
Victor Julien [Mon, 10 Apr 2017 18:42:25 +0000 (20:42 +0200)] 
mpm: run engines as few times as possible

In various scenarios buffers would be checked my MPM more than
once. This was because the buffers would be inspected for a
certain progress value or higher.

For example, for each packet in a file upload, the engine would
not just rerun the 'http client body' MPM on the new data, it
would also rerun the method, uri, headers, cookie, etc MPMs.

This was obviously inefficent, so this patch changes the logic.

The patch only runs the MPM engines when the progress is exactly
the intended progress. If the progress is beyond the desired
value, it is run once. A tracker is added to the app layer API,
where the completed MPMs are tracked.

Implemented for HTTP, TLS and SSH.

8 years agodetect: register progress in inspect engines
Victor Julien [Mon, 17 Apr 2017 08:59:32 +0000 (10:59 +0200)] 
detect: register progress in inspect engines

Register required progress so we can stop inspecting as soon
as the progress isn't far enough yet.

8 years agodetect-state: don't use casts to uint
Victor Julien [Tue, 18 Apr 2017 07:38:48 +0000 (09:38 +0200)] 
detect-state: don't use casts to uint

8 years agohttp_uri: unittest cleanup
Victor Julien [Thu, 20 Apr 2017 14:15:51 +0000 (16:15 +0200)] 
http_uri: unittest cleanup

8 years agohttp_header: add another trailer test
Victor Julien [Thu, 20 Apr 2017 11:03:42 +0000 (13:03 +0200)] 
http_header: add another trailer test

8 years agohttp_header (trailer) test cleanup
Victor Julien [Thu, 20 Apr 2017 09:30:01 +0000 (11:30 +0200)] 
http_header (trailer) test cleanup

8 years agossh: fix test
Victor Julien [Thu, 20 Apr 2017 14:07:01 +0000 (16:07 +0200)] 
ssh: fix test

8 years agossh: fix banner state setting
Victor Julien [Thu, 20 Apr 2017 14:04:34 +0000 (16:04 +0200)] 
ssh: fix banner state setting

8 years agodetect: more detailed state profiling
Victor Julien [Mon, 17 Apr 2017 07:53:50 +0000 (09:53 +0200)] 
detect: more detailed state profiling

8 years agoapp-layer: set stream-depth after stream init
Victor Julien [Wed, 12 Apr 2017 12:31:25 +0000 (14:31 +0200)] 
app-layer: set stream-depth after stream init

8 years agodetect: clean up stateful detect
Victor Julien [Tue, 11 Apr 2017 07:58:40 +0000 (09:58 +0200)] 
detect: clean up stateful detect

8 years agostream: reduce scope of new ssn func
Victor Julien [Wed, 19 Apr 2017 13:47:09 +0000 (15:47 +0200)] 
stream: reduce scope of new ssn func

8 years agoautotools: add src/tests to extra dist
Victor Julien [Tue, 4 Apr 2017 14:16:17 +0000 (16:16 +0200)] 
autotools: add src/tests to extra dist

8 years agostream: move inline tests
Victor Julien [Wed, 8 Mar 2017 22:28:51 +0000 (23:28 +0100)] 
stream: move inline tests

8 years agostream: list management cleanups
Victor Julien [Wed, 8 Mar 2017 22:20:44 +0000 (23:20 +0100)] 
stream: list management cleanups

8 years agostream: debug improvements
Victor Julien [Wed, 8 Mar 2017 11:52:56 +0000 (12:52 +0100)] 
stream: debug improvements

8 years agostream inspection: add debug counters
Victor Julien [Wed, 8 Mar 2017 11:52:34 +0000 (12:52 +0100)] 
stream inspection: add debug counters

8 years agostream: pack config struct
Victor Julien [Tue, 7 Mar 2017 21:41:23 +0000 (22:41 +0100)] 
stream: pack config struct

8 years agostream: enforce gap earlier in app reassembly
Victor Julien [Fri, 3 Mar 2017 08:54:56 +0000 (09:54 +0100)] 
stream: enforce gap earlier in app reassembly

8 years agostream: don't call app reassembly if disable flag set
Victor Julien [Fri, 3 Mar 2017 08:54:16 +0000 (09:54 +0100)] 
stream: don't call app reassembly if disable flag set

8 years agostream: app-layer micro optimizations
Victor Julien [Fri, 3 Mar 2017 08:53:54 +0000 (09:53 +0100)] 
stream: app-layer micro optimizations

8 years agostream: raw reassembly explicit disable raw handling
Victor Julien [Thu, 2 Mar 2017 23:12:38 +0000 (00:12 +0100)] 
stream: raw reassembly explicit disable raw handling

8 years agostream: mpm inspect micro optimizations
Victor Julien [Thu, 2 Mar 2017 23:12:12 +0000 (00:12 +0100)] 
stream: mpm inspect micro optimizations

8 years agostream: improve --disable-detection GAP handling
Victor Julien [Wed, 1 Mar 2017 15:51:22 +0000 (16:51 +0100)] 
stream: improve --disable-detection GAP handling

8 years agostream: remove unused StreamTcpGetStreamSize function
Victor Julien [Wed, 1 Mar 2017 14:34:14 +0000 (15:34 +0100)] 
stream: remove unused StreamTcpGetStreamSize function

8 years agostream: optimize session pruning
Victor Julien [Wed, 1 Mar 2017 13:50:20 +0000 (14:50 +0100)] 
stream: optimize session pruning

8 years agodoc: update for stream changes
Victor Julien [Wed, 1 Mar 2017 13:04:29 +0000 (14:04 +0100)] 
doc: update for stream changes

8 years agoyaml: sync with new stream engine
Victor Julien [Wed, 1 Mar 2017 10:24:13 +0000 (11:24 +0100)] 
yaml: sync with new stream engine

8 years agostream: validate code
Victor Julien [Tue, 28 Feb 2017 22:13:00 +0000 (23:13 +0100)] 
stream: validate code

8 years agodetect: only do flow dependent cleanup if a flow is present
Victor Julien [Mon, 27 Feb 2017 22:28:46 +0000 (23:28 +0100)] 
detect: only do flow dependent cleanup if a flow is present

8 years agodetect: make SigMatchSignatures void
Victor Julien [Mon, 27 Feb 2017 22:26:37 +0000 (23:26 +0100)] 
detect: make SigMatchSignatures void

None of the callers cared for it's retval, so get rid of it.

8 years agodetect: turn single detect flag into bool
Victor Julien [Mon, 27 Feb 2017 22:14:39 +0000 (23:14 +0100)] 
detect: turn single detect flag into bool

8 years agodetect: remove unused detect flag
Victor Julien [Mon, 27 Feb 2017 22:12:09 +0000 (23:12 +0100)] 
detect: remove unused detect flag

8 years agostream: improve needs reassembly code
Victor Julien [Tue, 28 Feb 2017 11:44:02 +0000 (12:44 +0100)] 
stream: improve needs reassembly code

8 years agostream: more aggressive StreamReassembleRawHasDataReady
Victor Julien [Tue, 28 Feb 2017 10:23:27 +0000 (11:23 +0100)] 
stream: more aggressive StreamReassembleRawHasDataReady

8 years agoapp-layer: change logic of setting 'no reassembly'
Victor Julien [Sun, 26 Feb 2017 13:19:43 +0000 (14:19 +0100)] 
app-layer: change logic of setting 'no reassembly'

Instead of killing all reassembly instantly do things slightly more
gracefully:
1. disable app-layer reassembly immediately
2. flag raw reassembly not to accept new data

This will allow the current data to be inspected still.

After detect as run the raw reassembly will be fully disabled and
thus all reassembly will be as well.

8 years agostream: new depth / disable raw logic
Victor Julien [Sun, 26 Feb 2017 13:06:05 +0000 (14:06 +0100)] 
stream: new depth / disable raw logic

Depth reach sets NOREASSEMBLY after detect.

No new raw sets NORAW after detect.

8 years agostream: allow raw reassembly catch up
Victor Julien [Sat, 25 Feb 2017 12:33:40 +0000 (13:33 +0100)] 
stream: allow raw reassembly catch up

If raw reassembly falls behind, for example because no raw mpm is
active, then we need to sync up to the app progress if that is
available, or to the generic tcp tracking otherwise.

8 years agostream: detect stream GAP also during reassembly
Victor Julien [Sat, 25 Feb 2017 12:33:15 +0000 (13:33 +0100)] 
stream: detect stream GAP also during reassembly

8 years agodebug-validation: add stream checks
Victor Julien [Fri, 24 Feb 2017 20:05:43 +0000 (21:05 +0100)] 
debug-validation: add stream checks

8 years agostream: StreamTcpReassembleRawCheckLimit cleanup
Victor Julien [Thu, 23 Feb 2017 12:09:46 +0000 (13:09 +0100)] 
stream: StreamTcpReassembleRawCheckLimit cleanup

8 years agostream: handle no stream scanning case
Victor Julien [Wed, 22 Feb 2017 10:14:02 +0000 (11:14 +0100)] 
stream: handle no stream scanning case

Now that detect moves the raw progress forward, it's important
to deal with the case where detect don't consider raw inspection.

If no 'stream' rules are active, disable raw. For this the disable
raw flag is now per stream.

8 years agostream: raw content inspection inline mode
Victor Julien [Mon, 20 Feb 2017 10:04:29 +0000 (11:04 +0100)] 
stream: raw content inspection inline mode

Implement the inline mode for raw content inspection. Packets
are leading, and when a packet's payload has been added to the
stream, the packet is inspected in the context of the stream.

Reassembly will return a buffer with the packet data with older
data in front of it and after it, if available.

8 years agoflow/stream: reduce/disable pseudo packet injections
Victor Julien [Sun, 19 Feb 2017 11:32:23 +0000 (12:32 +0100)] 
flow/stream: reduce/disable pseudo packet injections

At flow timeout, we no longer need to first run reassembly in
one dir, then inspection in the other. We can do both in single
packet now.

Disable pseudo packets when receiving stream end packets. Instead
call the app-layer parser in the packet direction for stream end
packets and flow end packets.

These changes in handling of those stream end packets make the
pseudo packets unnecessary.

8 years agostream: set 'trigger raw' per direction
Victor Julien [Sat, 18 Feb 2017 23:54:45 +0000 (00:54 +0100)] 
stream: set 'trigger raw' per direction

8 years agodetect / stream: new 'raw' stream inspection
Victor Julien [Fri, 17 Feb 2017 16:59:43 +0000 (17:59 +0100)] 
detect / stream: new 'raw' stream inspection

Remove the 'StreamMsg' approach from the engine. In this approach the
stream engine would create a list of chunks for inspection by the
detection engine. There were several issues:

1. the messages had a fixed size, so blocks of data bigger than ~4k
   would be cut into multiple messages

2. it lead to lots of data copying and unnecessary memory use

3. the StreamMsgs used a central pool

The Stream engine switched over to the streaming buffer API, which
means that the reassembled data is always available. This made the
StreamMsg approach even clunkier.

The new approach exposes the streaming buffer data to the detection
engine. It has to pay attention to an important issue though: packet
loss. The data may have gaps. The streaming buffer API tracks the
blocks of continuous data.

To access the data for inspection a callback approach is used. The
'StreamReassembleRaw' function is called with a callback and data.
This way it runs the MPM and individual rule inspection code. At
the end of each detection run the stream engine is notified that it
can move forward it's 'progress'.

8 years agostream: constify StreamTcpReassembleRawCheckLimit
Victor Julien [Wed, 8 Mar 2017 12:26:54 +0000 (13:26 +0100)] 
stream: constify StreamTcpReassembleRawCheckLimit

8 years agounittests: fail if TCP memory still in use
Victor Julien [Sat, 7 May 2016 15:24:32 +0000 (17:24 +0200)] 
unittests: fail if TCP memory still in use

abort() so test can be analyzed.

8 years agostream-tcp: implement thread pool for segments
Victor Julien [Fri, 6 May 2016 17:45:30 +0000 (19:45 +0200)] 
stream-tcp: implement thread pool for segments

Config option:

stream:
  reassembly:
    segment-prealloc: 2048

8 years agostream: implement memory handling functions
Victor Julien [Fri, 6 May 2016 15:12:42 +0000 (17:12 +0200)] 
stream: implement memory handling functions

8 years agostream: use static instead of dynamic streaming buffer structure
Victor Julien [Thu, 28 Apr 2016 15:21:28 +0000 (17:21 +0200)] 
stream: use static instead of dynamic streaming buffer structure

8 years agostream: test cleanups and fixes
Victor Julien [Thu, 28 Apr 2016 15:20:11 +0000 (17:20 +0200)] 
stream: test cleanups and fixes

8 years agostream: add insert failure counters
Victor Julien [Wed, 8 Mar 2017 11:50:32 +0000 (12:50 +0100)] 
stream: add insert failure counters

8 years agostream: add stream.reassembly.check-overlap-different-data option
Victor Julien [Thu, 28 Apr 2016 09:48:30 +0000 (11:48 +0200)] 
stream: add stream.reassembly.check-overlap-different-data option

8 years agostream: add tcp.overlap and tcp.overlap_diff_data counters
Victor Julien [Thu, 28 Apr 2016 08:53:49 +0000 (10:53 +0200)] 
stream: add tcp.overlap and tcp.overlap_diff_data counters

8 years agostream: improve no app and no raw case
Victor Julien [Sat, 25 Feb 2017 09:20:51 +0000 (10:20 +0100)] 
stream: improve no app and no raw case

8 years agostream: make raw_progress relative to STREAM_BASE_OFFSET
Victor Julien [Thu, 28 Apr 2016 07:53:24 +0000 (09:53 +0200)] 
stream: make raw_progress relative to STREAM_BASE_OFFSET

8 years agostream: make app_progress relative to STREAM_BASE_OFFSET
Victor Julien [Thu, 28 Apr 2016 06:44:10 +0000 (08:44 +0200)] 
stream: make app_progress relative to STREAM_BASE_OFFSET

8 years agostream: reduce space used for progress tracking
Victor Julien [Wed, 27 Apr 2016 20:13:27 +0000 (22:13 +0200)] 
stream: reduce space used for progress tracking

Instead of the explicit base_seq_offset, use a macro instead. The
macro points to the stream buffer offset. The two were always
in sync.

8 years agostream: small cleanups
Victor Julien [Wed, 27 Apr 2016 19:47:10 +0000 (21:47 +0200)] 
stream: small cleanups

8 years agostream: remove unused zero copy setting
Victor Julien [Wed, 27 Apr 2016 19:37:28 +0000 (21:37 +0200)] 
stream: remove unused zero copy setting