Skip to content
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

Smb hashmap/v9 #12036

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open

Smb hashmap/v9 #12036

wants to merge 11 commits into from

Conversation

victorjulien
Copy link
Member

LruCache use for all hashmaps in smb state. This will bound each of them.

https://redmine.openinfosecfoundation.org/issues/5672

Replaces #12028.

Don't tag the session as gap'd when the GAP is in a precise location:

1. in "skip" data, where the GAP just fits the skip data

2. in file data, where we pass the GAP on to the file

This reduces load of GAP post-processing that is unnecessary in these
case.
Use `lru` crate. Rename to reflect this.

Add `app-layer.protocols.smb.max-guid-cache-size` to control the max
size of the LRU cache.

Ticket: OISF#5672.
Rename to read_offset_cache.

Add `app-layer.protocols.smb.max-read-offset-cache-size` option to
control the limit.

Ticket: OISF#5672.
Turn the map mapping the smb session key to smb tree into a lru cache,
limited to 1024 by default.

Add `app-layer.protocols.smb.max-tree-cache-size` option to control the
limit.

Ticket: OISF#5672.
Reimplement the ssnguid2vec_map HashMap as a LruCache.

Since this is a DCERPC record cache, name it as such.

Default size is 128. Can be controlled by
`app-layer.protocols.smb.max-dcerpc-frag-cache-size`.

Ticket: OISF#5672.
Generic ssn2vec_map was a HashMap used for mapping session key to
different types of vector data:
- GUID
- filename
- share name

Turn this into a bounded LruCache. Rename to ssn2vec_cache.

Size of the cache is 512 by default, and can be configured using:

`app-layer.protocols.smb.max-session-cache-size`

Ticket: OISF#5672.
Copy link

codecov bot commented Oct 25, 2024

Codecov Report

Attention: Patch coverage is 86.90096% with 41 lines in your changes missing coverage. Please review.

Project coverage is 83.40%. Comparing base (89aa525) to head (2684860).

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #12036      +/-   ##
==========================================
- Coverage   83.42%   83.40%   -0.02%     
==========================================
  Files         910      910              
  Lines      257642   257671      +29     
==========================================
- Hits       214934   214922      -12     
- Misses      42708    42749      +41     
Flag Coverage Δ
fuzzcorpus 61.55% <86.58%> (-0.02%) ⬇️
livemode 19.41% <3.19%> (+<0.01%) ⬆️
pcap 44.40% <73.48%> (-0.10%) ⬇️
suricata-verify 62.72% <74.44%> (-0.05%) ⬇️
unittests 59.36% <15.01%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

@suricata-qa
Copy link

Information: QA ran without warnings.

Pipeline 23185

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants