Skip to content

Reset the connection once "MPTCP has been verified" instead of a fallback #519

@matttbe

Description

@matttbe

This is what is recommended (SHOULD) by the RFC.

"MPTCP has been verified" means:

  • a valid DATA_ACK has been received
  • or data for more than the initial window: this implies a DATA_ACK has been received from the other side.

Reason: If we fallback after that point, there is a risk of corruption: even if that looks weird, an implementation could do a reinjection at the MPTCP level on the same subflow, so from TCP point of view, that's considered as new data (I guess it's an issue if this re-injection is done when the fallback is going to happen).

I suggest not to change the "fully established" logic to continue allowing sending ADD_ADDR ASAP, etc.: if it is received and a new subflow is created, we can also consider this as "MPTCP has been verified". IOW, I suggest continuing using allow_infinite_fallback, but it should be disabled once "MPTCP has been verified".

(Linked to #518)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Needs triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions