Skip to content

net: add func (*TCPConn) MultipathTCP() (bool, error) #59166

@matttbe

Description

@matttbe

Hello,

While working on #56539, I noticed I misunderstood the use of MultipathTCP() when it was discussed.

Despite the fact Apple and others have been pushing to avoid that, it can happen some middleboxes explicitly or accidentally block MPTCP, e.g. transparent proxy, some firewalls blocking all TCP extensions, etc. When this happens, MPTCP connections will fallback to TCP and continue to work with only one path.

App developers explicitly requiring MPTCP might want to know if a fallback to TCP has been done. The idea would then be to add a method to check such a thing, e.g.

pkg net, method (*TCPConn) MultipathTCP() (bool, error)

Similar to other TCPConn methods (KeepAlive, No Delay, Linger, etc.), an error can be emitted if the connection is not OK.

The Linux kernel can tell us that: example.

A draft implementation has been shared on Gerrit.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions