Rtt jump detection HMM approach - #2556
Merged
Merged
Conversation
eli-lebeau
force-pushed
the
rtt-jump-detection-hmm
branch
from
July 24, 2026 17:16
efdc043 to
cff7ed2
Compare
inamdarminaz
approved these changes
Jul 24, 2026
eli-lebeau
force-pushed
the
rtt-jump-detection-hmm
branch
from
July 24, 2026 20:53
209a1da to
15fe648
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal: Add a detector for counting persistent jumps in RTT using a Hidden Markov Model
Implementation details:
Internal
BbrRttJumpDetectorsetting with three modes:Disabled, which remains the default.GlobalMin, which detects sustained RTT increases above3xtheconnection-lifetime minimum RTT.
Hmm, a 3-state Hidden Markov Model detector using forward filtering,warmup, adaptive per-connection elevation, and RTT-scaled dwell gates.
The detector runs from the BBRv2 network model after full bandwidth has been
reached, so startup/self-queueing RTT changes do not immediately count as
persistent jumps.
Confirmed persistent jump episodes are counted in
rtt_persistent_jump_countEach RTT sample is evaluated as such:
The bin boundaries and emission matrix use predetermined values derived from offline training.