You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
suricata/src
Victor Julien 70c16f50e7 flow-manager: optimize hash walking
Until now the flow manager would walk the entire flow hash table on an
interval. It would thus touch all flows, leading to a lot of memory
and cache pressure. In scenario's where the number of tracked flows run
into the hundreds on thousands, and the memory used can run into many
hundreds of megabytes or even gigabytes, this would lead to serious
performance degradation.

This patch introduces a new approach. A timestamp per flow bucket
(hash row) is maintained by the flow manager. It holds the timestamp
of the earliest possible timeout of a flow in the list. The hash walk
skips rows with timestamps beyond the current time.

As the timestamp depends on the flows in the hash row's list, and on
the 'state' of each flow in the list, any addition of a flow or
changing of a flow's state invalidates the timestamp. The flow manager
then has to walk the list again to set a new timestamp.

A utility function FlowUpdateState is introduced to change Flow states,
taking care of the bucket timestamp invalidation while at it.

Empty flow buckets use a special value so that we don't have to take
the flow bucket lock to find out the bucket is empty.

This patch also adds more performance counters:

flow_mgr.flows_checked         | Total    | 929
flow_mgr.flows_notimeout       | Total    | 391
flow_mgr.flows_timeout         | Total    | 538
flow_mgr.flows_removed         | Total    | 277
flow_mgr.flows_timeout_inuse   | Total    | 261
flow_mgr.rows_checked          | Total    | 1000000
flow_mgr.rows_skipped          | Total    | 998835
flow_mgr.rows_empty            | Total    | 290
flow_mgr.rows_maxlen           | Total    | 2

flow_mgr.flows_checked: number of flows checked for timeout in the
                        last pass
flow_mgr.flows_notimeout: number of flows out of flow_mgr.flows_checked
                        that didn't time out
flow_mgr.flows_timeout: number of out of flow_mgr.flows_checked that
                        did reach the time out
flow_mgr.flows_removed: number of flows out of flow_mgr.flows_timeout
                        that were really removed
flow_mgr.flows_timeout_inuse: number of flows out of flow_mgr.flows_timeout
                        that were still in use or needed work

flow_mgr.rows_checked: hash table rows checked
flow_mgr.rows_skipped: hash table rows skipped because non of the flows
                        would time out anyway

The counters below are only relating to rows that were not skipped.

flow_mgr.rows_empty:   empty hash rows
flow_mgr.rows_maxlen:  max number of flows per hash row. Best to keep low,
                        so increase hash-size if needed.
