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

Jason Gunthorpe
2018-01-23T17:28:30Z

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

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? :(

Jason