On 12/29/21 5:52 AM, Matthieu Baerts wrote:
> Hi Kishen,
>
> Thank you for your replies!
>
> On 21/12/2021 08:32, Kishen Maloor wrote:
>> On 12/17/21 8:29 AM, Matthieu Baerts wrote:
>>> Hi Kishen,
>>>
>>> On 16/12/2021 23:23, Kishen Maloor wrote:
>>>> This change updates mptcp_pm_nl_create_listen_socket() to create
>>>> listening sockets bound to IPv6 addresses (where IPv6 is supported).
>>>
>>> Should we consider this as a bug?
>>
>> We could I suppose, at least for lack of completeness. But you're right that we've
>> now updated the behavior in this series in attempting to create listening sockets (lsks)
>> corresponding to every announcement, which necessitates this handling of
>> IPv6 addresses.
>>
>> But prior to this series:
>> -lsk creation (through a subflow's port) did not happen in the kernel under the assumption
>> that MPTCP server applications would've established a listener,
>> -lsks were created only for port-based endpoints
>
> Yes, that's correct.
>
>> which (I believe) would not work with
>> IPv6 (lack of option space), and,
>
> Yes, there is enough space. We even have packetdrill tests, no?
> ADD_ADDR are sent in a dedicated ACK packet, without DSS. I think we
> started to discuss about having a dedicated ACK packet to cover this
> case and ADD_ADDRv6 + echo I think.
Based on what I briefly observed, it seemed like there wasn't sufficient option space to
advertise a port in an ADD_ADDRv6 message (even in a dedicated ACK, I believe). So, I
concluded that the port had to always be reused. Anyhow, if there is indeed sufficient
room for a port, then yes, we could consider this commit as a bug fix.
>
>> -the stack did not allow incoming MP_JOINs at machines running MPTCP client
>> applications (with this series, subflows can be established from either end so there
>> needs to be an lsk).
>
> If I'm not mistaken, that was by design: to simplify things.
>
> It is very rare and very specific when a server initiates connections. I
> think in most cases, the client would like to be in charge of initiating
> paths and would not like the server to do so.
I've been considering path management as a separate function (architecturally) from the role(s) of
the MPTCP application(s). So, in my mind it is not the client/server applications initiating new subflows, but is rather
the PM (in concert with the MPTCP stack).
So may be the requirements for and scope of path management policy needs to be discussed then (?) (if it hasn't
already happened) which could be realized by userspace PM daemons.
> But as it seems not to be too complex, it is good to have a way to do
> that. But I think we would need an option to (dis)allow that.
>
> Cheers,
> Matt