flow_mgr.rows_busy:    row skipped because it was locked by another thread
9 years ago
..
Makefile.am file-hashing: added support for SHA-256 file hashing 9 years ago
action-globals.h
alert-debuglog.c logging: hook into flow worker thread 9 years ago
alert-debuglog.h logging: rename registration functions to not have tmm 9 years ago
alert-fastlog.c logging: rename registration functions to not have tmm 9 years ago
alert-fastlog.h logging: rename registration functions to not have tmm 9 years ago
alert-prelude.c logging: rename registration functions to not have tmm 9 years ago
alert-prelude.h logging: rename registration functions to not have tmm 9 years ago
alert-syslog.c logging: rename registration functions to not have tmm 9 years ago
alert-syslog.h logging: rename registration functions to not have tmm 9 years ago
alert-unified2-alert.c logging: hook into flow worker thread 9 years ago
alert-unified2-alert.h logging: rename registration functions to not have tmm 9 years ago
app-layer-dcerpc-common.h dcerpc: cleanup list handling 10 years ago
app-layer-dcerpc-udp.c app-layer-dcerpc-udp: style cleanups 9 years ago
app-layer-dcerpc-udp.h
app-layer-dcerpc.c dcerpc: improve integer handling 10 years ago
app-layer-dcerpc.h dcerpc: fix memory leak when called from smb 10 years ago
app-layer-detect-proto.c cuda: make sure we don't use cuda in proto detect 9 years ago
app-layer-detect-proto.h
app-layer-dns-common.c dns: fix OOB read on malformed TXT record 9 years ago
app-layer-dns-common.h dns: add support for sshfp records 10 years ago
app-layer-dns-tcp.c dns: register logger functions 10 years ago
app-layer-dns-tcp.h
app-layer-dns-udp.c output: introduce config and perf output levels 10 years ago
app-layer-dns-udp.h
app-layer-events.c
app-layer-events.h
app-layer-ftp.c tests: no longer necessary to provide successful return code 10 years ago
app-layer-ftp.h
app-layer-htp-body.c coverity: CID 1362011: Control flow issues (DEADCODE) 10 years ago
app-layer-htp-body.h http: add per direction config for body parsing 10 years ago
app-layer-htp-file.c file: introduce common flags handling function 9 years ago
app-layer-htp-file.h htp file: constify name/data args 10 years ago
app-layer-htp-libhtp.c
app-layer-htp-libhtp.h
app-layer-htp-mem.c htp: add HTPCalloc wrapper 10 years ago
app-layer-htp-mem.h htp: add HTPCalloc wrapper 10 years ago
app-layer-htp-xff.c tests: no longer necessary to provide successful return code 10 years ago
app-layer-htp-xff.h xff: support ports and more ipv6 notations 10 years ago
app-layer-htp.c http: set of response body decompress limit 10 years ago
app-layer-htp.h http: make htpstate cfg ptr const 10 years ago
app-layer-modbus.c output: introduce config and perf output levels 10 years ago
app-layer-modbus.h modbus: register logger functions 10 years ago
app-layer-nbss.h
app-layer-parser.c app-layer: add function to check if app-layer supports files 9 years ago
app-layer-parser.h app-layer: add function to check if app-layer supports files 9 years ago
app-layer-protos.c app-layer: template for application layer parser 10 years ago
app-layer-protos.h app-layer: template for application layer parser 10 years ago
app-layer-smb.c smb: style fix in log message 9 years ago
app-layer-smb.h
app-layer-smb2.c tests: no longer necessary to provide successful return code 10 years ago
app-layer-smb2.h
app-layer-smtp.c file: introduce common flags handling function 9 years ago
app-layer-smtp.h smtp: improve thread data use 10 years ago
app-layer-ssh.c debug: fix compiler warnings 10 years ago
app-layer-ssh.h lua: SSH output support 10 years ago
app-layer-ssl.c ssl: store current state separately from cumulative state 9 years ago
app-layer-ssl.h ssl: store current state separately from cumulative state 9 years ago
app-layer-template.c app-layer templates: cleanups 9 years ago
app-layer-template.h app-layer templates: cleanups 9 years ago
app-layer-tls-handshake.c output: use safer logic for fingerprint printing 9 years ago
app-layer-tls-handshake.h
app-layer.c flow: move flow handling into worker threads 10 years ago
app-layer.h
conf-yaml-loader.c yaml: minor cleanup 10 years ago
conf-yaml-loader.h
conf.c conf: use new testing macros 10 years ago
conf.h
counters.c unix-socket: add auto mode 9 years ago
counters.h jansson: include in suricata-common.h 10 years ago
data-queue.c
data-queue.h
debug.h
decode-erspan.c
decode-erspan.h
decode-ethernet.c decode: support Cisco Fabric Path / DCE 9 years ago
decode-ethernet.h decode: support Cisco Fabric Path / DCE 9 years ago
decode-events.c defrag: use frag_pkt_too_large instead of frag_too_large 9 years ago
decode-events.h defrag: use frag_pkt_too_large instead of frag_too_large 9 years ago
decode-gre.c tests: no longer necessary to provide successful return code 10 years ago
decode-gre.h
decode-icmpv4.c flow: move flow handling into worker threads 10 years ago
decode-icmpv4.h packet: make tcp/udp/icmp vars union non-anonymous 9 years ago
decode-icmpv6.c decode-icmpv6: use FAIL macros in tests 9 years ago
decode-icmpv6.h packet: make tcp/udp/icmp vars union non-anonymous 9 years ago
decode-ipv4.c flow: move flow handling into worker threads 10 years ago
decode-ipv4.h ipv4: removed unused variables 10 years ago
decode-ipv6.c ipv6: simplify ext hdr parsing 10 years ago
decode-ipv6.h ipv6: simplify ext hdr parsing and storage 10 years ago
decode-mpls.c tests: no longer necessary to provide successful return code 10 years ago
decode-mpls.h
decode-null.c
decode-null.h
decode-ppp.c tests: no longer necessary to provide successful return code 10 years ago
decode-ppp.h
decode-pppoe.c tests: no longer necessary to provide successful return code 10 years ago
decode-pppoe.h
decode-raw.c tests: no longer necessary to provide successful return code 10 years ago
decode-raw.h
decode-sctp.c flow: move flow handling into worker threads 10 years ago
decode-sctp.h
decode-sll.c
decode-sll.h
decode-tcp.c flow: move flow handling into worker threads 10 years ago
decode-tcp.h packet: make tcp/udp/icmp vars union non-anonymous 9 years ago
decode-template.c decoder: add template/example 10 years ago
decode-template.h decoder: add template/example 10 years ago
decode-teredo.c
decode-teredo.h
decode-udp.c flow: move flow handling into worker threads 10 years ago
decode-udp.h packet: remove empty and unused UDPVars struct 9 years ago
decode-vlan.c tests: no longer necessary to provide successful return code 10 years ago
decode-vlan.h
decode.c decoder-event: BUG_ON on table mismatches 9 years ago
decode.h logging: add profiling back for non-tmm loggers 9 years ago
defrag-config.c defrag: free defrag tree at exit 10 years ago
defrag-config.h defrag: free defrag tree at exit 10 years ago
defrag-hash.c output: introduce config and perf output levels 10 years ago
defrag-hash.h
defrag-queue.c
defrag-queue.h
defrag-timeout.c
defrag-timeout.h
defrag.c defrag: use frag_pkt_too_large instead of frag_too_large 9 years ago
defrag.h defrag: tracker initialization cleanup 10 years ago
detect-ack.c tests: no longer necessary to provide successful return code 10 years ago
detect-ack.h
detect-app-layer-event.c detect app-layer-event: fix tests 10 years ago
detect-app-layer-event.h
detect-app-layer-protocol.c tests: no longer necessary to provide successful return code 10 years ago
detect-app-layer-protocol.h
detect-asn1.c tests: no longer necessary to provide successful return code 10 years ago
detect-asn1.h
detect-base64-data.c tests: no longer necessary to provide successful return code 10 years ago
detect-base64-data.h base64_decode, base64_data: decode and match base64 10 years ago
detect-base64-decode.c Removed duplicate include statements. 10 years ago
detect-base64-decode.h base64_decode, base64_data: decode and match base64 10 years ago
detect-byte-extract.c detect keywords: use parse regex util func 10 years ago
detect-byte-extract.h
detect-bytejump.c detect keywords: use parse regex util func 10 years ago
detect-bytejump.h
detect-bytetest.c detect keywords: use parse regex util func 10 years ago
detect-bytetest.h
detect-classtype.c detect keywords: use parse regex util func 10 years ago
detect-classtype.h
detect-content.c rule-parsing: reject unescaped double quote within content section 9 years ago
detect-content.h spm: add and use new SPM API 10 years ago
detect-csum.c icmpv6: fix checksum verification if fcs present 9 years ago
detect-csum.h
detect-dce-iface.c detect: don't set alproto while registering keyword 9 years ago
detect-dce-iface.h
detect-dce-opnum.c detect: don't set alproto while registering keyword 9 years ago
detect-dce-opnum.h
detect-dce-stub-data.c detect: don't set alproto while registering keyword 9 years ago
detect-dce-stub-data.h
detect-depth.c Removed duplicate include statements. 10 years ago
detect-depth.h
detect-detection-filter.c Removed duplicate include statements. 10 years ago
detect-detection-filter.h
detect-distance.c Removed duplicate include statements. 10 years ago
detect-distance.h
detect-dns-query.c detect: don't set alproto while registering keyword 9 years ago
detect-dns-query.h
detect-dsize.c Removed duplicate include statements. 10 years ago
detect-dsize.h
detect-engine-address-ipv4.c Removed duplicate include statements. 10 years ago
detect-engine-address-ipv4.h
detect-engine-address-ipv6.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-address-ipv6.h
detect-engine-address.c detect: optimize rule address parsing 9 years ago
detect-engine-address.h detect: optimize rule address parsing 9 years ago
detect-engine-alert.c detect: simplify flow locking 10 years ago
detect-engine-alert.h
detect-engine-analyzer.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-analyzer.h detect: constify mpm/detect funcs 10 years ago
detect-engine-apt-event.c tx: do not store ProgressCompletionStatus per ipproto 10 years ago
detect-engine-apt-event.h
detect-engine-content-inspection.c detect: simplify flow locking 10 years ago
detect-engine-content-inspection.h tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-dcepayload.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-dcepayload.h
detect-engine-dns.c mpm: optimize calls 10 years ago
detect-engine-dns.h
detect-engine-event.c detect keywords: use parse regex util func 10 years ago
detect-engine-event.h decode-events: counters for decode events errors 10 years ago
detect-engine-file.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect-engine-file.h
detect-engine-filedata-smtp.c file: switch to streaming buffer API 10 years ago
detect-engine-filedata-smtp.h
detect-engine-hcbd.c http: improve body inspection 10 years ago
detect-engine-hcbd.h
detect-engine-hcd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hcd.h
detect-engine-hhd.c detect-engine: adjust unit tests for hs mpm 10 years ago
detect-engine-hhd.h
detect-engine-hhhd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hhhd.h
detect-engine-hmd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hmd.h
detect-engine-hrhd.c detect-engine: adjust unit tests for hs mpm 10 years ago
detect-engine-hrhd.h
detect-engine-hrhhd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hrhhd.h
detect-engine-hrl.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hrl.h
detect-engine-hrud.c detect-engine: adjust unit tests for hs mpm 10 years ago
detect-engine-hrud.h
detect-engine-hsbd.c http body: fix compression tests 10 years ago
detect-engine-hsbd.h
detect-engine-hscd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hscd.h
detect-engine-hsmd.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hsmd.h
detect-engine-hua.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-hua.h
detect-engine-iponly.c iponly: fix unittests 9 years ago
detect-engine-iponly.h
detect-engine-loader.c cppcheck: fix harmless warnings 10 years ago
detect-engine-loader.h detect loader: move to own file 10 years ago
detect-engine-modbus.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-modbus.h
detect-engine-mpm.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-mpm.h mpm: clean up builtin mpm setup, enable single/full 10 years ago
detect-engine-payload.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-payload.h
detect-engine-port.c src/: fix typo: receieved vs received 10 years ago
detect-engine-port.h detect-port: remove debug mem counters 10 years ago
detect-engine-profile.c profiling: fix compilation if libjansson is missing 10 years ago
detect-engine-profile.h profiling: output post-prefilter matches 10 years ago
detect-engine-proto.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-proto.h detect: constify mpm/detect funcs 10 years ago
detect-engine-siggroup.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect-engine-siggroup.h file-hashing: added support for SHA-1 file hashing 9 years ago
detect-engine-sigorder.c detect: add missing sigorder case 10 years ago
detect-engine-sigorder.h
detect-engine-state.c detect: implement continue detect for dcepayload 9 years ago
detect-engine-state.h tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-tag.c detect: simplify flow locking 10 years ago
detect-engine-tag.h
detect-engine-template.c app-layer templates: cleanups 9 years ago
detect-engine-template.h app-layer templates: cleanups 9 years ago
detect-engine-threshold.c threshold: remove debug message from info loglevel 10 years ago
detect-engine-threshold.h
detect-engine-tls.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-tls.h tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine-uri.c tests: no longer necessary to provide successful return code 10 years ago
detect-engine-uri.h
detect-engine.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-engine.h yaml: remove conf_filename global 10 years ago
detect-fast-pattern.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-fast-pattern.h
detect-file-data.c detect: don't set alproto while registering keyword 9 years ago
detect-file-data.h
detect-fileext.c detect: don't set alproto while registering keyword 9 years ago
detect-fileext.h
detect-filemagic.c detect: don't set alproto while registering keyword 9 years ago
detect-filemagic.h
detect-filemd5.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect-filemd5.h file-hashing: common code added 9 years ago
detect-filename.c detect: don't set alproto while registering keyword 9 years ago
detect-filename.h
detect-filesha1.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect-filesha1.h file-hashing: added support for SHA-1 file hashing 9 years ago
detect-filesha256.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect-filesha256.h file-hashing: added support for SHA-256 file hashing 9 years ago
detect-filesize.c detect: don't set alproto while registering keyword 9 years ago
detect-filesize.h
detect-filestore.c detect: don't set alproto while registering keyword 9 years ago
detect-filestore.h
detect-flags.c detect keywords: use parse regex util func 10 years ago
detect-flags.h detect: SYN flags 10 years ago
detect-flow.c detect keywords: use parse regex util func 10 years ago
detect-flow.h
detect-flowbits.c flow-bits: remove flow locks 9 years ago
detect-flowbits.h
detect-flowint.c detect: simplify flow locking 10 years ago
detect-flowint.h
detect-flowvar.c detect: simplify flow locking 10 years ago
detect-flowvar.h
detect-fragbits.c detect keywords: use parse regex util func 10 years ago
detect-fragbits.h
detect-fragoffset.c ipv6: simplify ext hdr parsing and storage 10 years ago
detect-fragoffset.h
detect-ftpbounce.c detect: don't set alproto while registering keyword 9 years ago
detect-ftpbounce.h
detect-geoip.c tests: no longer necessary to provide successful return code 10 years ago
detect-geoip.h
detect-gid.c detect keywords: use parse regex util func 10 years ago
detect-gid.h
detect-hostbits.c hostbits: use new unittest macros 9 years ago
detect-hostbits.h
detect-http-client-body.c detect: don't set alproto while registering keyword 9 years ago
detect-http-client-body.h
detect-http-cookie.c detect: don't set alproto while registering keyword 9 years ago
detect-http-cookie.h
detect-http-header.c detect: don't set alproto while registering keyword 9 years ago
detect-http-header.h
detect-http-hh.c detect: don't set alproto while registering keyword 9 years ago
detect-http-hh.h
detect-http-hrh.c detect: don't set alproto while registering keyword 9 years ago
detect-http-hrh.h
detect-http-method.c detect: don't set alproto while registering keyword 9 years ago
detect-http-method.h detect: validate http_method pattern 10 years ago
detect-http-raw-header.c detect: don't set alproto while registering keyword 9 years ago
detect-http-raw-header.h
detect-http-raw-uri.c detect: don't set alproto while registering keyword 9 years ago
detect-http-raw-uri.h
detect-http-server-body.c detect: don't set alproto while registering keyword 9 years ago
detect-http-server-body.h
detect-http-stat-code.c detect: don't set alproto while registering keyword 9 years ago
detect-http-stat-code.h
detect-http-stat-msg.c detect: don't set alproto while registering keyword 9 years ago
detect-http-stat-msg.h
detect-http-ua.c detect: don't set alproto while registering keyword 9 years ago
detect-http-ua.h
detect-http-uri.c detect: don't set alproto while registering keyword 9 years ago
detect-http-uri.h
detect-icmp-id.c Removed duplicate include statements. 10 years ago
detect-icmp-id.h
detect-icmp-seq.c Removed duplicate include statements. 10 years ago
detect-icmp-seq.h
detect-icode.c Removed duplicate include statements. 10 years ago
detect-icode.h
detect-id.c detect keywords: use parse regex util func 10 years ago
detect-id.h
detect-ipopts.c detect-ipopts: optimize matching 10 years ago
detect-ipopts.h detect-ipopts: optimize matching 10 years ago
detect-ipproto.c Removed duplicate include statements. 10 years ago
detect-ipproto.h
detect-iprep.c detect keywords: use parse regex util func 10 years ago
detect-iprep.h
detect-isdataat.c isdataat: remove unused code 10 years ago
detect-isdataat.h
detect-itype.c Removed duplicate include statements. 10 years ago
detect-itype.h
detect-l3proto.c Removed duplicate include statements. 10 years ago
detect-l3proto.h
detect-lua-extensions.c lua: remove flow locking from the lua layer 9 years ago
detect-lua-extensions.h lua: remove flow locking from the lua layer 9 years ago
detect-lua.c lua: remove flow locking from the lua layer 9 years ago
detect-lua.h detect: simplify flow locking 10 years ago
detect-mark.c detect keywords: use parse regex util func 10 years ago
detect-mark.h
detect-metadata.c
detect-metadata.h
detect-modbus.c detect: don't set alproto while registering keyword 9 years ago
detect-modbus.h
detect-msg.c detect-msg: fix option parsing 10 years ago
detect-msg.h
detect-noalert.c
detect-noalert.h
detect-nocase.c spm: add and use new SPM API 10 years ago
detect-nocase.h
detect-offset.c rule-parsing: quick fix for rules with wrong double quotes 10 years ago
detect-offset.h
detect-parse.c tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-parse.h QA: --afl-rules for faster rule fuzzing 10 years ago
detect-pcre.c detect-pcre: use new unit test macros 9 years ago
detect-pcre.h
detect-pkt-data.c detect: don't set alproto while registering keyword 9 years ago
detect-pkt-data.h
detect-pktvar.c detect keywords: use parse regex util func 10 years ago
detect-pktvar.h
detect-priority.c detect keywords: use parse regex util func 10 years ago
detect-priority.h
detect-rawbytes.c
detect-rawbytes.h
detect-reference.c detect keywords: use parse regex util func 10 years ago
detect-reference.h
detect-replace.c tests: no longer necessary to provide successful return code 10 years ago
detect-replace.h
detect-rev.c rule-parsing: quick fix for rules with wrong double quotes 10 years ago
detect-rev.h
detect-rpc.c detect keywords: use parse regex util func 10 years ago
detect-rpc.h
detect-sameip.c tests: no longer necessary to provide successful return code 10 years ago
detect-sameip.h
detect-seq.c tests: no longer necessary to provide successful return code 10 years ago
detect-seq.h
detect-sid.c tests: no longer necessary to provide successful return code 10 years ago
detect-sid.h
detect-ssh-proto-version.c detect: don't set alproto while registering keyword 9 years ago
detect-ssh-proto-version.h
detect-ssh-software-version.c detect: don't set alproto while registering keyword 9 years ago
detect-ssh-software-version.h
detect-ssl-state.c detect-ssl-state: use new unit test macros 9 years ago
detect-ssl-state.h ssl: issue 1231 - support ssl state negation 9 years ago
detect-ssl-version.c detect: don't set alproto while registering keyword 9 years ago
detect-ssl-version.h
detect-stream_size.c detect keywords: use parse regex util func 10 years ago
detect-stream_size.h
detect-tag.c detect keywords: use parse regex util func 10 years ago
detect-tag.h
detect-template-buffer.c detect: don't set alproto while registering keyword 9 years ago
detect-template-buffer.h app-layer templates: cleanups 9 years ago
detect-template.c detect-template: modernize 9 years ago
detect-template.h detect-template: modernize 9 years ago
detect-threshold.c Removed duplicate include statements. 10 years ago
detect-threshold.h
detect-tls-cert-issuer.c tls: add unit tests for tls_cert_issuer 9 years ago
detect-tls-cert-issuer.h tls: add (mpm) keyword tls_cert_issuer 9 years ago
detect-tls-cert-subject.c tls: add unit tests for tls_cert_subject 9 years ago
detect-tls-cert-subject.h tls: add (mpm) keyword tls_cert_subject 9 years ago
detect-tls-sni.c detect: don't set alproto while registering keyword 9 years ago
detect-tls-sni.h detect: add (mpm) keyword for tls_sni 10 years ago
detect-tls-version.c detect: don't set alproto while registering keyword 9 years ago
detect-tls-version.h
detect-tls.c detect: don't set alproto while registering keyword 9 years ago
detect-tls.h
detect-tos.c detect keywords: use parse regex util func 10 years ago
detect-tos.h
detect-ttl.c Removed duplicate include statements. 10 years ago
detect-ttl.h
detect-uricontent.c detect: don't set alproto while registering keyword 9 years ago
detect-uricontent.h spm: add and use new SPM API 10 years ago
detect-urilen.c detect: don't set alproto while registering keyword 9 years ago
detect-urilen.h
detect-window.c detect keywords: use parse regex util func 10 years ago
detect-window.h
detect-within.c Removed duplicate include statements. 10 years ago
detect-within.h
detect-xbits.c detect keywords: use parse regex util func 10 years ago
detect-xbits.h
detect.c file-hashing: added support for SHA-256 file hashing 9 years ago
detect.h file-hashing: added support for SHA-256 file hashing 9 years ago
flow-bit.c flow-bits: remove flow locks 9 years ago
flow-bit.h flow-bits: remove flow locks 9 years ago
flow-hash.c flow-manager: optimize hash walking 9 years ago
flow-hash.h flow-manager: optimize hash walking 9 years ago
flow-manager.c flow-manager: optimize hash walking 9 years ago
flow-manager.h flow: simplify timeout logic 9 years ago
flow-private.h flow: simplify timeout logic 9 years ago
flow-queue.c
flow-queue.h
flow-storage.c tests: no longer necessary to provide successful return code 10 years ago
flow-storage.h
flow-timeout.c multi-detect: set tenant id on pseudo packets 10 years ago
flow-timeout.h
flow-util.c
flow-util.h autofp: update queue handlers 10 years ago
flow-var.c flow-vars: remove flow locks 9 years ago
flow-var.h
flow-worker.c logging: proper failure on memory allocation error 9 years ago
flow-worker.h flow worker: move UDP app-layer into main function 10 years ago
flow.c flow-manager: optimize hash walking 9 years ago
flow.h flow-manager: optimize hash walking 9 years ago
host-bit.c tests: no longer necessary to provide successful return code 10 years ago
host-bit.h
host-queue.c
host-queue.h
host-storage.c tests: no longer necessary to provide successful return code 10 years ago
host-storage.h
host-timeout.c
host-timeout.h
host.c output: introduce config and perf output levels 10 years ago
host.h
ippair-bit.c tests: no longer necessary to provide successful return code 10 years ago
ippair-bit.h
ippair-queue.c
ippair-queue.h
ippair-storage.c tests: no longer necessary to provide successful return code 10 years ago
ippair-storage.h
ippair-timeout.c
ippair-timeout.h
ippair.c output: introduce config and perf output levels 10 years ago
ippair.h
log-dnslog.c logging: rename registration functions to not have tmm 9 years ago
log-dnslog.h logging: rename registration functions to not have tmm 9 years ago
log-droplog.c logging: hook into flow worker thread 9 years ago
log-droplog.h logging: rename registration functions to not have tmm 9 years ago
log-file.c file-hashing: added configuration options and common parsing code 9 years ago
log-file.h logging: rename registration functions to not have tmm 9 years ago
log-filestore.c file-hashing: added configuration options and common parsing code 9 years ago
log-filestore.h logging: rename registration functions to not have tmm 9 years ago
log-httplog.c logging: rename registration functions to not have tmm 9 years ago
log-httplog.h logging: rename registration functions to not have tmm 9 years ago
log-pcap.c logging: rename registration functions to not have tmm 9 years ago
log-pcap.h logging: rename registration functions to not have tmm 9 years ago
log-stats.c logging: rename registration functions to not have tmm 9 years ago
log-stats.h logging: rename registration functions to not have tmm 9 years ago
log-tcp-data.c logging: rename registration functions to not have tmm 9 years ago
log-tcp-data.h logging: rename registration functions to not have tmm 9 years ago
log-tlslog.c logging: rename registration functions to not have tmm 9 years ago
log-tlslog.h logging: rename registration functions to not have tmm 9 years ago
log-tlsstore.c logging: rename registration functions to not have tmm 9 years ago
log-tlsstore.h logging: rename registration functions to not have tmm 9 years ago
output-file.c logging: remove the packetqueue's from the logging path 9 years ago
output-file.h logging: rename registration functions to not have tmm 9 years ago
output-filedata.c logging: remove the packetqueue's from the logging path 9 years ago
output-filedata.h logging: rename registration functions to not have tmm 9 years ago
output-flow.c logging: use a single entry point for all loggers 9 years ago
output-flow.h logging: convert json flow output to non-thread module 9 years ago
output-json-alert.c logging: hook into flow worker thread 9 years ago
output-json-alert.h logging: rename registration functions to not have tmm 9 years ago
output-json-dns.c logging: rename registration functions to not have tmm 9 years ago
output-json-dns.h logging: rename registration functions to not have tmm 9 years ago
output-json-drop.c logging: hook into flow worker thread 9 years ago
output-json-drop.h logging: rename registration functions to not have tmm 9 years ago
output-json-email-common.c output-json-email: fix memleak 10 years ago
output-json-email-common.h json-email: JsonEmailAddMetadata update 10 years ago
output-json-file.c file-hashing: added configuration options and common parsing code 9 years ago
output-json-file.h logging: rename registration functions to not have tmm 9 years ago
output-json-flow.c logging: rename registration functions to not have tmm 9 years ago
output-json-flow.h logging: rename registration functions to not have tmm 9 years ago
output-json-http.c logging: rename registration functions to not have tmm 9 years ago
output-json-http.h logging: rename registration functions to not have tmm 9 years ago
output-json-netflow.c logging: rename registration functions to not have tmm 9 years ago
output-json-netflow.h logging: rename registration functions to not have tmm 9 years ago
output-json-smtp.c logging: rename registration functions to not have tmm 9 years ago
output-json-smtp.h logging: rename registration functions to not have tmm 9 years ago
output-json-ssh.c logging: hook into flow worker thread 9 years ago
output-json-ssh.h logging: rename registration functions to not have tmm 9 years ago
output-json-stats.c logging: rename registration functions to not have tmm 9 years ago
output-json-stats.h logging: rename registration functions to not have tmm 9 years ago
output-json-template.c logging: rename registration functions to not have tmm 9 years ago
output-json-template.h logging: rename registration functions to not have tmm 9 years ago
output-json-tls.c logging: rename registration functions to not have tmm 9 years ago
output-json-tls.h logging: rename registration functions to not have tmm 9 years ago
output-json.c logging: rename registration functions to not have tmm 9 years ago
output-json.h logging: rename registration functions to not have tmm 9 years ago
output-lua.c lua: remove flow locking from the lua layer 9 years ago
output-lua.h logging: rename registration functions to not have tmm 9 years ago
output-packet.c logging: remove the packetqueue's from the logging path 9 years ago
output-packet.h logging: rename registration functions to not have tmm 9 years ago
output-stats.c logging: use a single entry point for all loggers 9 years ago
output-stats.h logging: convert stats loggers to non-thread module 9 years ago
output-streaming.c logging: remove the packetqueue's from the logging path 9 years ago
output-streaming.h logging: rename registration functions to not have tmm 9 years ago
output-tx.c logging: remove the packetqueue's from the logging path 9 years ago
output-tx.h logging: rename registration functions to not have tmm 9 years ago
output.c logging: proper failure on memory allocation error 9 years ago
output.h logging: remove the packetqueue's from the logging path 9 years ago
packet-queue.c packet pool: make sure packet next ptr is always set 10 years ago
packet-queue.h
pkt-var.c
pkt-var.h
ptxdump.py
queue.h
reputation.c output: introduce config and perf output levels 10 years ago
reputation.h
respond-reject-libnet11.c libnet: work around older libnet type difference 10 years ago
respond-reject-libnet11.h
respond-reject.c
respond-reject.h
runmode-af-packet.c offloading: restore settings on exit 9 years ago
runmode-af-packet.h
runmode-erf-dag.c Update threads to use global thread names. 10 years ago
runmode-erf-dag.h
runmode-erf-file.c logging: hook into flow worker thread 9 years ago
runmode-erf-file.h
runmode-ipfw.c
runmode-ipfw.h
runmode-napatech.c Update threads to use global thread names. 10 years ago
runmode-napatech.h
runmode-netmap.c offloading: implement restoring settings for BSD 9 years ago
runmode-netmap.h
runmode-nflog.c Update threads to use global thread names. 10 years ago
runmode-nflog.h
runmode-nfq.c
runmode-nfq.h
runmode-pcap-file.c logging: hook into flow worker thread 9 years ago
runmode-pcap-file.h
runmode-pcap.c sources: fix netmap compilation and pcap setup 10 years ago
runmode-pcap.h
runmode-pfring.c sources: allow interface definitions to be reordered 10 years ago
runmode-pfring.h
runmode-tile.c flowworker: initial support 10 years ago
runmode-tile.h
runmode-unittests.c tests: setup unit test framework earlier 9 years ago
runmode-unittests.h
runmode-unix-socket.c Removed duplicate include statements. 10 years ago
runmode-unix-socket.h
runmodes.c logging: use a single entry point for all loggers 9 years ago
runmodes.h logging: use a single entry point for all loggers 9 years ago
source-af-packet.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-af-packet.h af-packet: test if fanout is supported before use 9 years ago
source-erf-dag.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-erf-dag.h
source-erf-file.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-erf-file.h
source-ipfw.c pkt acq: introduce break loop API 10 years ago
source-ipfw.h
source-mpipe.c livedev: shorten devname at registration 10 years ago
source-mpipe.h
source-napatech.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-napatech.h
source-netmap.c offloading: restore settings on exit 9 years ago
source-netmap.h netmap: redo config parsing 9 years ago
source-nflog.c pkt acq: introduce break loop API 10 years ago
source-nflog.h
source-nfq-prototypes.h
source-nfq.c pkt acq: introduce break loop API 10 years ago
source-nfq.h
source-pcap-file.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-pcap-file.h
source-pcap.c offloading: restore settings on exit 9 years ago
source-pcap.h
source-pfring.c threads: remove EngineKill & SURICATA_KILL 9 years ago
source-pfring.h pfring pkt acq: keep running on 'pfring_set_cluster' failure when cluster is not required 10 years ago
stream-tcp-inline.c tests: no longer necessary to provide successful return code 10 years ago
stream-tcp-inline.h
stream-tcp-private.h
stream-tcp-reassemble.c output: introduce config and perf output levels 10 years ago
stream-tcp-reassemble.h
stream-tcp-sack.c tcp sack: improve tests 10 years ago
stream-tcp-sack.h
stream-tcp-util.c stream-tcp: improve test function cleanup 10 years ago
stream-tcp-util.h
stream-tcp.c flow-manager: optimize hash walking 9 years ago
stream-tcp.h stream-tcp: no longer register as a thread module 10 years ago
stream.c stream: remove lock from StreamTcpSegmentForEach 9 years ago
stream.h
suricata-common.h common: introduce BIT_U16 9 years ago
suricata.c offloading: make disabling offloading configurable 9 years ago
suricata.h threads: remove EngineKill & SURICATA_KILL 9 years ago
threads-arch-tile.h
threads-debug.h
threads-profile.h
threads.c tests: no longer necessary to provide successful return code 10 years ago
threads.h threads: provide SCGetThreadIdLong for SunOS 9 years ago
threadvars.h threading: remove thread restart logic 9 years ago
tm-modules.c logging: hook into flow worker thread 9 years ago
tm-modules.h logging: remove output priorities: not used 9 years ago
tm-queuehandlers.c
tm-queuehandlers.h
tm-queues.c tm-queue: unify queue name handling 10 years ago
tm-queues.h
tm-threads-common.h logging: hook into flow worker thread 9 years ago
tm-threads.c threads: remove EngineKill & SURICATA_KILL 9 years ago
tm-threads.h threading: remove thread restart logic 9 years ago
tmqh-flow.c output: introduce config and perf output levels 10 years ago
tmqh-flow.h autofp: update queue handlers 10 years ago
tmqh-nfq.c
tmqh-nfq.h
tmqh-packetpool.c logging: hook into flow worker thread 9 years ago
tmqh-packetpool.h threading: avoid autofp deadlock 10 years ago
tmqh-ringbuffer.c
tmqh-ringbuffer.h
tmqh-simple.c
tmqh-simple.h
unix-manager.c threads: remove EngineKill & SURICATA_KILL 9 years ago
unix-manager.h
util-action.c Removed duplicate include statements. 10 years ago
util-action.h
util-affinity.c affinity: fix compilation on SunOS 9 years ago
util-affinity.h affinity: fix compilation on SunOS 9 years ago
util-atomic.c tests: no longer necessary to provide successful return code 10 years ago
util-atomic.h
util-base64.c base64: code style fixups 10 years ago
util-base64.h util-base64: strict mode - all characters must be valid 10 years ago
util-binsearch.c
util-binsearch.h
util-bloomfilter-counting.c tests: no longer necessary to provide successful return code 10 years ago
util-bloomfilter-counting.h
util-bloomfilter.c tests: no longer necessary to provide successful return code 10 years ago
util-bloomfilter.h mpm: constify search func args 10 years ago
util-buffer.c
util-buffer.h eve: fix mishandling of big messages 10 years ago
util-byte.c tests: no longer necessary to provide successful return code 10 years ago
util-byte.h byteswap: fix compilation on SunOS 9 years ago
util-checksum.c
util-checksum.h
util-cidr.c
util-cidr.h
util-classification-config.c tests: no longer necessary to provide successful return code 10 years ago
util-classification-config.h
util-clock.h
util-conf.c unix-socket: add auto mode 9 years ago
util-conf.h unix-socket: add auto mode 9 years ago
util-coredump-config.c output: reduce verbosity on info level 10 years ago
util-coredump-config.h
util-cpu.c profiling: suppress inferior version of UtilCpuGetTicks warning 10 years ago
util-cpu.h
util-crypt.c
util-crypt.h
util-cuda-buffer.c tests: no longer necessary to provide successful return code 10 years ago
util-cuda-buffer.h
util-cuda-handlers.c cuda: fix compilation 10 years ago
util-cuda-handlers.h
util-cuda-vars.c cuda: fix compilation 10 years ago
util-cuda-vars.h
util-cuda.c tests: no longer necessary to provide successful return code 10 years ago
util-cuda.h
util-daemon.c daemon: suppress coverity resource leak warning (CID 400725) 10 years ago
util-daemon.h
util-debug-filters.c
util-debug-filters.h
util-debug.c output: introduce config and perf output levels 10 years ago
util-debug.h output: introduce config and perf output levels 10 years ago
util-decode-asn1.c tests: no longer necessary to provide successful return code 10 years ago
util-decode-asn1.h Update ASN1_MAX_FRAMES to reflect default in suricata.yaml.in 10 years ago
util-decode-der-get.c util-decode-der-get: code cleanup 10 years ago
util-decode-der-get.h
util-decode-der.c afl: add support for AFL PERSISTANT_MODE 10 years ago
util-decode-der.h QA: add --afl-der=<file> 10 years ago
util-decode-mime.c util-decode-mime: remove quote from boundary= string. 9 years ago
util-decode-mime.h QA: expose Mime decoding API to commandline using --afl-mime=<file> 10 years ago
util-detect-file-hash.c file-hashing: added configuration options and common parsing code 9 years ago
util-detect-file-hash.h file-hashing: added configuration options and common parsing code 9 years ago
util-device.c offloading: restore settings on exit 9 years ago
util-device.h offloading: restore settings on exit 9 years ago
util-enum.c
util-enum.h
util-error.c file-hashing: added support for SHA-256 file hashing 9 years ago
util-error.h file-hashing: added support for SHA-256 file hashing 9 years ago
util-file.c file-hashing: restore 'force-md5' 9 years ago
util-file.h file: introduce common flags handling function 9 years ago
util-fix_checksum.c
util-fix_checksum.h
util-fmemopen.c
util-fmemopen.h
util-hash-lookup3.c util-hash-lookup3: Add hashlittle_safe() variant 10 years ago
util-hash-lookup3.h util-hash-lookup3: Add hashlittle_safe() variant 10 years ago
util-hash.c tests: no longer necessary to provide successful return code 10 years ago
util-hash.h
util-hashlist.c tests: no longer necessary to provide successful return code 10 years ago
util-hashlist.h
util-host-info.c util-host-info: fix memleaks 10 years ago
util-host-info.h
util-host-os-info.c tests: no longer necessary to provide successful return code 10 years ago
util-host-os-info.h
util-hyperscan.c spm: add Hyperscan implementation 10 years ago
util-hyperscan.h spm: add Hyperscan implementation 10 years ago
util-ioctl.c offloading: reduce verbosity to 'perf' 9 years ago
util-ioctl.h offloading: restore settings on exit 9 years ago
util-ip.c ip parsing: fix cppcheck negative shift warning 10 years ago
util-ip.h
util-logopenfile-tile.c Use ConfValIsTrue for parsing TILE PCIE logging append value. 10 years ago
util-logopenfile-tile.h
util-logopenfile.c logfile: resolve name clash on SunOS 9 years ago
util-logopenfile.h output-json: fix regression on log prefix handling 10 years ago
util-lua-common.c file-hashing: added support for SHA-256 file hashing 9 years ago
util-lua-common.h
util-lua-dns.c
util-lua-dns.h
util-lua-http.c http body handling: use streaming buffer API 10 years ago
util-lua-http.h
util-lua-smtp.c lua: remove flow locking from the lua layer 9 years ago
util-lua-smtp.h Lua: SMTP support; Addresses feature ticket #1775; v5 9 years ago
util-lua-ssh.c lua: remove flow locking from the lua layer 9 years ago
util-lua-ssh.h lua: SSH support 10 years ago
util-lua-tls.c lua: remove flow locking from the lua layer 9 years ago
util-lua-tls.h lua: TLS support 10 years ago
util-lua.c lua: remove flow locking from the lua layer 9 years ago
util-lua.h lua: remove flow locking from the lua layer 9 years ago
util-magic.c magic: fix broken tests after CentOS6 update 9 years ago
util-magic.h magic: make data arg const 10 years ago
util-mem.h
util-memcmp.c tests: no longer necessary to provide successful return code 10 years ago
util-memcmp.h
util-memcpy.h spm: constify search args 10 years ago
util-memrchr.c tests: no longer necessary to provide successful return code 10 years ago
util-memrchr.h
util-misc.c pcre: initialize var before use 10 years ago
util-misc.h
util-mpm-ac-bs.c tests: no longer necessary to provide successful return code 10 years ago
util-mpm-ac-bs.h mpm: unify & localize mpm pattern (id) handling 10 years ago
util-mpm-ac-cuda-kernel.cu
util-mpm-ac-tile-small.c mpm: constify search func args 10 years ago
util-mpm-ac-tile.c ac-ks: don't allow use on big-endian 10 years ago
util-mpm-ac-tile.h mpm: unify & localize mpm pattern (id) handling 10 years ago
util-mpm-ac.c ac: allow use of 31bits of pid space instead of 16 10 years ago
util-mpm-ac.h mpm: unify & localize mpm pattern (id) handling 10 years ago
util-mpm-hs.c output: reduce verbosity on info level 10 years ago
util-mpm-hs.h mpm: add Hyperscan integration 10 years ago
util-mpm.c mpm: remove useless flag from factory 10 years ago
util-mpm.h mpm: add "auto" default for mpm-algo 10 years ago
util-optimize.h
util-path.c
util-path.h
util-pidfile.c
util-pidfile.h
util-pool-thread.c tests: no longer necessary to provide successful return code 10 years ago
util-pool-thread.h
util-pool.c tests: no longer necessary to provide successful return code 10 years ago
util-pool.h
util-print.c ipv6: fix alignment issue in address to string code 10 years ago
util-print.h
util-privs.c privs: add capability CAP_SYS_NICE. 9 years ago
util-privs.h
util-profiling-keywords.c output: introduce config and perf output levels 10 years ago
util-profiling-locks.c profiling: fix lock profile compilation 10 years ago
util-profiling-locks.h
util-profiling-rulegroups.c output: introduce config and perf output levels 10 years ago
util-profiling-rules.c output: introduce config and perf output levels 10 years ago
util-profiling.c tls: add (mpm) keyword tls_cert_subject 9 years ago
util-profiling.h logging: add profiling back for non-tmm loggers 9 years ago
util-proto-name.c
util-proto-name.h
util-radix-tree.c tests: no longer necessary to provide successful return code 10 years ago
util-radix-tree.h
util-random.c
util-random.h
util-reference-config.c tests: no longer necessary to provide successful return code 10 years ago
util-reference-config.h
util-ringbuffer.c tests: no longer necessary to provide successful return code 10 years ago
util-ringbuffer.h
util-rohash.c
util-rohash.h
util-rule-vars.c tests: no longer necessary to provide successful return code 10 years ago
util-rule-vars.h
util-runmodes.c logging: hook into flow worker thread 9 years ago
util-runmodes.h runmodes: constify names 10 years ago
util-running-modes.c cmdline: fix --list-keywords and --list-app-layer-protos 9 years ago
util-running-modes.h
util-signal.c
util-signal.h
util-spm-bm.c spm: add and use new SPM API 10 years ago
util-spm-bm.h spm: add and use new SPM API 10 years ago
util-spm-bs.c
util-spm-bs.h
util-spm-bs2bm.c
util-spm-bs2bm.h
util-spm-hs.c mpm-hs,spm-hs: don't call hs_scan() for zero bytes 10 years ago
util-spm-hs.h spm: add Hyperscan implementation 10 years ago
util-spm.c spm: handle null ptrs in destroy funcs gracefully 10 years ago
util-spm.h spm: add Hyperscan implementation 10 years ago
util-storage.c tests: no longer necessary to provide successful return code 10 years ago
util-storage.h
util-streaming-buffer.c streaming: buffer API 10 years ago
util-streaming-buffer.h streaming: buffer API 10 years ago
util-strlcatu.c
util-strlcpyu.c
util-syslog.c
util-syslog.h
util-threshold-config.c util-threshold-config: parse suppress rules with spaces in ip list 9 years ago
util-threshold-config.h
util-time.c util-time: new function to know if live or offline 9 years ago
util-time.h util-time: new function to know if live or offline 9 years ago
util-unittest-helper.c time: improve offline time handling 10 years ago
util-unittest-helper.h
util-unittest.c testing: new test macros, new testing documentation group. 10 years ago
util-unittest.h unittest: FAIL macro to unconditionally fail a test 9 years ago
util-validate.h flowworker: initial support 10 years ago
util-var-name.c
util-var-name.h
util-var.c detect: optimize rule address parsing 9 years ago
util-var.h detect: optimize rule address parsing 9 years ago
util-vector.h
win32-misc.c
win32-misc.h
win32-service.c
win32-service.h
win32-syslog.h