https://datatracker.ietf.org/doc/draft-briscoe-iccrg-prague-congestion-control/
Notes from reading the draft:
$\alpha$ is EWMA (exponentially weighted moving average) of the ECN marking fraction, and is updated once per $\text{rtt\_virt}$: $\alpha = g * (\text{frac} - \alpha)$, where $g$ is the gain (usually 1/16), and $\text{frac}$ is the fraction of acknowledged packets that carried ECN feedback over the previous $\text{rtt\_virt}$. It's a value between 0 and 1.
On ECN feedback, the slow start threshold $\text{ssthresh}$ is:
$\text{ssthresh} = (1 - \frac{\alpha}{2}) \cdot \text{cwnd}$
On each ACK:
$\text{cwnd} += (\text{acked\_sacked} - \text{ece\_delta}) \cdot \frac{\text{ai\_per\_rtt}}{\text{cwnd}}$
https://datatracker.ietf.org/doc/draft-briscoe-iccrg-prague-congestion-control/
Notes from reading the draft:
On ECN feedback, the slow start threshold$\text{ssthresh}$ is:
$\text{ssthresh} = (1 - \frac{\alpha}{2}) \cdot \text{cwnd}$
On each ACK:
$\text{cwnd} += (\text{acked\_sacked} - \text{ece\_delta}) \cdot \frac{\text{ai\_per\_rtt}}{\text{cwnd}}$