Skip to content

dpdk: add support for segmented mbufs#14738

Open
mmaatuq wants to merge 1 commit intoOISF:mainfrom
mmaatuq:dpdk-segmented-mbufs-6012-v2
Open

dpdk: add support for segmented mbufs#14738
mmaatuq wants to merge 1 commit intoOISF:mainfrom
mmaatuq:dpdk-segmented-mbufs-6012-v2

Conversation

@mmaatuq
Copy link
Contributor

@mmaatuq mmaatuq commented Feb 2, 2026

Make sure these boxes are checked accordingly before submitting your Pull Request -- thank you.

Contribution style:

Our Contribution agreements:

Changes (if applicable):

  • [] I have updated the User Guide (in doc/userguide/) to reflect the changes made
  • [] I have updated the JSON schema (in etc/schema.json) to reflect all logging changes
    (including schema descriptions)
  • [] I have created a ticket at

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

Describe changes:
When running as a secondary DPDK process, Suricata may receive
segmented (chained) mbufs from the primary application. Previously,
these packets would trigger a warning and potentially be processed
incorrectly since only the first segment was accessible.

Now Suricata handles segmented mbufs by:

  1. Attempting to linearize in-place with rte_pktmbuf_linearize()
  2. If linearization fails (insufficient tailroom), copying all segments into the packet's internal buffer

A one-time warning is still logged advising users to increase
mbuf size (secondary) or MTU (primary) for better performance.

Ticket: 6012

Provide values to any of the below to override the defaults.

  • To use a Suricata-Verify or Suricata-Update pull request,
    link to the pull request in the respective _BRANCH variable.
  • Leave unused overrides blank or remove.

SV_REPO=
SV_BRANCH=OISF/suricata-verify#2835
SU_REPO=
SU_BRANCH=

changes since #14541:

  • address CR
  • rebase to latest main.

  When running as a secondary DPDK process, Suricata may receive
  segmented (chained) mbufs from the primary application. Previously,
  these packets would trigger a warning and potentially be processed
  incorrectly since only the first segment was accessible.

  Now Suricata handles segmented mbufs by:
  1. Attempting to linearize in-place with rte_pktmbuf_linearize()
  2. If linearization fails (insufficient tailroom), copying all
     segments into the packet's internal buffer

  A one-time warning is still logged advising users to increase
  mbuf size (secondary) or MTU (primary) for better performance.

  Ticket: 6012

Signed-off-by: mmaatuq <mmaatuq3@gatech.edu>
@mmaatuq mmaatuq requested a review from victorjulien as a code owner February 2, 2026 15:53
@victorjulien
Copy link
Member

CI failures are due to the SV test not being rebased, I think.

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.

3 participants