mbox series

[net-next,v2,00/15] Multipath TCP part 2: Single subflow

Message ID 20191218195510.7782-1-mathew.j.martineau@linux.intel.com
Headers show
Series Multipath TCP part 2: Single subflow | expand

Message

Mat Martineau Dec. 18, 2019, 7:54 p.m. UTC
v1 -> v2: Rebased on latest "Multipath TCP: Prerequisites" v3 series


This set adds MPTCP connection establishment, writing & reading MPTCP
options on data packets, a sysctl to allow MPTCP per-namespace, and self
tests. This is sufficient to establish and maintain a connection with a
MPTCP peer, but will not yet allow or initiate establishment of
additional MPTCP subflows.

Clone/fetch:
https://github.com/multipath-tcp/mptcp_net-next.git (tag: netdev-v2-part2)

Browse:
https://github.com/multipath-tcp/mptcp_net-next/tree/netdev-v2-part2

Thank you for your review. You can find us at mptcp@lists.01.org and
https://is.gd/mptcp_upstream


Florian Westphal (2):
  mptcp: add subflow write space signalling and mptcp_poll
  mptcp: add basic kselftest for mptcp

Mat Martineau (3):
  mptcp: Add MPTCP socket stubs
  mptcp: Write MPTCP DSS headers to outgoing data packets
  mptcp: Implement MPTCP receive path

Matthieu Baerts (1):
  mptcp: new sysctl to control the activation per NS

Paolo Abeni (2):
  mptcp: recvmsg() can drain data from multiple subflows
  mptcp: allow collapsing consecutive sendpages on the same substream

Peter Krystad (7):
  mptcp: Handle MPTCP TCP options
  mptcp: Associate MPTCP context with TCP socket
  mptcp: Handle MP_CAPABLE options for outgoing connections
  mptcp: Create SUBFLOW socket for incoming connections
  mptcp: Add key generation and token tree
  mptcp: Add shutdown() socket operation
  mptcp: Add setsockopt()/getsockopt() socket operations

 MAINTAINERS                                   |    2 +
 include/linux/tcp.h                           |   34 +
 include/net/mptcp.h                           |   98 ++
 net/Kconfig                                   |    1 +
 net/Makefile                                  |    1 +
 net/ipv4/tcp.c                                |    2 +
 net/ipv4/tcp_input.c                          |   19 +-
 net/ipv4/tcp_output.c                         |   57 +
 net/ipv6/tcp_ipv6.c                           |    7 +
 net/mptcp/Kconfig                             |   16 +
 net/mptcp/Makefile                            |    4 +
 net/mptcp/crypto.c                            |  122 ++
 net/mptcp/ctrl.c                              |  130 ++
 net/mptcp/options.c                           |  520 ++++++++
 net/mptcp/protocol.c                          | 1159 +++++++++++++++++
 net/mptcp/protocol.h                          |  220 ++++
 net/mptcp/subflow.c                           |  763 +++++++++++
 net/mptcp/token.c                             |  195 +++
 tools/testing/selftests/Makefile              |    1 +
 tools/testing/selftests/net/mptcp/.gitignore  |    2 +
 tools/testing/selftests/net/mptcp/Makefile    |   13 +
 tools/testing/selftests/net/mptcp/config      |    2 +
 .../selftests/net/mptcp/mptcp_connect.c       |  832 ++++++++++++
 .../selftests/net/mptcp/mptcp_connect.sh      |  595 +++++++++
 tools/testing/selftests/net/mptcp/settings    |    1 +
 25 files changed, 4795 insertions(+), 1 deletion(-)
 create mode 100644 net/mptcp/Kconfig
 create mode 100644 net/mptcp/Makefile
 create mode 100644 net/mptcp/crypto.c
 create mode 100644 net/mptcp/ctrl.c
 create mode 100644 net/mptcp/options.c
 create mode 100644 net/mptcp/protocol.c
 create mode 100644 net/mptcp/protocol.h
 create mode 100644 net/mptcp/subflow.c
 create mode 100644 net/mptcp/token.c
 create mode 100644 tools/testing/selftests/net/mptcp/.gitignore
 create mode 100644 tools/testing/selftests/net/mptcp/Makefile
 create mode 100644 tools/testing/selftests/net/mptcp/config
 create mode 100644 tools/testing/selftests/net/mptcp/mptcp_connect.c
 create mode 100755 tools/testing/selftests/net/mptcp/mptcp_connect.sh
 create mode 100644 tools/testing/selftests/net/mptcp/settings

