feat(client): implement DSCP negotiation and socket traffic class application

Apply the negotiated DSCP value to the UDP socket after a successful session open and clear it before closing to support network-level quality of service. This change adds platform-specific socket option handling for IPv4 TOS and IPv6 Traffic Class.
This commit is contained in:
Nils Andreas Svee committed 2026-05-10 20:56:43 +07:00
1 parent ab95489f20
commit 063214b83b
8 files changed
+419 -1

No files matched your search

@@ -392,6 +392,19 @@ fn backend_basic_open_echo_close() {
client.close(ClientTimestamp::now()).unwrap();
}
#[test]
fn backend_dscp_smoke() {
let mut params = default_params();
params.dscp = 46;
let server = start_open_server(params.clone(), None);
let mut client = Client::connect(config_for_params(server.addr, &params)).unwrap();
let outcome = client.open(ClientTimestamp::now()).unwrap();
assert!(matches!(outcome, irtt_client::OpenOutcome::Started { .. }));
client.close(ClientTimestamp::now()).unwrap();
server.join();
}
#[test]
fn backend_received_stats_smoke() {
for mode in [