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

chore: Make the TLS epoch an enum type #2320

Merged
merged 11 commits into from
Feb 11, 2025

Conversation

larseggert
Copy link
Collaborator

@larseggert larseggert commented Jan 8, 2025

And replace CryptoSpace with it.

Copy link

codecov bot commented Jan 8, 2025

Codecov Report

Attention: Patch coverage is 94.36620% with 8 lines in your changes missing coverage. Please review.

Project coverage is 95.28%. Comparing base (9734cf2) to head (c14338f).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
neqo-crypto/src/secrets.rs 63.63% 4 Missing ⚠️
neqo-transport/src/crypto.rs 96.29% 2 Missing ⚠️
neqo-crypto/src/agentio.rs 75.00% 1 Missing ⚠️
neqo-crypto/src/constants.rs 93.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2320      +/-   ##
==========================================
- Coverage   95.28%   95.28%   -0.01%     
==========================================
  Files         114      115       +1     
  Lines       37111    37135      +24     
  Branches    37111    37135      +24     
==========================================
+ Hits        35363    35385      +22     
- Misses       1742     1746       +4     
+ Partials        6        4       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Jan 8, 2025

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to cb058cb.

neqo-latest as client

neqo-latest as server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Copy link

github-actions bot commented Jan 8, 2025

Benchmark results

Performance differences relative to 9734cf2.

decode 4096 bytes, mask ff: 💔 Performance has regressed.
       time:   [12.314 µs 12.349 µs 12.390 µs]
       change: [+13.020% +13.429% +13.845%] (p = 0.00 < 0.05)

Found 16 outliers among 100 measurements (16.00%)
1 (1.00%) low severe
5 (5.00%) low mild
2 (2.00%) high mild
8 (8.00%) high severe

decode 1048576 bytes, mask ff: 💚 Performance has improved.
       time:   [2.8325 ms 2.8401 ms 2.8494 ms]
       change: [-9.7816% -9.3962% -9.0079%] (p = 0.00 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) low mild
1 (1.00%) high mild
6 (6.00%) high severe

decode 4096 bytes, mask 7f: 💔 Performance has regressed.
       time:   [20.854 µs 20.918 µs 20.990 µs]
       change: [+17.761% +18.208% +18.616%] (p = 0.00 < 0.05)

Found 18 outliers among 100 measurements (18.00%)
3 (3.00%) low severe
2 (2.00%) high mild
13 (13.00%) high severe

decode 1048576 bytes, mask 7f: 💚 Performance has improved.
       time:   [4.5423 ms 4.5537 ms 4.5668 ms]
       change: [-16.227% -15.925% -15.620%] (p = 0.00 < 0.05)

Found 14 outliers among 100 measurements (14.00%)
14 (14.00%) high severe

decode 4096 bytes, mask 3f: 💔 Performance has regressed.
       time:   [8.2830 µs 8.3300 µs 8.3852 µs]
       change: [+25.596% +26.274% +26.945%] (p = 0.00 < 0.05)

Found 17 outliers among 100 measurements (17.00%)
7 (7.00%) low mild
1 (1.00%) high mild
9 (9.00%) high severe

decode 1048576 bytes, mask 3f: 💚 Performance has improved.
       time:   [1.5874 ms 1.5929 ms 1.5997 ms]
       change: [-9.7066% -9.4028% -9.0224%] (p = 0.00 < 0.05)

Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) high mild
5 (5.00%) high severe

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [91.225 ns 91.503 ns 91.787 ns]
       change: [-0.2906% +0.2458% +0.7534%] (p = 0.38 > 0.05)

