s2n-quic
s2n-quic copied to clipboard
Investigate TCP BBRv2 behavior in bbr2_inflight_hi_from_lost_skb
Problem:
The Linux TCP implementation of BBRv2 treats the calculation of a negative inflight_prev
value as an error case: https://github.com/google/bbr/blob/1a45fd4faf30229a3d3116de7bfe9d2f933d3562/net/ipv4/tcp_bbr2.c#L1520-L1525
In the s2n-quic implementation of inflight_hi_from_lost_packet
, we use saturating subtraction to prevent inflight_prev
going negative. It should be possible otherwise for inflight_prev
to be negative, if the first packet sent when bytes_in_flight
is zero was lost.
Solution:
Investigate why the TCP impl treats this as an error case, as TCP may be doing some upstream filtering that makes it not possible for inflight_prev
to be negative