Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Client: fallback to TCP after X MPC #477

Closed
matttbe opened this issue Feb 20, 2024 · 2 comments
Closed

Client: fallback to TCP after X MPC #477

matttbe opened this issue Feb 20, 2024 · 2 comments
Assignees

Comments

@matttbe
Copy link
Member

matttbe commented Feb 20, 2024

MPC packets could be explicitly dropped or reset by firewall somewhere in the network, e.g. with:

iptables -t filter -A FORWARD -p tcp --tcp-option 30 -j DROP

It sounds safer to fallback to TCP after X attempts (defined in a sysctl option?), "just in case".

Later, this could be improved with a cache, see #57.

@matttbe
Copy link
Member Author

matttbe commented Feb 28, 2024

From the last weekly meeting:

  • it seems really needed because in some places packets having unknown options are dropped: it has been seen (but we don't have figures showing how frequent it is)
  • recommendations:
    • try 5 times (when using net.ipv4.tcp_syn_linear_timeouts), then fallback to "plain" TCP
    • use a cache technique to avoid doing that all the time, e.g.:

@matttbe matttbe self-assigned this Mar 25, 2024
@matttbe
Copy link
Member Author

matttbe commented Mar 28, 2024

From the last weekly meeting:

  • that seems important if MPTCP is used by default on the client side
  • but probably hard to have it backported
  • important to have a sysctl to control the blackhole + an easy way to check if this feature is available
  • fallback cannot be too "optimised"/smart because the userspace can already interract with the MPTCP socket at that point
    • we can change the ULP ops
    • to do something smart, the MPTCP socket should inherit from the TCP one: waste of memory, etc. just for the client side and to support fallbacks, probably not worth it.

matttbe added a commit to matttbe/packetdrill that referenced this issue Sep 2, 2024
After 3 failed attempts, there is a fallback to TCP.

Link: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this issue Sep 2, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
MPTCPimporter pushed a commit that referenced this issue Sep 2, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Message-Id: <[email protected]>
matttbe added a commit that referenced this issue Sep 9, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
@matttbe matttbe closed this as completed in 45ef089 Sep 9, 2024
matttbe added a commit that referenced this issue Sep 9, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
matttbe added a commit that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
matttbe added a commit that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
matttbe added a commit that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
matttbe added a commit that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
matttbe added a commit that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 10, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
matttbe added a commit that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
matttbe added a commit that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP, and try
again.

Closes: #477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 11, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: NipaLocal <nipa@local>
kuba-moo pushed a commit to linux-netdev/testing that referenced this issue Sep 12, 2024
Some middleboxes might be nasty with MPTCP, and decide to drop packets
with MPTCP options, instead of just dropping the MPTCP options (or
letting them pass...).

In this case, it sounds better to fallback to "plain" TCP after 2
retransmissions, and try again.

Closes: multipath-tcp/mptcp_net-next#477
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Link: https://patch.msgid.link/20240909-net-next-mptcp-fallback-x-mpc-v1-2-da7ebb4cd2a3@kernel.org
Signed-off-by: Jakub Kicinski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: Done
Development

No branches or pull requests

1 participant