Found 10 outliers among 100 measurements (10.00%)
7 (7.00%) high mild
3 (3.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [109.71 ns 110.06 ns 110.44 ns]
       change: [-0.0507% +0.3499% +0.7906%] (p = 0.11 > 0.05)

Found 15 outliers among 100 measurements (15.00%)
1 (1.00%) low mild
2 (2.00%) high mild
12 (12.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [109.49 ns 109.96 ns 110.52 ns]
       change: [-0.0519% +0.4522% +0.9648%] (p = 0.09 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
4 (4.00%) low mild
1 (1.00%) high mild
8 (8.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [93.489 ns 93.674 ns 93.876 ns]
       change: [-1.0446% +0.0859% +1.2141%] (p = 0.89 > 0.05)

Found 10 outliers among 100 measurements (10.00%)
6 (6.00%) high mild
4 (4.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [112.25 ms 112.30 ms 112.36 ms]
       change: [+0.6482% +0.7128% +0.7750%] (p = 0.00 < 0.05)

Found 14 outliers among 100 measurements (14.00%)
6 (6.00%) low mild
8 (8.00%) high mild

SentPackets::take_ranges: No change in performance detected.
       time:   [5.2620 µs 5.4723 µs 5.7101 µs]
       change: [-2.5933% +0.5063% +3.6915%] (p = 0.75 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) high mild
4 (4.00%) high severe

transfer/pacing-false/varying-seeds: 💔 Performance has regressed.
       time:   [38.387 ms 38.482 ms 38.583 ms]
       change: [+4.1797% +4.4955% +4.8231%] (p = 0.00 < 0.05)

Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
1 (1.00%) high mild
1 (1.00%) high severe

transfer/pacing-true/varying-seeds: 💔 Performance has regressed.
       time:   [38.738 ms 38.819 ms 38.912 ms]
       change: [+6.0303% +6.3357% +6.6457%] (p = 0.00 < 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe

transfer/pacing-false/same-seed: 💔 Performance has regressed.
       time:   [38.615 ms 38.694 ms 38.778 ms]
       change: [+5.7123% +6.0040% +6.2966%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe

transfer/pacing-true/same-seed: 💔 Performance has regressed.
       time:   [38.707 ms 38.776 ms 38.850 ms]
       change: [+5.8883% +6.1466% +6.4174%] (p = 0.00 < 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [854.38 ms 864.50 ms 874.78 ms]
       thrpt:  [114.31 MiB/s 115.67 MiB/s 117.04 MiB/s]
change:
       time:   [-1.3192% +0.2439% +1.8754%] (p = 0.77 > 0.05)
       thrpt:  [-1.8409% -0.2433% +1.3368%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [318.33 ms 321.61 ms 324.87 ms]
       thrpt:  [30.782 Kelem/s 31.093 Kelem/s 31.414 Kelem/s]
change:
       time:   [-1.0163% +0.5062% +2.1012%] (p = 0.52 > 0.05)
       thrpt:  [-2.0580% -0.5037% +1.0268%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [25.378 ms 25.532 ms 25.687 ms]
       thrpt:  [38.930  elem/s 39.167  elem/s 39.404  elem/s]
change:
       time:   [-1.0509% -0.2055% +0.7036%] (p = 0.65 > 0.05)
       thrpt:  [-0.6987% +0.2059% +1.0620%]

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild

1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: 💚 Performance has improved.
       time:   [1.7671 s 1.7869 s 1.8068 s]
       thrpt:  [55.346 MiB/s 55.962 MiB/s 56.590 MiB/s]
change:
       time:   [-8.3708% -6.9650% -5.5595%] (p = 0.00 < 0.05)
       thrpt:  [+5.8868% +7.4865% +9.1356%]

Client/server transfer results

Performance differences relative to 9734cf2.

Transfer of 33554432 bytes over loopback, 30 runs. All unit-less numbers are in milliseconds.

Client Server CC Pacing Mean ± σ Min Max Δ main Δ main
neqo neqo reno on 541.5 ± 40.7 471.9 630.8 -9.4 -0.4%
neqo neqo reno 577.6 ± 143.8 450.9 1140.9 38.7 1.7%
neqo neqo cubic on 535.9 ± 28.7 466.7 587.5 -9.0 -0.4%
neqo neqo cubic 530.3 ± 30.9 470.6 568.6 -13.7 -0.6%
google neqo reno on 908.8 ± 99.1 657.9 1108.9 4.3 0.1%
google neqo reno 900.7 ± 103.8 639.0 1089.5 -1.1 -0.0%
google neqo cubic on 893.8 ± 95.0 658.7 993.6 -9.7 -0.3%
google neqo cubic 891.2 ± 98.2 650.1 996.4 -4.2 -0.1%
google google 544.0 ± 42.2 520.3 759.1 3.6 0.2%
neqo msquic reno on 229.0 ± 51.9 202.2 491.9 11.3 1.3%
neqo msquic reno 236.4 ± 57.4 203.1 526.7 16.1 1.8%
neqo msquic cubic on 223.4 ± 31.6 201.8 378.5 3.6 0.4%
neqo msquic cubic 223.1 ± 21.8 203.7 322.3 6.2 0.7%
msquic msquic 112.1 ± 10.7 98.1 141.4 -4.9 -1.1%

⬇️ Download logs

Copy link
Collaborator

@mxinden mxinden left a comment

Choose a reason for hiding this comment

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

👍 the more we can enforce constraints through the type system the better.

Copy link
Collaborator

@mxinden mxinden left a comment

Choose a reason for hiding this comment

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

Looks good to me.

Let's give Martin a chance to comment on #2320 (comment)

Signed-off-by: Lars Eggert <lars@eggert.org>
Copy link
Member

@martinthomson martinthomson left a comment

Choose a reason for hiding this comment

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

Looks basically good.

One major request. Would you mind deleting CryptoSpace and replacing it with the new Epoch?

@larseggert larseggert merged commit db807a9 into mozilla:main Feb 11, 2025
70 of 72 checks passed
@larseggert larseggert deleted the chore-epoch-enum branch February 12, 2025 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants