Skip to content

next/1430/20260708/v1#15831

Open
victorjulien wants to merge 1 commit into
OISF:mainfrom
victorjulien:next/1430/20260708/v1
Open

next/1430/20260708/v1#15831
victorjulien wants to merge 1 commit into
OISF:mainfrom
victorjulien:next/1430/20260708/v1

Conversation

@victorjulien

Copy link
Copy Markdown
Member

Extend the app-layer-protocol keyword to accept a pipe-separated list of
protocol values, so a single rule can match any of several protocols:

    app-layer-protocol:[!]<proto1>|<proto2>[|...][,<qualifier>]...;

A non-negated list matches when the flow's protocol equals any listed value
(OR); a negated list matches when it equals none of them (NOR). The
single-value form and the trailing mode qualifier are unchanged.

Matching keeps the historical AppProtoEquals() equivalences by default
(dns/doh2, http/http1/http2, dcerpc/smb, ...). An `exact` qualifier selects
strict identity matching with no equivalences and no http umbrella; it
combines with a direction mode in any order. Because a flow is never the
generic ALPROTO_HTTP, `http,exact` is rejected at load.

Values are expanded once at rule load into an effective match-set bitmask, so
the per-packet match is a single bitmask test. Single-value rules remain
prefilterable; multi-value rules are excluded from prefiltering and an
explicit prefilter on them is rejected. Conflicting keyword combinations
(duplicate or overlapping negations, mixed positive/negated) are rejected at
load. Engine-analysis reports the effective match set.

Ticket: 7705
@victorjulien victorjulien requested a review from jufajardini as a code owner July 8, 2026 17:41

@jasonish jasonish left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Staging looks OK.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

NOTE: This PR may contain new authors.

@suricata-qa

Copy link
Copy Markdown

WARNING:

field baseline test %
SURI_TLPR1_stats_chk
.app_layer.flow.ftp_data 604 661 109.44%
.app_layer.error.ftp.parser 17 0 -

Pipeline = 32501

@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.77899% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.97%. Comparing base (1731805) to head (43bc2db).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #15831      +/-   ##
==========================================
+ Coverage   82.93%   82.97%   +0.04%     
==========================================
  Files        1003     1003              
  Lines      275204   275506     +302     
==========================================
+ Hits       228239   228606     +367     
+ Misses      46965    46900      -65     
Flag Coverage Δ
fuzzcorpus 61.50% <75.37%> (+0.01%) ⬆️
livemode 18.36% <0.00%> (+0.02%) ⬆️
netns 22.67% <0.00%> (-0.03%) ⬇️
pcap 45.32% <19.02%> (+<0.01%) ⬆️
suricata-verify 66.90% <59.32%> (-0.01%) ⬇️
unittests 58.48% <75.05%> (+0.03%) ⬆️

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

4 participants