Skip to content

sockopt: support TCP_MD5SIG and TCP_MD5SIG_EXT for transparent integrations #575

Open
@matttbe

Description

@matttbe

@YutaroHayakawa opened this bug report recently: golang/go#74643

In short, MPTCP is now used by default in Go, but that cause an issue in the gobgp project, because they need to use TCP_MD5SIG socket option which is currently not supported by MPTCP.

MPTCP is not compatible with TCP MD5, because the latter uses 18 bytes (+ 2 for the padding), not leaving enough room for MPTCP (+ timestamps + SACKS). If MD5 is somehow requested, the connection will already fallback to TCP anyway. So we could support TCP MD5 with MPTCP socket, simply by setting it in the first TCP subflow, which will cause a fallback to MPTCP, and that's it: we keep the compatibility with TCP.

This can then be considered as a fix, not to break the compatibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions