[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6D1727B3F3@AcuExch.aculab.com>
Date: Tue, 22 Jul 2014 15:25:41 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Vlad Yasevich' <vyasevich@...il.com>,
"Linux Networking Development Mailing List" <netdev@...r.kernel.org>,
"'linux-sctp@...r.kernel.org'" <linux-sctp@...r.kernel.org>
CC: David Miller <davem@...emloft.net>
Subject: RE: [PATCH net-next v3 3/3] net: sctp: Add support for MSG_MORE on
SCTP
From: Vlad Yasevich
> On 07/22/2014 09:45 AM, David Laight wrote:
> > From: Vlad Yasevich
> >> On 07/22/2014 04:59 AM, David Laight wrote:
> >>> If MSG_MORE is set then the data chunk will be buffered until either
> >>> a full packet would be generated, or something causes a chunk to be
> >>> sent (eg data without MSG_MORE or a heartbeat).
> >>
> >> heartbeat will not cause a data flush. Only SACKs do that as they control
> >> congestion and flow.
> >
> > Experimentally heartbeats cause data to be sent.
> > I'd only got one IP address at each end - so don't know what happens to
> > any 'probe' HBs.
> > I frigged my code to set MSG_MORE if the data chunk was over 200 bytes.
> > A single long fragment would be collected by a short one, or by a heartbeat.
> > I did wonder if that was a bug - but it would happen for data delayed by Nagle.
>
> That sounds kind like a bug. The end of packet usually causes a flush of the outqueue,
> but any delayed data shouldn't be sent as HB should not cause a data flush.
I think the data is already in the relevant queue, it would have been sent
earlier if there had been a packet with anything in it.
So maybe the HB does get bundled with pending data.
Try applying my patch and doing some simple tests...
David
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists