fix(remoteingress-core): improve tunnel liveness handling and enable TCP keepalive for accepted client sockets
This commit is contained in:
@@ -32,6 +32,15 @@ pub fn encode_window_update(stream_id: u32, frame_type: u8, increment: u32) -> V
|
||||
encode_frame(stream_id, frame_type, &increment.to_be_bytes())
|
||||
}
|
||||
|
||||
/// Compute the target per-stream window size based on the number of active streams.
|
||||
/// Total memory budget is ~32MB shared across all streams. As more streams are active,
|
||||
/// each gets a smaller window. This adapts to current demand — few streams get high
|
||||
/// throughput, many streams save memory and reduce control frame pressure.
|
||||
pub fn compute_window_for_stream_count(active: u32) -> u32 {
|
||||
let per_stream = (32 * 1024 * 1024u64) / (active.max(1) as u64);
|
||||
per_stream.clamp(64 * 1024, INITIAL_STREAM_WINDOW as u64) as u32
|
||||
}
|
||||
|
||||
/// Decode a WINDOW_UPDATE payload into a byte increment. Returns None if payload is malformed.
|
||||
pub fn decode_window_update(payload: &[u8]) -> Option<u32> {
|
||||
if payload.len() != 4 {
|
||||
|
||||
Reference in New Issue
Block a user