fix(proto): Don't probe server migrations from the client side but allow probing#663
Merged
Conversation
The QNT impl did re-use may_migrate to see on whether packets are allowed from a remote. But probing packets do not trigger migration and the two need to be treated separately. Fixes #654.
|
Documentation for this PR has been generated and is available at: https://n0-computer.github.io/noq/pr/663/docs/noq/ Last updated: 2026-05-21T13:35:31Z |
Performance Comparison Report
|
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5296.5 Mbps | 7974.7 Mbps | -33.6% | 96.7% / 146.0% |
| medium-concurrent | 5338.8 Mbps | 7559.5 Mbps | -29.4% | 97.3% / 149.0% |
| medium-single | 3815.8 Mbps | 4749.1 Mbps | -19.7% | 91.8% / 100.0% |
| small-concurrent | 3651.0 Mbps | 5323.8 Mbps | -31.4% | 94.4% / 102.0% |
| small-single | 3470.8 Mbps | 4874.4 Mbps | -28.8% | 98.0% / 152.0% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 3073.2 Mbps | 3955.6 Mbps | -22.3% |
| lan | 782.4 Mbps | 810.3 Mbps | -3.4% |
| lossy | 69.8 Mbps | 69.8 Mbps | ~0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 27.7% slower on average
ee4067577fbc14942426a1df961a320555376537 - artifacts
Raw Benchmarks (localhost)
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5441.6 Mbps | 7957.9 Mbps | -31.6% | 97.7% / 148.0% |
| medium-concurrent | 5492.7 Mbps | 7547.9 Mbps | -27.2% | 97.7% / 149.0% |
| medium-single | 3832.4 Mbps | 4749.2 Mbps | -19.3% | 93.1% / 101.0% |
| small-concurrent | 3875.5 Mbps | 5378.9 Mbps | -28.0% | 95.9% / 102.0% |
| small-single | 3525.9 Mbps | 4864.1 Mbps | -27.5% | 97.9% / 153.0% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 3094.9 Mbps | 3948.2 Mbps | -21.6% |
| lan | 796.3 Mbps | 810.4 Mbps | -1.7% |
| lossy | 69.9 Mbps | 69.8 Mbps | ~0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 26.0% slower on average
e31e74dc40c3ec836952d79ae4cbfba19b210fc2 - artifacts
Raw Benchmarks (localhost)
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5171.7 Mbps | 7939.4 Mbps | -34.9% | 93.1% / 98.0% |
| medium-concurrent | 5407.7 Mbps | 7517.5 Mbps | -28.1% | 93.3% / 99.0% |
| medium-single | 4064.2 Mbps | 4504.3 Mbps | -9.8% | 93.8% / 100.0% |
| small-concurrent | 3833.4 Mbps | 5204.7 Mbps | -26.3% | 99.0% / 150.0% |
| small-single | 3481.5 Mbps | 4729.6 Mbps | -26.4% | 98.6% / 151.0% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 3110.7 Mbps | 4051.2 Mbps | -23.2% |
| lan | 782.5 Mbps | 810.4 Mbps | -3.4% |
| lossy | 69.8 Mbps | 55.9 Mbps | +25.0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 25.5% slower on average
6e9ace1ce4aad903013645c9c5963c428d0d2cc3 - artifacts
Raw Benchmarks (localhost)
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5466.9 Mbps | 7988.6 Mbps | -31.6% | 98.5% / 150.0% |
| medium-concurrent | 5437.6 Mbps | 7703.9 Mbps | -29.4% | 91.8% / 96.9% |
| medium-single | 3917.9 Mbps | 4749.4 Mbps | -17.5% | 92.2% / 101.0% |
| small-concurrent | 3826.6 Mbps | 5297.1 Mbps | -27.8% | 95.8% / 102.0% |
| small-single | 3543.7 Mbps | 4660.3 Mbps | -24.0% | 96.5% / 154.0% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 2975.1 Mbps | 4139.0 Mbps | -28.1% |
| lan | 782.5 Mbps | 796.4 Mbps | -1.7% |
| lossy | 69.8 Mbps | 69.8 Mbps | ~0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 26.4% slower on average
8e284ce46d94f3e894c0ded9d3a4005e4f53d125 - artifacts
Raw Benchmarks (localhost)
| Scenario | noq | upstream | Delta | CPU (avg/max) |
|---|---|---|---|---|
| large-single | 5385.6 Mbps | 7960.1 Mbps | -32.3% | 94.8% / 100.0% |
| medium-concurrent | 5406.9 Mbps | 7736.0 Mbps | -30.1% | 95.5% / 100.0% |
| medium-single | 4484.6 Mbps | 4651.9 Mbps | -3.6% | 97.0% / 152.0% |
| small-concurrent | 3766.2 Mbps | 5320.6 Mbps | -29.2% | 92.2% / 102.0% |
| small-single | 3478.0 Mbps | 4817.4 Mbps | -27.8% | 90.3% / 98.3% |
Netsim Benchmarks (network simulation)
| Condition | noq | upstream | Delta |
|---|---|---|---|
| ideal | 3021.0 Mbps | 4023.0 Mbps | -24.9% |
| lan | 782.5 Mbps | 810.3 Mbps | -3.4% |
| lossy | 69.9 Mbps | 55.9 Mbps | +25.0% |
| wan | 83.8 Mbps | 83.8 Mbps | ~0% |
Summary
noq is 25.3% slower on average
flub
requested changes
May 21, 2026
Collaborator
flub
left a comment
There was a problem hiding this comment.
changes lgtm, though I'd like to see the comments fixed
flub
approved these changes
May 21, 2026
4 tasks
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.
Description
Subsumes #660
Fixes #654
peer_may_probefrompeer_may_migrate(taken from fix(qnt): distinguish may_probe from may_migrate #660 )peer_may_migratereturnfalsefor the client side to avoid triggering migration probing on clientsChange checklist