Re: Proposed updates to draft-ietf-nfsv4-rpcrdma-cm-pvt-data
Chuck Lever <[email protected]> Mon, 16 Dec 2019 09:52:59 -0500
| Newsgroups | gmane.ietf.nfsv4 |
|---|---|
| Message-ID | <[email protected]> |
> On Dec 16, 2019, at 9:36 AM, Tom Talpey <[email protected]> wrote: > > On 12/15/2019 3:48 PM, Chuck Lever wrote: >> As a result of expert review, changes are needed to Section 4.1.2 >> to clarify the purpose and implementation guidance of the Format >> Identifier field. >> I propose that the new Section read (in its entirety): >> 4.1.2. Amongst Implementations of Other Upper-Layer Protocols > > That first word is a very odd one in a section title. Would > "Interoperability With" be more meaningful? I will review the titles of the sub-sections here. >> The Format Identifier field in the message format defined in this >> document is provided to enable implementations to distinguish RPC- >> over-RDMA version 1 Private Data from private data inserted at layers >> below RPC-over-RDMA version 1. An example of a layer below RPC-over- > > "Below" is problematic here. The RFC6581 MPA enhanced connection > processing can insert private data at the start of the field, and > it is "below" RPC in the stack, but the peer's RFC6581 processing > strips it off. Therefore, of RPC is the "lowest upper layer" in > such a stack, there is no issue. > > However, there might well be other lower layers, with different > behaviors, injecting their own private data payloads. Or indeed, > upper layers. And these payloads may choose to append, or prepend > to the buffer. OK. Are you requesting a change to this paragraph? >> RDMA version 1 that makes use of CM Private Data is iWARP, via the >> MPA enhancement described in [RFC6581]. >> During connection establishment, an implementation of the extension >> described in this document checks the Format Identifier field before >> decoding subsequent fields. If the RPC-over-RDMA version 1 CM >> Private Data Format Identifier is not present as the first 4 octets, > > So, just to be clear - this introduces a new requirement on other > layers over the same connection. They MUST NOT inject private data > at the beginning of the buffer, or if they do, they MUST strip it > off. > >> an RPC-over-RDMA version 1 receiver MUST ignore the CM Private Data, >> behaving as if no RPC-over-RDMA version 1 Private Data has been >> provided (see above). > > And, if the prior requirement is not made, then the RPC layer needs > to scan the prvate data rather carefully to see if the identifier, > and the payload associated with it, is present somewhere in the > private data. You might have misread this paragraph. I don't think there's a need for any new requirements: the paragraph states if the first word in the buffer is not the RPC-over-RDMA Format Identifier, then the receiver ignores the CM private data. No other scanning is necessary, it's a fail-safe design since the CM private data contains only hints. >> Because the Format Identifier field is newer than some other >> potential users of private data (such as iWARP), there is a risk that >> a lower layer might inject its own private data with a payload >> somehow containing the identifier of RPC-over-RDMA version 1. It is > > Well, *and* not strip it off. This could happen if the peer implemented > a lower layer that wasn't recognized by the receiver, and the data > simply passed up. See previous paragraph. > >> recommended that RPC-over-RDMA version 1 implementations perform >> additional checks on the content of received CM private data before >> making use of it. > > "Additional checks" is pretty vague. Are there any specific requirements? Would "perform sanity checks on the content" be preferable? -- Chuck Lever _______________________________________________ nfsv4 mailing list [email protected] https://www.ietf.org/mailman/listinfo/nfsv4