tcp_bbr: fix bbr pacing rate for internal pacing
This commit makes BBR use only the MSS (without any headers) to calculate pacing rates when internal TCP-layer pacing is used. This is necessary to achieve the correct pacing behavior in this case, since tcp_internal_pacing() uses only the payload length to calculate pacing delays. Signed-off-by: Kevin Yang <yyd@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: Neal Cardwell <ncardwell@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
3f484a6e76
commit
cadefe5f58
@@ -1184,6 +1184,17 @@ static inline bool tcp_is_cwnd_limited(const struct sock *sk)
|
||||
return tp->is_cwnd_limited;
|
||||
}
|
||||
|
||||
/* BBR congestion control needs pacing.
|
||||
* Same remark for SO_MAX_PACING_RATE.
|
||||
* sch_fq packet scheduler is efficiently handling pacing,
|
||||
* but is not always installed/used.
|
||||
* Return true if TCP stack should pace packets itself.
|
||||
*/
|
||||
static inline bool tcp_needs_internal_pacing(const struct sock *sk)
|
||||
{
|
||||
return smp_load_acquire(&sk->sk_pacing_status) == SK_PACING_NEEDED;
|
||||
}
|
||||
|
||||
/* Something is really bad, we could not queue an additional packet,
|
||||
* because qdisc is full or receiver sent a 0 window.
|
||||
* We do not want to add fuel to the fire, or abort too early,
|
||||
|
Reference in New Issue
Block a user