Subject: [rddp] Header CRC mandatory?

From: Caitlin Bestler <[email-masked]>
Date: Thu, 17 Apr 2003 12:42:15 -0500

Have we reached a consensus that CRC-32 coverage of at least
the header is a requirement?

Without CRC coverage over the header an application CANNOT
apply its own protection to data until AFTER it invalidates
all STags that can reference the memory.

This is far in excess of the use of "one shot" STags. The
existence of another STag that has the option of referencing
the same memory exposes it to an error risk -- even when
there is a solid basis for trusting that the peer is not
a risk for malicious tampering.

In prior discussions on STags, we rejected mandating the use
of STag invalidation (requiring all STags to be "one shot").
There were numerous application profiles recognized where
flexible buffering was of value. Without header CRC
protection, all such applications would be subject to
increased risk from undetected TCP errors.

Further, this would be an *increased* risk.

With pure TCP, only the buffered offered for a specific read
is ever at risk of receiving bad data. Once delivered, it is
no longer at risk.  RDMA over TCP without header CRC
protection would place all advertised buffers at risk
from undetected TCP errors for the duration of the
advertisement.

It is my understanding of our charter that we CANNOT
increase the risk to applications over the use of non-RDMA
enabled TCP or SCTP.

I do not believe that a variable-coverage CRC is of
sufficient value to justify the increased complexity
for specifying the variation, and of testing it. But such
a decision would be valid under our charter. I do not
believe we have an option to propose direct memory placemnt
based upon unprotected headers.

Caitlin Bestler
http://asomi.com/CaitlinBestler/
_______________________________________________
rddp mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rddp

---

From: "Carrier, John" <[email-masked]>
Date: Thu, 17 Apr 2003 11:58:36 -0700

I agree that the CRC should be mandatory, but believe that we need to
protect the entire payload not just the header.  RDMAP & DDP were originally
designed with the assumption of a CRC32 digest of all data received.  SCTP
already provides this level of protection and the CRC was added to MPA to
add the digest to TCP.  As a result, RDMAP & DDP over SCTP or over MPA/TCP
can assume the same level of data intergrity.  This is not a ULP option, but
a requirement of the RDMAP & DDP protocols.

--jc

> -----Original Message-----
> From: Caitlin Bestler [mailto:[email-masked]]
> Sent: Thursday, April 17, 2003 10:42 AM
> To: [email-masked]
> Subject: [rddp] Header CRC mandatory?
> 
>

---

From: "Carrier, John" <[email-masked]>
Date: Thu, 24 Apr 2003 11:17:53 -0700

>
> The argument against optional CRCs is that there does
> NOT exist a sizeable subset of implementations with the
> above properties.  In that case BOTH the header
> and payload should be protected by CRC.
>

yes!  

As I've mentioned before we need both header and data CRC.  To my mind there
is no compelling reason to make a digest optional.  Regardless of ULP
requirements and regardless of how MPA is implemented, RDMAP/DDP assume at
least CRC-level of data protection.  It's important that a ULP using these
protocols over TCP has the same expectation of data robustness as when using
these protocols over SCTP.

--jc