• Mubashir Adnan Qureshi's avatar
    tcp: add PLB functionality for TCP · 1a91bb7c
    Mubashir Adnan Qureshi authored
    Congestion control algorithms track PLB state and cause the connection
    to trigger a path change when either of the 2 conditions is satisfied:
    
    - No packets are in flight and (# consecutive congested rounds >=
      sysctl_tcp_plb_idle_rehash_rounds)
    - (# consecutive congested rounds >= sysctl_tcp_plb_rehash_rounds)
    
    A round (RTT) is marked as congested when congestion signal
    (ECN ce_ratio) over an RTT is greater than sysctl_tcp_plb_cong_thresh.
    In the event of RTO, PLB (via tcp_write_timeout()) triggers a path
    change and disables congestion-triggered path changes for random time
    between (sysctl_tcp_plb_suspend_rto_sec, 2*sysctl_tcp_plb_suspend_rto_sec)
    to avoid hopping onto the "connectivity blackhole". RTO-triggered
    path changes can still happen during this cool-off period.
    Signed-off-by: default avatarMubashir Adnan Qureshi <mubashirq@google.com>
    Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1a91bb7c
tcp_plb.c 3.6 KB