Re: [PATCH v3 03/13] Attach/detach SoftiWarp to/from network and RDMA subsystem

Bernard Metzler
2018-01-23T17:39:34Z

-----Jason Gunthorpe <jgg-uk2M96/98Pc@public.gmane.org> wrote: -----

>To: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
>From: Jason Gunthorpe <jgg-uk2M96/98Pc@public.gmane.org>
>Date: 01/23/2018 06:28PM
>Cc: "'Bernard Metzler'" <bmt-OA+xvbQnYDHMbYB6QlFGEg@public.gmane.org>,
>linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>Subject: Re: [PATCH v3 03/13] Attach/detach SoftiWarp to/from network
>and RDMA subsystem
>
>On Tue, Jan 23, 2018 at 11:24:24AM -0600, Steve Wise wrote:
>> >
>> > On Tue, Jan 23, 2018 at 10:58:01AM -0600, Steve Wise wrote:
>> >
>> > > From:
>https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf.org_h
>tml_rfc5041-23section-2D5.2&d=DwIBAg&c=jf_iaSHvJObTbx-siA1ZOg&r=2TaYX
>Q0T-r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=bZXyEf2ir9_OhkryeDGP_iwh7sDL
>DExD5C6xOEAgGAE&s=N-AUE48HDPRCcFKzdGiM59z8OSmoZKD9AkS1WBpnfLY&e=
>> > >
>> > > "At the Data Source, the DDP layer MUST segment the data
>contained in
>> > > a ULP message into a series of DDP Segments, where each DDP
>Segment
>> > > contains a DDP Header and ULP Payload, and MUST be no larger
>than the
>> > > MULPDU value Advertised by the LLP."
>> > >
>> > > Where MULDPDU is the maximum ULP PDU that will fit in the TCP
>MSS...
>> >
>> > But exceeding the MULPDU has nothing to do with the netstack GSO
>> > function.. right? GSO is entirely a local node optimization that
>> > should not be detectable on the wire.
>>
>> It is not detectable by TCP on the wire, however the iWARP
>protocols that
>> impose message boundaries, among other things, require that the
>iWARP PDU
>> fits in a single TCP segment. Since softiwarp is building the
>iwarp PDU, if
>> it builds one based on a 64K GSO advertised MSS, then the resulting
>wire
>> packets will have man TCP segments all containing parts of a single
>iWARP
>> PDU, which violates the spec I quoted.
>
>But that still has nothing to do with GSO, can't you GSS up to
>MULPDU?
>
>Isn't the issue here more that, as Bernard says, siw is totally
>broken
>since it can't control the TCP layer segmentation boundaries? :(
>

totally broken. hmm.

Not integrating siw with the TCP kernel code makes it impossible
to avoid these things. Can kernel iSCSI avoid fragmentation and
mis-alignment? No.
I wanted to avoid tweaking kernel TCP code. That would make
siw non acceptable.