From: Jere Leppanen > Sent: 04 March 2020 17:13 > On Wed, 4 Mar 2020, Xin Long wrote: > > > On Wed, Mar 4, 2020 at 2:38 AM Leppanen, Jere (Nokia - FI/Espoo) > > <jere.leppanen@xxxxxxxxx> wrote: > >> > >> On Mon, 2 Mar 2020, Xin Long wrote: > >> > >>> As it says in rfc6458#section-9.2: > >>> > >>> The application uses the sctp_peeloff() call to branch off an > >>> association into a separate socket. (Note that the semantics are > >>> somewhat changed from the traditional one-to-one style accept() > >>> call.) Note also that the new socket is a one-to-one style socket. > >>> Thus, it will be confined to operations allowed for a one-to-one > >>> style socket. > >>> > >>> Prior to this patch, sctp_peeloff() returned a one-to-many type socket, > >>> on which some operations are not allowed, like shutdown, as Jere > >>> reported. > >>> > >>> This patch is to change it to return a one-to-one type socket instead. > >> > >> Thanks for looking into this. I like the patch, and it fixes my simple > >> test case. > >> > >> But with this patch, peeled-off sockets are created by copying from a > >> one-to-many socket to a one-to-one socket. Are you sure that that's > >> not going to cause any problems? Is it possible that there was a > >> reason why peeloff wasn't implemented this way in the first place? > > I'm not sure, it's been there since very beginning, and I couldn't find > > any changelog about it. > > > > I guess it was trying to differentiate peeled-off socket from TCP style > > sockets. > > Well, that's probably the reason for UDP_HIGH_BANDWIDTH style. And maybe > there is legitimate need for that differentiation in some cases, but I > think inventing a special socket style is not the best way to handle it. > > But actually I meant why is a peeled-off socket created as SOCK_SEQPACKET > instead of SOCK_STREAM. It could be to avoid copying from SOCK_SEQPACKET > to SOCK_STREAM, but why would we need to avoid that? Because you don't want all the acks and retransmissions?? David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)