Pure RFC 9002-style NewReno congestion controller.
Admission is reservation based: queued datagrams consume congestion credit until they are definitively failed, acknowledged, or declared lost.
Summary
Types
Functions
@spec available?(t(), non_neg_integer()) :: boolean()
@spec new(keyword()) :: initial_state()
@spec on_ack(t(), non_neg_integer()) :: t()
@spec on_loss(t(), non_neg_integer()) :: t()
@spec pacing_delay(t(), non_neg_integer()) :: non_neg_integer()
@spec release(t(), non_neg_integer()) :: t()
@spec reserve(t(), non_neg_integer()) :: {:ok, t()} | {:error, :congestion_limited}