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

devguide/internals: kickstart packet pipeline chapter - v1 #8793

Closed

Conversation

jufajardini
Copy link
Contributor

Link to redmine ticket:
https://redmine.openinfosecfoundation.org/issues/6030

Describe changes:

  • create files and infrastructure for other sections/chapters related to suricata internals and packet pipeline
  • start the packet pipeline chapter

TODO:

  • create and add images
  • decide on names for sections and chapters
    -- add references to related modules once names are defined
  • decide on main takeaways for packet pipeline
  • ...

Add introduction, main takeaways, different runmodes etc.

Task OISF#6030
@jufajardini jufajardini added the typo/doc update No code change : only doc or typo fixes label May 2, 2023
@codecov
Copy link

codecov bot commented May 2, 2023

Codecov Report

Merging #8793 (9d80c6d) into master (22485b3) will decrease coverage by 0.05%.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8793      +/-   ##
==========================================
- Coverage   82.18%   82.14%   -0.05%     
==========================================
  Files         969      969              
  Lines      272739   272739              
==========================================
- Hits       224164   224036     -128     
- Misses      48575    48703     +128     
Flag Coverage Δ
fuzzcorpus 64.16% <ø> (-0.13%) ⬇️
suricata-verify 60.32% <ø> (-0.04%) ⬇️
unittests 62.87% <ø> (ø)

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

The pipeline either runs in a single thread (runmode *single* or *workers*) or
split in 2 stages (*autofp*).

A pipeline is created by Suricata's ``RunMode`` and stored in per thread
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

runmodes are defined by the capture method (e.g. runmode-af-packet.c), but generally implement only 3 predefined modes: workers, autofp, single

===============

- Packet Pool
- Packet Capture Module
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gets a packet from the NIC


- Packet Pool
- Packet Capture Module
- Packet Decode Module
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

decodes the packet, starting with a capture method specific decoder, then calling into the generic suricata packet decoders like decode-ethernet.c and decode-ipv4.c

- Packet Pool
- Packet Capture Module
- Packet Decode Module
- Flow Worker Module (check the *Engines* chapter for more)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

runs the main tracking, detection and logging loop:

  • flow handling
  • TCP stream
  • app-layer parsing
  • detect
  • output / logging

@jufajardini
Copy link
Contributor Author

Work continues in #8813

@jufajardini jufajardini closed this May 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
typo/doc update No code change : only doc or typo fixes
2 participants