Open
Description
@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.