[meta] Fast UDP for Firefox
Categories
(Core :: Networking, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| relnote-firefox | --- | 140+ |
People
(Reporter: mail, Assigned: mail)
References
(Depends on 3 open bugs)
Details
(Keywords: meta, Whiteboard: [necko-triaged])
Taken from the corresponding Project Plan - Fast UDP for Firefox:
Goals
- A Rust crate supporting the fastest current multi-packet UDP I/O path on at least current tier-1 platforms, with a fallback to sendmmsg/recvmmsg or single-packet I/O to support other tier platforms or older OS releases/hardware. Support for sending and receiving ancillary metadata, such as ECN and DSCP codepoints, IP TTL information, received ICMP errors for sent packets, etc. Developed following Rust best practices for test coverage, documentation, etc.
- Modifications to the neqo QUIC stack to use the new UDP I/O crate, and a comprehensive analysis of the achievable performance improvements, identifying (and ideally fixing) other bottlenecks that limit achieving full performance.
- A patch to Firefox that replaces current uses of PR_SendTo and PR_RecvFrom with the new Rust crate.
- Modifications to the QUIC stack for in-place construction/parsing and encryption/decryption of batches of packets, using memory provided by the caller.
- Optional/Stretch: Drop-in C/C++ replacement bindings for PR_SendTo and PR_RecvFrom that use the new crate, with an API that enables the calling code to easily move to multi-packet I/O.
Updated•1 year ago
|
Updated•1 year ago
|
Release Note Request (optional, but appreciated)
[Why is this notable]:
Previously Firefox's QUIC stack has used NSPR to send and receive UDP datagrams, where NSPR only offered a limited, dated and slow set of IO system calls.
This project moves Firefox's QUIC stack to a modern UDP IO library, entirely written in Rust, using operating system specific advanced system calls.
As a result Firefox can now make use of various system specific UDP IO optimizations, improving upload and download speed. It has access to IP meta data, thus enabling Firefox to do ECN. And lastly, given the use of a modern programming language, we can iterate faster and with more confidence.
[Affects Firefox for Android]:
Yes
[Suggested wording]:
Firefox's QUIC stack is moving to a Rust based UDP IO stack, leveraging various operating system specific modern system calls, thus improving HTTP/3 upload and download speed.
[Links (documentation, blog post, etc)]:
None
Status:
- Enabled on Firefox Nightly.
- Rolled out on Firefox Beta via Nimbus experiment.
- Pending roll out to Firefox Release, planned for Firefox 140 in order to include Bug 1962095.
- Thus I assume this would need the "This feature is part of a progressive roll out." flag like in the Firefox 138 Profile Manager notes.
Note that we have started rolling this feature out to Firefox 140 users (see this Mozilla Experimenter rollout.
Should this new feature be mentioned in the release notes? I filed a request above. Maybe Ryan, can you help here?
Updated•3 months ago
|
Comment 4•3 months ago
|
||
Added to the Fx140.0.4 release notes, please allow 30 minutes for the site to update.
Description
•