Comments

David Miller Dec. 18, 2019, 8:42 p.m. UTC | #1
From: Mat Martineau <mathew.j.martineau@linux.intel.com>
Date: Wed, 18 Dec 2019 11:54:55 -0800

> v1 -> v2: Rebased on latest "Multipath TCP: Prerequisites" v3 series

This really can't proceed in this manner.

Wait until one patch series is fully reviewed and integrated before
trying to build things on top of it, ok?

Nobody is going to review this second series in any reasonable manner
while the prerequisites are not upstream yet.

Thank you.
Mat Martineau Dec. 18, 2019, 8:48 p.m. UTC | #2
On Wed, 18 Dec 2019, David Miller wrote:

> From: Mat Martineau <mathew.j.martineau@linux.intel.com>
> Date: Wed, 18 Dec 2019 11:54:55 -0800
>
>> v1 -> v2: Rebased on latest "Multipath TCP: Prerequisites" v3 series
>
> This really can't proceed in this manner.
>
> Wait until one patch series is fully reviewed and integrated before
> trying to build things on top of it, ok?
>
> Nobody is going to review this second series in any reasonable manner
> while the prerequisites are not upstream yet.
>
> Thank you.

Will do. Thank you for the process feedback.


--
Mat Martineau
Intel
Eric Dumazet Dec. 20, 2019, 3:03 p.m. UTC | #3
On 12/18/19 12:42 PM, David Miller wrote:
> From: Mat Martineau <mathew.j.martineau@linux.intel.com>
> Date: Wed, 18 Dec 2019 11:54:55 -0800
> 
>> v1 -> v2: Rebased on latest "Multipath TCP: Prerequisites" v3 series
> 
> This really can't proceed in this manner.
> 
> Wait until one patch series is fully reviewed and integrated before
> trying to build things on top of it, ok?
> 
> Nobody is going to review this second series in any reasonable manner
> while the prerequisites are not upstream yet.
> 


Also I want to point that for some reasons MPTCP folks provide
patch series during the last two weeks of the year.

I don't know about you, but I try to share this time with my family.
So this does not make me being indulgent about MPTCP :/

Thanks.
Paolo Abeni Dec. 20, 2019, 3:51 p.m. UTC | #4
On Fri, 2019-12-20 at 07:03 -0800, Eric Dumazet wrote:
> 
> On 12/18/19 12:42 PM, David Miller wrote:
> > From: Mat Martineau <mathew.j.martineau@linux.intel.com>
> > Date: Wed, 18 Dec 2019 11:54:55 -0800
> > 
> > > v1 -> v2: Rebased on latest "Multipath TCP: Prerequisites" v3 series
> > 
> > This really can't proceed in this manner.
> > 
> > Wait until one patch series is fully reviewed and integrated before
> > trying to build things on top of it, ok?
> > 
> > Nobody is going to review this second series in any reasonable manner
> > while the prerequisites are not upstream yet.
> > 
> 
> Also I want to point that for some reasons MPTCP folks provide
> patch series during the last two weeks of the year.
> 
> I don't know about you, but I try to share this time with my family.
> So this does not make me being indulgent about MPTCP :/

We are sorry if our course of action is perceived as aggressive or
worse.

The idea was to share our progress giving enough context to get a more
complete picture.

We tried to reply to the feedback in a timely manner to demonstrate
collaborative behavior and not with the goal to hard press anyone!  We
are very sorry if we gave a different impression!

We understand the time of the year is unfortunate, we have been a bit
delayed by several related an unrelated issues - idea was to post v1
just after net-next re-open.

We appreciate a lot all the feedback received, which helped improving
the code significantly.

I understand you prefer we will have the next iteration in the new
year, am I correct?

Thank you!

Paolo
Eric Dumazet Dec. 20, 2019, 4:10 p.m. UTC | #5
On 12/20/19 7:51 AM, Paolo Abeni wrote:
> 
> I understand you prefer we will have the next iteration in the new
> year, am I correct?

Yes please, I wont be able to participate in discussions until January 2nd.

Thanks.