From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
To: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
Cc: David Laight <David.Laight@ACULAB.COM>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Neil Horman <nhorman@tuxdriver.com>,
Vlad Yasevich <vyasevich@gmail.com>,
David Miller <davem@davemloft.net>,
"brouer@redhat.com" <brouer@redhat.com>,
"alexander.duyck@gmail.com" <alexander.duyck@gmail.com>,
"alexei.starovoitov@gmail.com" <alexei.starovoitov@gmail.com>,
"borkmann@iogearbox.net" <borkmann@iogearbox.net>,
"marek@cloudflare.com" <marek@cloudflare.com>,
"hannes@stressinduktion.org" <hannes@stressinduktion.org>,
"fw@strlen.de" <fw@strlen.de>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"john.r.fastabend@intel.com" <john.r.fastabend@intel.com>,
"linux-sctp@vger.kernel.org" <linux-sctp@vger.kernel.org>
Subject: Re: [RFC PATCH net-next 0/3] sctp: add GSO support
Date: Fri, 29 Jan 2016 11:26:59 +0000 [thread overview]
Message-ID: <20160129112658.GB6604@mrl.redhat.com> (raw)
In-Reply-To: <4AD903B1-5EEA-476C-A353-C17EEAA65D51@lurchi.franken.de>
On Fri, Jan 29, 2016 at 11:57:46AM +0100, Michael Tuexen wrote:
> > On 29 Jan 2016, at 02:18, Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> wrote:
> >
> > On Fri, Jan 29, 2016 at 12:36:05AM +0100, Michael Tuexen wrote:
> >>
> >>> On 28 Jan 2016, at 22:03, Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> wrote:
> >>>
> >>> On Thu, Jan 28, 2016 at 06:54:06PM +0100, Michael Tuexen wrote:
> >>>>> On 28 Jan 2016, at 14:51, David Laight <David.Laight@ACULAB.COM> wrote:
> >>>>>
> >>>>> From: Marcelo Ricardo Leitner
> >>>>>> Sent: 27 January 2016 17:07
> >>>>>> This patchset is merely a RFC for the moment. There are some
> >>>>>> controversial points that I'd like to discuss before actually proposing
> >>>>>> the patches.
> >>>>>
> >>>>> You also need to look at how a 'user' can actually get SCTP to
> >>>>> merge data chunks in the first place.
> >>>>>
> >>>>> With Nagle disabled (and it probably has to be since the data flow
> >>>>> is unlikely to be 'command-response' or 'unidirectional bulk')
> >>>>> it is currently almost impossible to get more than one chunk
> >>>>> into an ethernet frame.
> >>>>>
> >>>>> Support for MSG_MORE would help.
> >>>> What about adding support for the explicit EOR mode as specified in
> >>>> https://tools.ietf.org/html/rfc6458#section-8.1.26
> >>>
> >>> Seizing the moment to clarify my understanding on that. :)
> >>> Such multiple calls to send system calls will result in a single data
> >>> chunk. Is that so? That's what I get from that text and also from this
> >> No. It results in a single user message. This means you can send
> >> a user message larger than the send buffer size. How the user message
> >> is fragmented in DATA chunks is transparent to the upper layer.
> >>
> >> Does this make things clearer?
> >
> > I think so, yes. So it allows delaying setting the Ending fragment bit
> > until the application set SCTP_EOR. All the rest before this stays as
> > before: first send() will generate a chunk with Beginning bit set and
> > may generate some other middle-fragments (no B nor E bit set) if
> > necessary, second to N-1 call to send will generate only middle
> > fragments, while the last send, with SCTP_EOF, will then set the Ending
> > fragment in the last one. Right?
> Yes. But there are no restrictions on the user data provided in send()
> calls and DATA chunks. So you can
> send(100000 byte, no SCTP_EOR)
> resulting in one DATA chunk with the B bit, several with no B and no E bit.
> send(100000 byte, no SCTP_EOR)
> resulting in several chunks with no B and no E bit.
> send(100000 byte, SCTP_EOR)
> resulting in several chunks with no B and no E bit and one (the last) chunk
> with the E bit.
>
> On the other hand you can do
> send(1 byte, no SCTP_EOR)
> resulting in a single DATA chunk with the E bit set.
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> All resulting in a single DATA chunk with 5 bytes user data and no B or E bit.
> (For example if Nagle is enabled and only after the last send call the SACK arrives).
> send(1 byte, SCTP_EOR)
> results in a single DATA chunk with the E bist set.
Cool, thanks Michael. It will be quite fun to mix this with MSG_MORE
logic, I think :)
Best regards,
Marcelo
WARNING: multiple messages have this Message-ID (diff)
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
To: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
Cc: David Laight <David.Laight@ACULAB.COM>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Neil Horman <nhorman@tuxdriver.com>,
Vlad Yasevich <vyasevich@gmail.com>,
David Miller <davem@davemloft.net>,
"brouer@redhat.com" <brouer@redhat.com>,
"alexander.duyck@gmail.com" <alexander.duyck@gmail.com>,
"alexei.starovoitov@gmail.com" <alexei.starovoitov@gmail.com>,
"borkmann@iogearbox.net" <borkmann@iogearbox.net>,
"marek@cloudflare.com" <marek@cloudflare.com>,
"hannes@stressinduktion.org" <hannes@stressinduktion.org>,
"fw@strlen.de" <fw@strlen.de>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"john.r.fastabend@intel.com" <john.r.fastabend@intel.com>,
"linux-sctp@vger.kernel.org" <linux-sctp@vger.kernel.org>
Subject: Re: [RFC PATCH net-next 0/3] sctp: add GSO support
Date: Fri, 29 Jan 2016 09:26:59 -0200 [thread overview]
Message-ID: <20160129112658.GB6604@mrl.redhat.com> (raw)
In-Reply-To: <4AD903B1-5EEA-476C-A353-C17EEAA65D51@lurchi.franken.de>
On Fri, Jan 29, 2016 at 11:57:46AM +0100, Michael Tuexen wrote:
> > On 29 Jan 2016, at 02:18, Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> wrote:
> >
> > On Fri, Jan 29, 2016 at 12:36:05AM +0100, Michael Tuexen wrote:
> >>
> >>> On 28 Jan 2016, at 22:03, Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> wrote:
> >>>
> >>> On Thu, Jan 28, 2016 at 06:54:06PM +0100, Michael Tuexen wrote:
> >>>>> On 28 Jan 2016, at 14:51, David Laight <David.Laight@ACULAB.COM> wrote:
> >>>>>
> >>>>> From: Marcelo Ricardo Leitner
> >>>>>> Sent: 27 January 2016 17:07
> >>>>>> This patchset is merely a RFC for the moment. There are some
> >>>>>> controversial points that I'd like to discuss before actually proposing
> >>>>>> the patches.
> >>>>>
> >>>>> You also need to look at how a 'user' can actually get SCTP to
> >>>>> merge data chunks in the first place.
> >>>>>
> >>>>> With Nagle disabled (and it probably has to be since the data flow
> >>>>> is unlikely to be 'command-response' or 'unidirectional bulk')
> >>>>> it is currently almost impossible to get more than one chunk
> >>>>> into an ethernet frame.
> >>>>>
> >>>>> Support for MSG_MORE would help.
> >>>> What about adding support for the explicit EOR mode as specified in
> >>>> https://tools.ietf.org/html/rfc6458#section-8.1.26
> >>>
> >>> Seizing the moment to clarify my understanding on that. :)
> >>> Such multiple calls to send system calls will result in a single data
> >>> chunk. Is that so? That's what I get from that text and also from this
> >> No. It results in a single user message. This means you can send
> >> a user message larger than the send buffer size. How the user message
> >> is fragmented in DATA chunks is transparent to the upper layer.
> >>
> >> Does this make things clearer?
> >
> > I think so, yes. So it allows delaying setting the Ending fragment bit
> > until the application set SCTP_EOR. All the rest before this stays as
> > before: first send() will generate a chunk with Beginning bit set and
> > may generate some other middle-fragments (no B nor E bit set) if
> > necessary, second to N-1 call to send will generate only middle
> > fragments, while the last send, with SCTP_EOF, will then set the Ending
> > fragment in the last one. Right?
> Yes. But there are no restrictions on the user data provided in send()
> calls and DATA chunks. So you can
> send(100000 byte, no SCTP_EOR)
> resulting in one DATA chunk with the B bit, several with no B and no E bit.
> send(100000 byte, no SCTP_EOR)
> resulting in several chunks with no B and no E bit.
> send(100000 byte, SCTP_EOR)
> resulting in several chunks with no B and no E bit and one (the last) chunk
> with the E bit.
>
> On the other hand you can do
> send(1 byte, no SCTP_EOR)
> resulting in a single DATA chunk with the E bit set.
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> send(1 byte, no SCTP_EOR)
> All resulting in a single DATA chunk with 5 bytes user data and no B or E bit.
> (For example if Nagle is enabled and only after the last send call the SACK arrives).
> send(1 byte, SCTP_EOR)
> results in a single DATA chunk with the E bist set.
Cool, thanks Michael. It will be quite fun to mix this with MSG_MORE
logic, I think :)
Best regards,
Marcelo
next prev parent reply other threads:[~2016-01-29 11:26 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-27 17:06 [RFC PATCH net-next 0/3] sctp: add GSO support Marcelo Ricardo Leitner
2016-01-27 17:06 ` Marcelo Ricardo Leitner
2016-01-27 17:06 ` [RFC PATCH net-next 1/3] skbuff: export skb_gro_receive Marcelo Ricardo Leitner
2016-01-27 17:06 ` Marcelo Ricardo Leitner
2016-01-27 18:35 ` Eric Dumazet
2016-01-27 18:35 ` Eric Dumazet
2016-01-27 18:46 ` Marcelo Ricardo Leitner
2016-01-27 18:46 ` Marcelo Ricardo Leitner
2016-01-27 17:06 ` [RFC PATCH net-next 2/3] sctp: offloading support structure Marcelo Ricardo Leitner
2016-01-27 17:06 ` Marcelo Ricardo Leitner
2016-01-27 17:06 ` [RFC PATCH net-next 3/3] sctp: Add GSO support Marcelo Ricardo Leitner
2016-01-27 17:06 ` Marcelo Ricardo Leitner
2016-01-29 19:15 ` Alexander Duyck
2016-01-29 19:15 ` Alexander Duyck
2016-01-29 19:42 ` Marcelo Ricardo Leitner
2016-01-29 19:42 ` Marcelo Ricardo Leitner
2016-01-30 4:07 ` Alexander Duyck
2016-01-30 4:07 ` Alexander Duyck
2016-02-01 16:22 ` Marcelo Ricardo Leitner
2016-02-01 16:22 ` Marcelo Ricardo Leitner
2016-02-01 17:03 ` Alexander Duyck
2016-02-01 17:03 ` Alexander Duyck
2016-02-01 17:41 ` Marcelo Ricardo Leitner
2016-02-01 17:41 ` Marcelo Ricardo Leitner
2016-01-28 13:51 ` [RFC PATCH net-next 0/3] sctp: add " David Laight
2016-01-28 15:53 ` 'Marcelo Ricardo Leitner'
2016-01-28 15:53 ` 'Marcelo Ricardo Leitner'
2016-01-28 17:30 ` David Laight
2016-01-28 20:55 ` 'Marcelo Ricardo Leitner'
2016-01-28 20:55 ` 'Marcelo Ricardo Leitner'
2016-01-29 15:51 ` David Laight
2016-01-29 18:53 ` 'Marcelo Ricardo Leitner'
2016-01-29 18:53 ` 'Marcelo Ricardo Leitner'
2016-01-29 15:57 ` David Laight
2016-01-29 16:07 ` David Laight
2016-01-28 17:54 ` Michael Tuexen
2016-01-28 17:54 ` Michael Tuexen
2016-01-28 21:03 ` Marcelo Ricardo Leitner
2016-01-28 21:03 ` Marcelo Ricardo Leitner
2016-01-28 23:36 ` Michael Tuexen
2016-01-28 23:36 ` Michael Tuexen
2016-01-29 1:18 ` Marcelo Ricardo Leitner
2016-01-29 1:18 ` Marcelo Ricardo Leitner
2016-01-29 10:57 ` Michael Tuexen
2016-01-29 10:57 ` Michael Tuexen
2016-01-29 11:26 ` Marcelo Ricardo Leitner [this message]
2016-01-29 11:26 ` Marcelo Ricardo Leitner
2016-01-29 12:25 ` Michael Tuexen
2016-01-29 12:25 ` Michael Tuexen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160129112658.GB6604@mrl.redhat.com \
--to=marcelo.leitner@gmail.com \
--cc=David.Laight@ACULAB.COM \
--cc=Michael.Tuexen@lurchi.franken.de \
--cc=alexander.duyck@gmail.com \
--cc=alexei.starovoitov@gmail.com \
--cc=borkmann@iogearbox.net \
--cc=brouer@redhat.com \
--cc=davem@davemloft.net \
--cc=fw@strlen.de \
--cc=hannes@stressinduktion.org \
--cc=john.r.fastabend@intel.com \
--cc=linux-sctp@vger.kernel.org \
--cc=marek@cloudflare.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=pabeni@redhat.com \
--cc=vyasevich@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.