On Tue, Sep 16, 2025 at 1:25 AM <chia-yu.ch...@nokia-bell-labs.com> wrote:
>
> From: Chia-Yu Chang <chia-yu.ch...@nokia-bell-labs.com>
>
> As SACK blocks tend to eat all option space when there are
> many holes, it is useful to compromise on sending many SACK
> blocks in every ACK and attempt to fit the AccECN option
> there by reducing the number of SACK blocks. However, it will
> never go below two SACK blocks because of the AccECN option.
>
> As the AccECN option is often not put to every ACK, the space
> hijack is usually only temporary. Depending on the reuqired
> AccECN fields (can be either 3, 2, 1, or 0, cf. Table 5 in
> AccECN spec) and the NOPs used for alignment of other
> TCP options, up to two SACK blocks will be reduced. Please
> find below tables for more details:
>
> +====================+=========================================+
> | Number of | Required | Remaining |  Number of  |    Final    |
> |   SACK    |  AccECN  |  option   |  reduced    |  number of  |
> |  blocks   |  fields  |  spaces   | SACK blocks | SACK blocks |
> +===========+==========+===========+=============+=============+
> |  x (<=2)  |  0 to 3  |    any    |      0      |      x      |
> +-----------+----------+-----------+-------------+-------------+
> |     3     |    0     |    any    |      0      |      3      |
> |     3     |    1     |    <4     |      1      |      2      |
> |     3     |    1     |    >=4    |      0      |      3      |
> |     3     |    2     |    <8     |      1      |      2      |
> |     3     |    2     |    >=8    |      0      |      3      |
> |     3     |    3     |    <12    |      1      |      2      |
> |     3     |    3     |    >=12   |      0      |      3      |
> +-----------+----------+-----------+-------------+-------------+
> |  y (>=4)  |    0     |    any    |      0      |      y      |
> |  y (>=4)  |    1     |    <4     |      1      |     y-1     |
> |  y (>=4)  |    1     |    >=4    |      0      |      y      |
> |  y (>=4)  |    2     |    <8     |      1      |     y-1     |
> |  y (>=4)  |    2     |    >=8    |      0      |      y      |
> |  y (>=4)  |    3     |    <4     |      2      |     y-2     |
> |  y (>=4)  |    3     |    <12    |      1      |     y-1     |
> |  y (>=4)  |    3     |    >=12   |      0      |      y      |
> +===========+==========+===========+=============+=============+
>
> Signed-off-by: Chia-Yu Chang <chia-yu.ch...@nokia-bell-labs.com>
> Co-developed-by: Ilpo Järvinen <i...@kernel.org>
> Signed-off-by: Ilpo Järvinen <i...@kernel.org>

Reviewed-by: Eric Dumazet <eduma...@google.com>

Reply via email to