Skip to content

Commit

Permalink
Rewrite congestion and recovery code
Browse files Browse the repository at this point in the history
This is a significant change that replaces most of the congestion
and recovery control implementation with an implementation that
mostly ports the one from google/quiche. IMHO The change nicely
breaks up congestion, recovery and pacing into separate, easily
mainatinable and extensible pieces, and is also more idiomatic.
The advantage of porting from google/quiche is that at least
the cubic and pacing codes are very well tested, and require
minimal review. The new pacing implementaion is also more accurate.
  • Loading branch information
vkrasnov committed Apr 24, 2023
1 parent 0b37da1 commit 76afb3b
Show file tree
Hide file tree
Showing 27 changed files with 6,263 additions and 5,625 deletions.
1 change: 1 addition & 0 deletions apps/src/bin/quiche-server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,7 @@ fn main() {
client.loss_rate = loss_rate;
}

#[allow(deprecated)]
let max_send_burst =
client.conn.send_quantum().min(client.max_send_burst) /
client.max_datagram_size *
Expand Down
1 change: 1 addition & 0 deletions quiche/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ foreign-types-shared = { version = "0.3.0", optional = true }
qlog = { version = "0.9", path = "../qlog", optional = true }
sfv = { version = "0.9", optional = true }
smallvec = { version = "1.10", features = ["serde", "union"] }
enum_dispatch = "0.3"

[target."cfg(windows)".dependencies]
winapi = { version = "0.3", features = ["wincrypt", "ws2def", "ws2ipdef", "ws2tcpip"] }
Expand Down
Loading

0 comments on commit 76afb3b

Please sign in to comment.