Re: [PATCH mptcp-net v2] mptcp: avoid combining some incoming suboptions
Matthieu Baerts <[email protected]> Tue, 28 Jul 2026 11:19:03 +0200
| Newsgroups | dev.linux.lists.mptcp |
|---|---|
| Organization | NGI0 Core |
| Message-ID | <[email protected]> |
Hello, On 22/07/2026 00:57, Matthieu Baerts (NGI0) wrote: > Some MPTCP suboptions are mutually exclusive according to the RFC8684, > but also because in different places, the code doesn't expect some > combinations to be present. That's specially true for suboptions that > would be present twice, but with different attributes. > > The new restrictions are the same as the ones applied on the output > side, with mptcp_write_options. The same rules can be reused: > > Which options can be used together? > > X: mutually exclusive > O: often used together > C: can be used together in some cases > P: could be used together but we prefer not to (optimisations) > > | Opt: | MPC | MPJ | DSS | ADD | RM | PRIO | FAIL | FC | > |------|------|------|------|------|------|------|------|------| > | MPC |------|------|------|------|------|------|------|------| > | MPJ | X |------|------|------|------|------|------|------| > | DSS | X | X |------|------|------|------|------|------| > | ADD | X | X | P |------|------|------|------|------| > | RM | C | C | C | P |------|------|------|------| > | PRIO | X | C | C | C | C |------|------|------| > | FAIL | X | X | C | X | X | X |------|------| > | FC | X | X | X | X | X | X | X |------| > | RST | X | X | X | X | X | X | O | O | > |------|------|------|------|------|------|------|------|------| > > The only difference is with the 'P': another stack could send and > ADD_ADDR with other suboptions (DSS, RM_ADDR), and this should be > allowed. > > A point of attention is with the MP_CAPABLE: it could be used with a > RM_ADDR, but there is no reason to add it with a SYN. Note that even > with a 4th ACK, it doesn't seem to be useful, except when IDs are known > in advance via another channel. Better not to break that. > > Also, in mp_opt->suboptions, there is also a bit reserved to the > checksum, which can be used in an MP_CAPABLE and a DSS. Each time a DSS > option can be used in parallel with another option, the checksum can be > set, so the verification is combined into a new OPTIONS_MPTCP_DSS macro. I hope that's OK if I apply this patch: I would rather send it upstream soon to avoid even more AI-generated reports when combining incompatible options. New patches for t/upstream-net and t/upstream: - f34e22f63cde: mptcp: avoid combining some incoming suboptions - Results: 2668d30f6377..aa8e7044082a (export-net) - Results: a596e199424d..f630d7e8910a (export) Tests are now in progress: - export-net: https://github.com/multipath-tcp/mptcp_net-next/commit/bffeddcac4e2dc23c53eeb0b2cc0251289dd1948/checks - export: https://github.com/multipath-tcp/mptcp_net-next/commit/5daa351aeda080c736302d73482d93f9b78e5aa8/checks Cheers, Matt -- Sponsored by the NGI0 Core fund.