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

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

Client: fallback to TCP after X MPC #477

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

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant