Skip to content

sockopt: support TCP_MD5SIG and TCP_MD5SIG_EXT for transparent integrations #575

@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

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions