All of lore.kernel.org
 help / color / mirror / Atom feed
* [MPTCP] [PATCH v3 00/10] Implement outgoing MP_JOIN
@ 2019-08-07 22:44 Peter Krystad
  0 siblings, 0 replies; 3+ messages in thread
From: Peter Krystad @ 2019-08-07 22:44 UTC (permalink / raw)
  To: mptcp 

[-- Attachment #1: Type: text/plain, Size: 3072 bytes --]

This is several accumulated fixes that are required for MP_JOIN
(secondary subflows) plus the outgoing code.

Both outgoing and incoming MP_JOIN now inter-operate
with the multipath.org implementation although there is
still a deadlock when incoming is fully established.
Since the incoming direction did not work at all before
this is an improvement. I have not yet tested running our
implmentation against itself.

The final patch in the set is an "interim path manager", this
is throw-away code that I include for testing purposes. For an
incoming connection it is necessary for the server to advertise
a secondary address and for my testing I have been hard-coding the IP
address of my secondary interface when I build the kernel.
Obviously not the final solution but we need to discuss what
approach to use for the self tests. I also think we may not want
to publish this patch on our net-next branch.

v2:
  - move mptcp_options_received formatting to options.c
  - resolve conflicts with Davide's crypto commit
  - make helper for setting request fields
  - fix locking in token_lookup()
  - move token_lookup() to "Implement path manager interface commands:
    (where it belongs)
  - split interim path manager out of final commit, will submit seperately
  - remove use of local_id in pm_create_subflow
  - restrict announcing addresses to server side only
  - add one more commit with get_local_id fix for incoming MP_JOIN

v3:
  - Revise nested if logic in options.c
  - set subflow->request_cksum correctly (do not support)
  - lock mptcp_sock in subflow_connect() and take ref
  - return EINPROGRESS from subflow_connect() in normal case
  - cleanup socket when bind()/connect() fails in subflow_connect()
  - take reference to mptcp_sock in token_join_request() and
    token_join_valid()
  - rename token_lookup() to token_lookup_get()
  - track remote token seperately in subflow (previously
    local token field was being overwritten, preventing cleanup)
  - take long-lived reference to mptcp_sock in token_new_subflow

Peter Krystad (10):
  Extend path manager interface
  Fix locking in mptcp_finish_join.
  Fix parsing MP_JOIN third ACK.
  Re-factor and fixes for crypto_hmac_sha1()
  Rename mptcp_attach_dss()
  Fix return value if no DSS option is created.
  Move setting request_ fields of subflow to MPTCP layer helper
  mptcp: Add handling of outgoing MP_JOIN requests
  Use pm_get_local_id() to get the real local address id.
  mptcp: Implement path manager interface commands

 include/net/mptcp.h  |  12 ++--
 net/ipv4/tcp_input.c |   4 +-
 net/mptcp/crypto.c   |  23 +++----
 net/mptcp/options.c  |  98 +++++++++++++++++++++++++++---
 net/mptcp/pm.c       | 140 +++++++++++++++++++++++++++++++++++++++----
 net/mptcp/protocol.c |  21 +++++--
 net/mptcp/protocol.h |  58 ++++++++++++++----
 net/mptcp/subflow.c  |  77 +++++++++++++++++++++---
 net/mptcp/token.c    | 111 +++++++++++++++++++++++++++-------
 9 files changed, 455 insertions(+), 89 deletions(-)

-- 
2.17.2


^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: [MPTCP] [PATCH v3 00/10] Implement outgoing MP_JOIN
@ 2019-08-08 14:51 Paolo Abeni
  0 siblings, 0 replies; 3+ messages in thread
From: Paolo Abeni @ 2019-08-08 14:51 UTC (permalink / raw)
  To: mptcp 

[-- Attachment #1: Type: text/plain, Size: 2360 bytes --]

Hi all,
On Wed, 2019-08-07 at 15:44 -0700, Peter Krystad wrote:
> This is several accumulated fixes that are required for MP_JOIN
> (secondary subflows) plus the outgoing code.
> 
> Both outgoing and incoming MP_JOIN now inter-operate
> with the multipath.org implementation although there is
> still a deadlock when incoming is fully established.
> Since the incoming direction did not work at all before
> this is an improvement. I have not yet tested running our
> implmentation against itself.
> 
> The final patch in the set is an "interim path manager", this
> is throw-away code that I include for testing purposes. For an
> incoming connection it is necessary for the server to advertise
> a secondary address and for my testing I have been hard-coding the IP
> address of my secondary interface when I build the kernel.
> Obviously not the final solution but we need to discuss what
> approach to use for the self tests. I also think we may not want
> to publish this patch on our net-next branch.
> 
> v2:
>   - move mptcp_options_received formatting to options.c
>   - resolve conflicts with Davide's crypto commit
>   - make helper for setting request fields
>   - fix locking in token_lookup()
>   - move token_lookup() to "Implement path manager interface commands:
>     (where it belongs)
>   - split interim path manager out of final commit, will submit seperately
>   - remove use of local_id in pm_create_subflow
>   - restrict announcing addresses to server side only
>   - add one more commit with get_local_id fix for incoming MP_JOIN
> 
> v3:
>   - Revise nested if logic in options.c
>   - set subflow->request_cksum correctly (do not support)
>   - lock mptcp_sock in subflow_connect() and take ref
>   - return EINPROGRESS from subflow_connect() in normal case
>   - cleanup socket when bind()/connect() fails in subflow_connect()
>   - take reference to mptcp_sock in token_join_request() and
>     token_join_valid()
>   - rename token_lookup() to token_lookup_get()
>   - track remote token seperately in subflow (previously
>     local token field was being overwritten, preventing cleanup)
>   - take long-lived reference to mptcp_sock in token_new_subflow

I went through the whole series and it looks like all my comments has
been addressed, thank you Peter!

LGMT!

Paolo


^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: [MPTCP] [PATCH v3 00/10] Implement outgoing MP_JOIN
@ 2019-08-12 19:37 Matthieu Baerts
  0 siblings, 0 replies; 3+ messages in thread
From: Matthieu Baerts @ 2019-08-12 19:37 UTC (permalink / raw)
  To: mptcp 

[-- Attachment #1: Type: text/plain, Size: 3356 bytes --]

Hi Peter, Paolo, Mat,

On 08/08/2019 16:51, Paolo Abeni wrote:
> Hi all,
> On Wed, 2019-08-07 at 15:44 -0700, Peter Krystad wrote:
>> This is several accumulated fixes that are required for MP_JOIN
>> (secondary subflows) plus the outgoing code.
>>
>> Both outgoing and incoming MP_JOIN now inter-operate
>> with the multipath.org implementation although there is
>> still a deadlock when incoming is fully established.
>> Since the incoming direction did not work at all before
>> this is an improvement. I have not yet tested running our
>> implmentation against itself.
>>
>> The final patch in the set is an "interim path manager", this
>> is throw-away code that I include for testing purposes. For an
>> incoming connection it is necessary for the server to advertise
>> a secondary address and for my testing I have been hard-coding the IP
>> address of my secondary interface when I build the kernel.
>> Obviously not the final solution but we need to discuss what
>> approach to use for the self tests. I also think we may not want
>> to publish this patch on our net-next branch.
>>
>> v2:
>>   - move mptcp_options_received formatting to options.c
>>   - resolve conflicts with Davide's crypto commit
>>   - make helper for setting request fields
>>   - fix locking in token_lookup()
>>   - move token_lookup() to "Implement path manager interface commands:
>>     (where it belongs)
>>   - split interim path manager out of final commit, will submit seperately
>>   - remove use of local_id in pm_create_subflow
>>   - restrict announcing addresses to server side only
>>   - add one more commit with get_local_id fix for incoming MP_JOIN
>>
>> v3:
>>   - Revise nested if logic in options.c
>>   - set subflow->request_cksum correctly (do not support)
>>   - lock mptcp_sock in subflow_connect() and take ref
>>   - return EINPROGRESS from subflow_connect() in normal case
>>   - cleanup socket when bind()/connect() fails in subflow_connect()
>>   - take reference to mptcp_sock in token_join_request() and
>>     token_join_valid()
>>   - rename token_lookup() to token_lookup_get()
>>   - track remote token seperately in subflow (previously
>>     local token field was being overwritten, preventing cleanup)
>>   - take long-lived reference to mptcp_sock in token_new_subflow
> 
> I went through the whole series and it looks like all my comments has
> been addressed, thank you Peter!

Thank you for the patches and the reviews!

I just applied these 10 patches. Please check that everything looks good
to you, especially the patches that I had to split in multiple ones and
squash in different commits. Do not hesitate to tell me if the squashes
were not in the right commits or if I have to change stuffs.

Note that I just saw Mat's email on the patch number 8. Feel free to
continue the discussions there and create a new patch if needed.

The compilation is still OK. Tests are in progress. I will tell you
tomorrow if there is an issue with them.

I think I applied all accepted patches on the list. Do not hesitate to
tell me if other are also good to be applied ;)

Cheers,
Matt
-- 
Matthieu Baerts | R&D Engineer
matthieu.baerts(a)tessares.net
Tessares SA | Hybrid Access Solutions
www.tessares.net
1 Avenue Jean Monnet, 1348 Louvain-la-Neuve, Belgium

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-08-12 19:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-07 22:44 [MPTCP] [PATCH v3 00/10] Implement outgoing MP_JOIN Peter Krystad
  -- strict thread matches above, loose matches on Subject: below --
2019-08-08 14:51 Paolo Abeni
2019-08-12 19:37 Matthieu Baerts

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.