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

revert: remove ttl information from datagram #1940

Merged
merged 1 commit into from
Jun 26, 2024

Conversation

mxinden
Copy link
Collaborator

@mxinden mxinden commented Jun 25, 2024

#1568 introduced TTL information to datagrams. On the input path it would take the ttl information, but not act on it. On the output path it would set only "the default TTL on many OSes".

ttl: 64, // This is the default TTL on many OSes.

This commit removes the ttl information from Datagram, thus reverting a subset of #1568.

This is partially motivated by #1920, introducing quinn-udp as the IO library of choice, which does not support reading and writing TTL.

See also discussion in #1920 (comment).

mozilla#1568 introduced TTL information to
datagrams. On the input path it would take the ttl information, but not act on
it. On the output path it would set only "the default TTL on many OSes".

https://github.com/mozilla/neqo/blob/66504908e5fa070a8a5fa67d8b5a201d2c9a5cc5/neqo-transport/src/path.rs#L576

This commit removes the ttl information from `Datagram`, thus reverting a subset
of mozilla#1568.

This is partially motivated by mozilla#1920,
introducing `quinn-udp` as the IO library of choice, which does not support
reading and writing TTL.

See also discussion in
mozilla#1920 (comment).
@mxinden mxinden marked this pull request as ready for review June 25, 2024 18:36
Copy link

Failed Interop Tests

QUIC Interop Runner, client vs. server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

Copy link

codecov bot commented Jun 25, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.81%. Comparing base (6650490) to head (ffa09ab).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1940      +/-   ##
==========================================
- Coverage   94.82%   94.81%   -0.01%     
==========================================
  Files         110      110              
  Lines       35792    35773      -19     
==========================================
- Hits        33938    33918      -20     
- Misses       1854     1855       +1     

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

Copy link

Benchmark results

Performance differences relative to 6650490.

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [198.33 ns 198.75 ns 199.20 ns]
       change: [-0.0247% +0.3423% +0.7452%] (p = 0.08 > 0.05)
Found 22 outliers among 100 measurements (22.00%)
  1 (1.00%) low mild
  8 (8.00%) high mild
  13 (13.00%) high severe
coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [240.42 ns 241.09 ns 241.75 ns]
       change: [-0.8169% -0.2711% +0.1807%] (p = 0.32 > 0.05)
Found 19 outliers among 100 measurements (19.00%)
  19 (19.00%) high severe
coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [239.63 ns 240.44 ns 241.40 ns]
       change: [-0.2489% +0.2375% +0.7500%] (p = 0.35 > 0.05)
Found 12 outliers among 100 measurements (12.00%)
  3 (3.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:   [222.17 ns 222.42 ns 222.71 ns]
       change: [-7.8148% -2.4951% +0.6130%] (p = 0.56 > 0.05)
Found 13 outliers among 100 measurements (13.00%)
  5 (5.00%) high mild
  8 (8.00%) high severe
RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [117.92 ms 117.99 ms 118.05 ms]
       change: [+0.0494% +0.1219% +0.1984%] (p = 0.00 < 0.05)

transfer/Run multiple transfers with varying seeds
time: [119.54 ms 119.82 ms 120.10 ms]
thrpt: [33.307 MiB/s 33.383 MiB/s 33.461 MiB/s]
change:
time: [-0.7389% -0.4262% -0.1231%] (p = 0.01 < 0.05)
thrpt: [+0.1233% +0.4281% +0.7444%]
Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild

transfer/Run multiple transfers with the same seed: No change in performance detected.
       time:   [120.27 ms 120.43 ms 120.59 ms]
       thrpt:  [33.170 MiB/s 33.215 MiB/s 33.259 MiB/s]
change:
       time:   [-0.2415% -0.0447% +0.1509%] (p = 0.65 > 0.05)
       thrpt:  [-0.1507% +0.0447% +0.2421%]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
1-conn/1-100mb-resp (aka. Download)/client: 💔 Performance has regressed.
       time:   [1.0994 s 1.1267 s 1.1536 s]
       thrpt:  [86.685 MiB/s 88.755 MiB/s 90.962 MiB/s]
change:
       time:   [+1.1742% +4.5030% +7.6273%] (p = 0.02 < 0.05)
       thrpt:  [-7.0868% -4.3089% -1.1606%]

1-conn/10_000-parallel-1b-resp (aka. RPS)/client
time: [384.77 ms 387.97 ms 391.22 ms]
thrpt: [25.561 Kelem/s 25.775 Kelem/s 25.990 Kelem/s]
change:
time: [-1.4983% -0.3550% +0.8209%] (p = 0.56 > 0.05)
thrpt: [-0.8142% +0.3563% +1.5211%]
No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

1-conn/1-1b-resp (aka. HPS)/client: No change in performance detected.
       time:   [41.839 ms 41.955 ms 42.095 ms]
       thrpt:  [23.756  elem/s 23.835  elem/s 23.901  elem/s]
change:
       time:   [-0.0689% +0.3329% +0.7387%] (p = 0.11 > 0.05)
       thrpt:  [-0.7333% -0.3318% +0.0690%]
Found 25 outliers among 100 measurements (25.00%)
  15 (15.00%) low severe
  2 (2.00%) low mild
  1 (1.00%) high mild
  7 (7.00%) high severe

Client/server transfer results

Transfer of 33554432 bytes over loopback.

Client Server CC Pacing Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 147.8 ± 38.0 99.9 276.2 1.00
neqo msquic reno on 263.8 ± 9.8 254.8 279.5 1.00
neqo msquic reno 274.6 ± 11.1 257.7 287.3 1.00
neqo msquic cubic on 260.4 ± 7.5 253.2 278.4 1.00
neqo msquic cubic 264.2 ± 8.8 249.8 280.9 1.00
msquic neqo reno on 926.9 ± 16.2 901.9 953.7 1.00
msquic neqo reno 904.2 ± 10.0 894.7 920.0 1.00
msquic neqo cubic on 888.2 ± 15.7 864.4 916.5 1.00
msquic neqo cubic 881.2 ± 14.2 864.0 900.2 1.00
neqo neqo reno on 928.8 ± 12.2 913.8 945.1 1.00
neqo neqo reno 880.3 ± 23.9 822.9 907.9 1.00
neqo neqo cubic on 893.0 ± 17.1 869.9 916.2 1.00
neqo neqo cubic 876.1 ± 8.1 863.2 894.6 1.00

⬇️ Download logs

Copy link

Firefox builds for this PR

The following builds are available for testing. Crossed-out builds did not succeed.

@KershawChang KershawChang added this pull request to the merge queue Jun 26, 2024
Merged via the queue into mozilla:main with commit cf06329 Jun 26, 2024
56 checks passed
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.

2 participants