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

Steve Wise
2018-01-23T16:58:01Z

>
> On Tue, Jan 23, 2018 at 10:33:48AM -0600, Steve Wise wrote:
>
> > > +/* Restrict usage of GSO, if hardware peer iwarp is unable to process
> > > + * large packets. gso_seg_limit = 1 lets siw send only packets up to
> > > + * one real MTU in size, but severly limits maximum bandwidth.
> > > + * gso_seg_limit = 0 makes use of GSO (and more than doubles
throughput
> > > + * for large transfers).
> > > + */
> > > +const int gso_seg_limit;
> > > +
> >
> > The GSO configuration needs to default to enable interoperation with all
> > vendors (and comply with the RFCs). So make it 1 please.
>
> The thing we call GSO in the netstack should be totally transparent on
> the wire, so at the very least this needs some additional elaboration.
>

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...

> > 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.

Steve.