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

Steve Wise
2018-01-23T17:24:24Z

>
> On Tue, Jan 23, 2018 at 10:58:01AM -0600, Steve Wise wrote:
>
> > From: https://tools.ietf.org/html/rfc5041#section-5.2
> >
> > "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.

>
> > > > Jason, would configfs be a reasonable way to allow tweaking these
> > globals?
> > >
> > > Why would we ever even bother to support a mode that is non-conformant
> > > on the wire? Just remove it..
> >
> > For soft iwarp, the throughput is greatly increased with allowing these
> > iWARP protocol PDUs to span many TCP segments. So there could be an
> > argument for leaving it as a knob for soft iwarp <-> soft iwarp
> > configurations. But IMO it needs to default to RFC compliance and
> > interoperability with hw implementations.
>
> IMHO the purpose of things like rxe and siw is not maximum raw
> performance (certainly not during the initial kernel accept phase),

I agree.

> so
> it should not include any non-conformant cruft..
>

IMO leaving it as a non-default-enabled knob is ok in this case.

Steve