mbox series

[v2,0/6] IPv6 support

Message ID 20191106044133.14418-1-peter.krystad@linux.intel.com
Headers show
Series IPv6 support | expand

Message

Peter Krystad Nov. 6, 2019, 4:41 a.m. UTC
Implemented support for IPv6. selftests pass with ipv6=true, but
they take twice as long to run...

With re-factoring the addition of IPv6 is very clean but I did not
split files yet as it will be hard to squash any changes after the
such a split.

Still to do: multiple subflows, handling IPv4-mapped connections.

v2: Added further re-factoring that makes IPv6 change even smaller
    Add mptcpv6_init() stub and verified build with IPv6=n and m

    Kconfig changes submitted in earlier patch set, this set depends
    on those changes being merged.

    Squashing the final patch (6/6) so that IPv6 support occurs before
    the kselftests commit will be complicated.

Peter Krystad (6):
  mptcp: Reference icsk_af_ops routines through saved pointer
  mptcp: Reference inet_stream_ops routines through socket->ops
  mptcp: Re-factor mptcp_getname routine to be af-agnostic
  mptcp: Re-factor subflow_v4_conn_request to be af-agnostic
  mptcp: Export low-level routines for IPv6
  mptcp: Add IPv6 support

 include/net/mptcp.h  |  10 ++++
 include/net/tcp.h    |   3 ++
 net/ipv6/tcp_ipv6.c  |  16 ++++--
 net/mptcp/ctrl.c     |  11 ++++
 net/mptcp/protocol.c | 117 ++++++++++++++++++++++++++++++++-----------
 net/mptcp/protocol.h |   7 +++
 net/mptcp/subflow.c  |  94 +++++++++++++++++++++++++++++-----
 7 files changed, 213 insertions(+), 45 deletions(-)

Comments

Paolo Abeni Nov. 6, 2019, 9:04 a.m. UTC | #1
On Tue, 2019-11-05 at 20:41 -0800, Peter Krystad wrote:
> Implemented support for IPv6. selftests pass with ipv6=true, but
> they take twice as long to run...
> 
> With re-factoring the addition of IPv6 is very clean 

Indeed.

> but I did not
> split files yet as it will be hard to squash any changes after the
> such a split.

I think this is ok.

The series looks great, with a minor comment on patch 5.

Cheers,

Paolo
Matthieu Baerts Nov. 7, 2019, 5:03 p.m. UTC | #2
Hi Peter, Paolo,

On 06/11/2019 10:04, Paolo Abeni wrote:
> On Tue, 2019-11-05 at 20:41 -0800, Peter Krystad wrote:
>> Implemented support for IPv6. selftests pass with ipv6=true, but
>> they take twice as long to run...
>>
>> With re-factoring the addition of IPv6 is very clean
> 
> Indeed.

Thanks for the good work and the reviews!

>> but I did not
>> split files yet as it will be hard to squash any changes after the
>> such a split.
> 
> I think this is ok.
> 
> The series looks great, with a minor comment on patch 5.

Now in the repo!

patch 1/6:

- 43a479b6ae30: "squashed" part 1 in "mptcp: Handle MP_CAPABLE options 
for outgoing connections"
- 930dabfdf09d: "squashed" part 2 in "mptcp: Create SUBFLOW socket for 
incoming connections"
- 4f561ba867fb: "squashed" part 3 in "mptcp: Add key generation and 
token tree"
- 9d8b388097f8: conflict in t/mptcp-Implement-MPTCP-receive-path
- 580421d52995..eac1e244ac31: result

patch 2/6:

- 0da98dd8d6bb: "squashed" part 1 in "mptcp: Associate MPTCP context 
with TCP socket"
- cff7f9dac059: "squashed" part 2 in "mptcp: Create SUBFLOW socket for 
incoming connections"
- b545a42175be: "squashed" part 3 in "mptcp: add mptcp_poll"
- b74f268dd118: "Signed-off-by" + "Co-developed-by"
- eac1e244ac31..3373244a8bf8: result

patch 3/6:

- 85c57d519a60: "squashed" in "mptcp: Create SUBFLOW socket for incoming 
connections"
- 3373244a8bf8..9861cce0e086: result

patch 4/6:

- b12b955e0bfb: "squashed" in "mptcp: Create SUBFLOW socket for incoming 
connections"
- dc4f6f7ae3f4: conflict in t/mptcp-Add-key-generation-and-token-tree
- cdc85f221f44: conflict in 
t/mptcp-Add-handling-of-incoming-MP_JOIN-requests
- 11899f111b38: conflict in 
t/mptcp-Add-handling-of-outgoing-MP_JOIN-requests
- 9861cce0e086..262129eadf29: result

patch 5/6:
- 8b158237c6dc: "squashed" part 1 in "tcp: Export TCP functions and ops 
struct"
→ without the chunk discussed on the ML
→ AND without "extern const struct inet_connection_sock_af_ops 
ipv6_specific;"
- 262129eadf29..619461df7b41: result

patch 6/6:
- new topic/commit added just before KSleftests
- AND with "extern const struct inet_connection_sock_af_ops ipv6_specific;"
- 3bf456c9250a: conflict in 
t/mptcp-Add-handling-of-outgoing-MP_JOIN-requests
- 46e50b50b072: conflict in 
t/mptcp-allow-dumping-subflow-context-to-userspace

Tests not launched yet.

I am rebooting my machine, coming in 2 minutes :)

Cheers,
Matt