RE: sctp discarding received data chunks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



...
> > > If I dump out /proc/net/sctp/assocs and look way over to the right
> > > (on the next monitor but 1) there are two columns INS and OUTS.
> > > I've just realised that these are the number of streams.
> > > Now all my connections are loopback - so I see both sockets for each.
> > > So I'd expect the INS to match the OUTS of the peer.
> > > This isn't true.
> > > When the value should be negotiated down the OUTS value is unchanged.
> > > So the kernel is sending packets with illegal stream numbers.
> > > These are acked and then silently discarded.
> 
> > did it do addstream reconfig or receive any duplicate COOKIE-ECHO in your case?
> 
> Extremely unlikely.
> 
> Looking at the latest version of my driver code
> (which I wasn't using) I wrote the following:
> 
>  * Since the code that negotiates the number of streams got broken
>  * in version 5.1 we need to extract the correct value from the
>  * internal structures to avoid SCTP sending messages the remote
>  * system will discard.
> 
>     /* stream.outcnt is the value we should be using.
>      * But kernels 5.1 to 5.8 fail to reduce it based on the number
>      * received from the remote system.
>      * So bound here so that transmitted messages don't get discarded. */
>     outcnt = asoc->stream.outcnt;
>     num_ostreams = asoc->c.sinit_num_ostreams;
> 
> I think there was a patch done for 5.9.
> It needs back-porting.

Yes, I wrote the patch.
Applied to net-next.

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/net/sctp/stream.c?id=ab921f3cdbec01c68705a7ade8bec628d541fc2b

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)




[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux