Skip to content

Adding new RTCConfiguration targetLatency parameter#247

Merged
youennf merged 5 commits intow3c:mainfrom
youennf:expectedLatency-option
Dec 19, 2025
Merged

Adding new RTCConfiguration targetLatency parameter#247
youennf merged 5 commits intow3c:mainfrom
youennf:expectedLatency-option

Conversation

@youennf
Copy link
Copy Markdown
Contributor

@youennf youennf commented Nov 12, 2025

@youennf
Copy link
Copy Markdown
Contributor Author

youennf commented Nov 12, 2025

Fixes #244

@youennf youennf force-pushed the expectedLatency-option branch from e6c4e24 to b7be19f Compare November 12, 2025 13:20
webkit-commit-queue pushed a commit to youennf/WebKit that referenced this pull request Nov 25, 2025
rdar://165386600
https://bugs.webkit.org/show_bug.cgi?id=303083

Reviewed by Jean-Yves Avenard.

When we set service class to video interactive, we also need to set traffic to video interactive,
so as to benefit from network slicing.
For now, we force traffic class to video interactive when service class is enabled.
In the future, we might finetune this heuristic based on w3c/webrtc-extensions#247.

Canonical link: https://commits.webkit.org/303528@main
Comment thread index.html Outdated
</p>
<pre class="idl">
enum RTCConfigurationExpectedLatency {
"best",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Consider using a more concrete term. Maybe "lowest"?

Comment thread index.html Outdated
<td>
<p>
The User Agent is expected to set up the network link to optimize the connection latency.
For that purpose, it SHOULD use techniques like network slicing if available.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is an undefined reference. Two browsers implementing this don't have any means of understanding whether or not they are achieving the same thing.

Comment thread index.html Outdated
<td>
<p>
The User Agent is expected to set up the network link to optimize the connection latency.
For that purpose, it SHOULD use techniques like network slicing if available.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

try to see if you can cite a spec for network slicing here

@youennf
Copy link
Copy Markdown
Contributor Author

youennf commented Dec 4, 2025

In terms of meaningful links to browser developers, we could use these informal references:

We could go deeper and mention 5G specs (3GPP TS 28.530) but I am unsure how much this would be meaningful for browser developers.

@lgrahl
Copy link
Copy Markdown

lgrahl commented Dec 4, 2025

Can you elaborate on the expectation of this parameter? It looks rather straightforward for iOS but what is it supposed to do with regards to the rather complicated asynchronous flow on Android (see https://developer.android.com/develop/connectivity/5g/use-network-slicing)?

Comment thread index.html Outdated
"no-expectation"
};
partial dictionary RTCConfiguration {
RTCConfigurationExpectedLatency expectedLatency = "lowest";
Copy link
Copy Markdown
Contributor Author

@youennf youennf Dec 11, 2025

Choose a reason for hiding this comment

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

Plan is to change name to targetLatency or maybe latencyTarget

Comment thread index.html Outdated
<pre class="idl">
enum RTCConfigurationExpectedLatency {
"lowest",
"no-expectation"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Use none instead

@xingri
Copy link
Copy Markdown

xingri commented Dec 12, 2025

Can you elaborate on the expectation of this parameter? It looks rather straightforward for iOS but what is it supposed to do with regards to the rather complicated asynchronous flow on Android (see https://developer.android.com/develop/connectivity/5g/use-network-slicing)?

@lgrahl Please also refer to https://source.android.com/docs/core/connect/5g-slicing.
Our implementation (NVIDIA) relies on PRIORITIZE_LATENCY OSAppId mapping to the appropriate slice. The bindProcessToNetwork() API can be used to direct requests to a network with this capability.
Google defines additional OSAppIds for other use cases (e.g., PRIORITIZE_BANDWIDTH, PRIORITIZE_UNIFIED_COMMUNICATIONS, CBS).

For this to work, carriers must configure a URSP rule for PRIORITIZE_LATENCY and associate it with a low‑latency slice; otherwise, traffic defaults to the standard slice.

@youennf youennf requested review from alvestrand and guidou December 12, 2025 14:14
@jan-ivar jan-ivar changed the title Adding new RTCConfiguration expectedLatency parameter Adding new RTCConfiguration targetLatency parameter Dec 18, 2025
Comment thread index.html Outdated
Comment thread index.html Outdated
Comment thread index.html Outdated
@youennf youennf merged commit 9f2a0a1 into w3c:main Dec 19, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants