Message ID | cover.1627281326.git.geliangtang@xiaomi.com (mailing list archive) |
---|---|
Headers | show |
Series | MP_FAIL support | expand |
On Mon, 26 Jul 2021, Geliang Tang wrote: > From: Geliang Tang <geliangtang@xiaomi.com> > > v5: > - patch 1, change "ret = true;" to "return true;" > - patch 3, in the single-subflow case, send MP_FAIL and receive the > echo, then temporarily handled by reset. > Hi Geliang - Thanks for the v5 changes. The changes are looking good in terms of manual code review. Since the selftest changes in patch 5 only confirm that MP_FAIL was not sent, I'm going to do some testing tomorrow to force checksum failures in single and multiple subflow cases so I can check some packet traces. It would be good to have some packetdrill checksum test cases to cover that, but we don't yet. - Mat > v4: > - just deal with the multiple subflows case, put the single subflow > case into the new 'infinite mapping' part. > > v3: > - respond with MP_FAIL > - add single subflow check > - add infinite mapping sending and receiving > - export/20210626T054902 > > v2: > - MP_FAIL logic: > * Peer B send a DSS to peer A, and the data has been modify by the > middleboxes, then peer A detects the bad checksum. > * In the multiple subflows case, peer A sends MP_FAIL+RST back to peer B, > and peer A discards the data following the bad data sequence number. Peer > B receives this MP_FAIL+RST, and close this subflow. > * In the single subflow case, using the simple implementation, peer A > sends MP_FAIL back to peer B, and peer A fallback to a regular TCP. Peer > B receives this MP_FAIL, and fallback to a regular TCP. > > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/52 > > Geliang Tang (5): > mptcp: MP_FAIL suboption sending > mptcp: MP_FAIL suboption receiving > mptcp: send out MP_FAIL when data checksum fails > mptcp: add the mibs for MP_FAIL > selftests: mptcp: add MP_FAIL mibs check > > include/net/mptcp.h | 5 +- > net/mptcp/mib.c | 2 + > net/mptcp/mib.h | 2 + > net/mptcp/options.c | 78 ++++++++++++++++++- > net/mptcp/pm.c | 20 +++++ > net/mptcp/protocol.h | 20 +++++ > net/mptcp/subflow.c | 18 +++++ > .../testing/selftests/net/mptcp/mptcp_join.sh | 38 +++++++++ > 8 files changed, 178 insertions(+), 5 deletions(-) > > -- > 2.31.1 > > > -- Mat Martineau Intel
Hi Mat, Mat Martineau <mathew.j.martineau@linux.intel.com> 于2021年7月28日周三 上午8:27写道: > > On Mon, 26 Jul 2021, Geliang Tang wrote: > > > From: Geliang Tang <geliangtang@xiaomi.com> > > > > v5: > > - patch 1, change "ret = true;" to "return true;" > > - patch 3, in the single-subflow case, send MP_FAIL and receive the > > echo, then temporarily handled by reset. > > > > Hi Geliang - > > Thanks for the v5 changes. The changes are looking good in terms of manual > code review. Since the selftest changes in patch 5 only confirm that > MP_FAIL was not sent, I'm going to do some testing tomorrow to force > checksum failures in single and multiple subflow cases so I can check some > packet traces. It would be good to have some packetdrill checksum test > cases to cover that, but we don't yet. I use a similar test for MP_FAIL to force checksum failures. I have put it in the attachment. Thanks, -Geliang > > > - Mat > > > > v4: > > - just deal with the multiple subflows case, put the single subflow > > case into the new 'infinite mapping' part. > > > > v3: > > - respond with MP_FAIL > > - add single subflow check > > - add infinite mapping sending and receiving > > - export/20210626T054902 > > > > v2: > > - MP_FAIL logic: > > * Peer B send a DSS to peer A, and the data has been modify by the > > middleboxes, then peer A detects the bad checksum. > > * In the multiple subflows case, peer A sends MP_FAIL+RST back to peer B, > > and peer A discards the data following the bad data sequence number. Peer > > B receives this MP_FAIL+RST, and close this subflow. > > * In the single subflow case, using the simple implementation, peer A > > sends MP_FAIL back to peer B, and peer A fallback to a regular TCP. Peer > > B receives this MP_FAIL, and fallback to a regular TCP. > > > > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/52 > > > > Geliang Tang (5): > > mptcp: MP_FAIL suboption sending > > mptcp: MP_FAIL suboption receiving > > mptcp: send out MP_FAIL when data checksum fails > > mptcp: add the mibs for MP_FAIL > > selftests: mptcp: add MP_FAIL mibs check > > > > include/net/mptcp.h | 5 +- > > net/mptcp/mib.c | 2 + > > net/mptcp/mib.h | 2 + > > net/mptcp/options.c | 78 ++++++++++++++++++- > > net/mptcp/pm.c | 20 +++++ > > net/mptcp/protocol.h | 20 +++++ > > net/mptcp/subflow.c | 18 +++++ > > .../testing/selftests/net/mptcp/mptcp_join.sh | 38 +++++++++ > > 8 files changed, 178 insertions(+), 5 deletions(-) > > > > -- > > 2.31.1 > > > > > > > > -- > Mat Martineau > Intel
From: Geliang Tang <geliangtang@xiaomi.com> v5: - patch 1, change "ret = true;" to "return true;" - patch 3, in the single-subflow case, send MP_FAIL and receive the echo, then temporarily handled by reset. v4: - just deal with the multiple subflows case, put the single subflow case into the new 'infinite mapping' part. v3: - respond with MP_FAIL - add single subflow check - add infinite mapping sending and receiving - export/20210626T054902 v2: - MP_FAIL logic: * Peer B send a DSS to peer A, and the data has been modify by the middleboxes, then peer A detects the bad checksum. * In the multiple subflows case, peer A sends MP_FAIL+RST back to peer B, and peer A discards the data following the bad data sequence number. Peer B receives this MP_FAIL+RST, and close this subflow. * In the single subflow case, using the simple implementation, peer A sends MP_FAIL back to peer B, and peer A fallback to a regular TCP. Peer B receives this MP_FAIL, and fallback to a regular TCP. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/52 Geliang Tang (5): mptcp: MP_FAIL suboption sending mptcp: MP_FAIL suboption receiving mptcp: send out MP_FAIL when data checksum fails mptcp: add the mibs for MP_FAIL selftests: mptcp: add MP_FAIL mibs check include/net/mptcp.h | 5 +- net/mptcp/mib.c | 2 + net/mptcp/mib.h | 2 + net/mptcp/options.c | 78 ++++++++++++++++++- net/mptcp/pm.c | 20 +++++ net/mptcp/protocol.h | 20 +++++ net/mptcp/subflow.c | 18 +++++ .../testing/selftests/net/mptcp/mptcp_join.sh | 38 +++++++++ 8 files changed, 178 insertions(+), 5 deletions(-)