Advertise RUDP media resend expiry

This commit is contained in:
Meta Vens 2026-06-18 21:48:14 +01:00
commit aad338464e
5 changed files with 19 additions and 4 deletions

View file

@ -857,6 +857,7 @@ fn tcp_framed_transport_profiles(
max_payload_bytes: None,
max_fragment_bytes: None,
max_pending_reliable_packets: None,
reliable_expire_after_ms: None,
},
CultNetTransportChannel {
channel_id: "state".to_string(),
@ -865,6 +866,7 @@ fn tcp_framed_transport_profiles(
max_payload_bytes: None,
max_fragment_bytes: None,
max_pending_reliable_packets: None,
reliable_expire_after_ms: None,
},
],
}],

View file

@ -128,6 +128,8 @@ pub struct CultNetTransportChannel {
pub max_fragment_bytes: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_pending_reliable_packets: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reliable_expire_after_ms: Option<u64>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]

View file

@ -1068,6 +1068,7 @@ pub fn create_rudp_transport_profile(
max_payload_bytes: options.max_payload_bytes,
max_fragment_bytes: options.max_fragment_bytes,
max_pending_reliable_packets: options.max_pending_reliable_packets,
reliable_expire_after_ms: None,
},
CultNetTransportChannel {
channel_id: "latest".to_string(),
@ -1076,6 +1077,7 @@ pub fn create_rudp_transport_profile(
max_payload_bytes: options.max_payload_bytes,
max_fragment_bytes: options.max_fragment_bytes,
max_pending_reliable_packets: options.max_pending_reliable_packets,
reliable_expire_after_ms: None,
},
CultNetTransportChannel {
channel_id: "realtime".to_string(),
@ -1084,6 +1086,7 @@ pub fn create_rudp_transport_profile(
max_payload_bytes: options.max_payload_bytes,
max_fragment_bytes: options.max_fragment_bytes,
max_pending_reliable_packets: options.max_pending_reliable_packets,
reliable_expire_after_ms: None,
},
CultNetTransportChannel {
channel_id: "media".to_string(),
@ -1092,6 +1095,7 @@ pub fn create_rudp_transport_profile(
max_payload_bytes: options.max_payload_bytes,
max_fragment_bytes: options.max_fragment_bytes,
max_pending_reliable_packets: options.max_pending_reliable_packets,
reliable_expire_after_ms: Some(MEDIA_RELIABLE_EXPIRE_AFTER_MS),
},
],
}],

View file

@ -124,6 +124,7 @@ pub fn create_tcp_framed_transport_profile(
max_payload_bytes: options.max_payload_bytes,
max_fragment_bytes: options.max_fragment_bytes,
max_pending_reliable_packets: None,
reliable_expire_after_ms: None,
}],
}],
}

View file

@ -165,6 +165,7 @@ fn cultnet_schema_messages_round_trip_through_messagepack_frames() -> Result<()>
max_payload_bytes: None,
max_fragment_bytes: None,
max_pending_reliable_packets: None,
reliable_expire_after_ms: None,
}],
}],
}]),
@ -287,6 +288,7 @@ fn rudp_transport_profile_advertises_state_and_realtime_channels() {
channel.delivery,
channel.ordering,
channel.max_pending_reliable_packets,
channel.reliable_expire_after_ms,
)
})
.collect::<Vec<_>>();
@ -297,25 +299,29 @@ fn rudp_transport_profile_advertises_state_and_realtime_channels() {
"schema",
CultNetTransportDelivery::Reliable,
CultNetTransportOrdering::Ordered,
Some(64)
Some(64),
None
),
(
"latest",
CultNetTransportDelivery::Unreliable,
CultNetTransportOrdering::Sequenced,
Some(64)
Some(64),
None
),
(
"realtime",
CultNetTransportDelivery::Unreliable,
CultNetTransportOrdering::Unordered,
Some(64)
Some(64),
None
),
(
"media",
CultNetTransportDelivery::Reliable,
CultNetTransportOrdering::Unordered,
Some(64)
Some(64),
Some(75)
),
]
);