RE: [rohc] IPR... again...

"West, Mark" <mark.a.west@roke.co.uk> Tue, 02 September 2003 17:26 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA18446 for <rohc-archive@odin.ietf.org>; Tue, 2 Sep 2003 13:26:04 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19uEuM-0003t3-Gu for rohc-archive@odin.ietf.org; Tue, 02 Sep 2003 13:25:39 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h82HPYo7014941 for rohc-archive@odin.ietf.org; Tue, 2 Sep 2003 13:25:34 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19uEuM-0003st-BB for rohc-web-archive@optimus.ietf.org; Tue, 02 Sep 2003 13:25:34 -0400
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA18310 for <rohc-web-archive@ietf.org>; Tue, 2 Sep 2003 13:25:29 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19uEtp-0003iE-LE; Tue, 02 Sep 2003 13:25:01 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19uEtF-0003h7-By for rohc@optimus.ietf.org; Tue, 02 Sep 2003 13:24:25 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA18147 for <rohc@ietf.org>; Tue, 2 Sep 2003 13:24:20 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19uEtD-000108-00 for rohc@ietf.org; Tue, 02 Sep 2003 13:24:23 -0400
Received: from rsys001a.roke.co.uk ([193.118.192.110]) by ietf-mx with esmtp (Exim 4.12) id 19uEtB-0000yH-00 for rohc@ietf.org; Tue, 02 Sep 2003 13:24:22 -0400
Received: by rsys001a.roke.co.uk with Internet Mail Service (5.5.2653.19) id <QY19YK3N>; Tue, 2 Sep 2003 18:23:40 +0100
Message-ID: <EA943CD30BCB104E9D38F5B5DC2D9A7019196A@rsys004a.roke.co.uk>
From: "West, Mark" <mark.a.west@roke.co.uk>
To: 'Alan Kennington' <ak1.rohc@topology.org>, ROHC mailing list <rohc@ietf.org>
Subject: RE: [rohc] IPR... again...
Date: Tue, 02 Sep 2003 18:23:41 +0100
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Sender: rohc-admin@ietf.org
Errors-To: rohc-admin@ietf.org
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
List-Id: Robust Header Compression <rohc.ietf.org>
List-Post: <mailto:rohc@ietf.org>
List-Help: <mailto:rohc-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=subscribe>

Hi Alan,

Thanks for your response!  (I was a bit worried that messages were in a
random 1 - 2 day time-warp, but the bottleneck seems to have cleared now!)

A couple of comments, in-line...

> 
> Mark,
> 
> Personally I think it's bad engineering to cache the static CRC.
> In my implementation, I didn't even think of doing this.
> It's asking for trouble because you have to keep track of
> whether it might change and make sure that the CRC is always 
> synched with
> the static header fields. It's very much simpler and more reliable to
> CRC everything every time it's needed.
> After all, you do a CRC to ensure robustness. So why would you 
> introduce the danger of software error in CRC calculation?
> 

Good question... ;-)

<snip>

> 
> Conclusion: the static/dynamic CRC calculation split is 
> really perplexing.
> When I first saw that, I couldn't work out why someone would bother
> which such a minor optimisation when there are so many other things
> that could have been optimized.
> 
> Theoretically, implementation issues that have no influence on the
> coding "on the wire" have no place in comms standards. So the
> static CRC caching is in the category of "implementation hints".
> This should really be in an appendix.
> However, RFC 3095 contains numerous "implementation hints" of 
> this sort.
> For example the "compression state" variable is in this category.
> It does not appear on the wire, and can be dispensed with completely.
> 

The thing that pains me about this is that it does affect the bits on the
wire, as you have to re-order all the bytes in the header to be able to
compute the CRC in two stages.  Hence my slightly facetious remark that we
should just 'promise not to do it...'  By the standard you are obliged to
re-order the fields as if you were going to do this but if, as in your
implementation, you don't actually *do* the caching, I assume that this
avoids the IPR..?

(See patent WO0207323 or 
http://l2.espacenet.com/espacenet/viewer?PN=WO0207323&CY=gb&LG=en&DB=EPD 
if you want to know more..!)

> ------------------------------
> Concerning the idea of using a CRC to detect errors in 
> decompressed data,
> surely this is as old as the history of CRCs and compression.
> Isn't this just ordinary communications engineering?
> 

Well, I'd have thought so.  Again, for the curious, see patent WO0079763, or
http://l2.espacenet.com/espacenet/viewer?PN=CA2375830&CY=gb&LG=en&DB=EPD
for the gory details.

My contention (hence my previous e-mail) is that a CRC over the compressed
data, that is only used to verify that decompression of same succeeded, is
(in fact) exactly what 'deflate', 'zlib', 'pkzip', ... do.

And, now I come to think of it, it is also as described in section 2.2 of
RFC 1950 (I'm sure I don't need to give a URL for that ;-)

Let me be clear that I am only talking about using a CRC to verify
decompression -- not any of the other tricks (e.g. context repair) that
might also be tried.  In fact, come to think of it, things like this should
really be decompressor-local optimisations anyway...

> Question:
> Could someone please explain what _serious_ IPR issues there might be
> in RFC 3095? Standard everyday communications engineering surely
> cannot be patented. 
> Does someone have a patent on the idea of using X module N to 
> communicate
> X when X is slowly varying? That's as old as using 03 to mean 2003.
> 

It's extremely tempting (albeit facetious, again) to comment that there is
quite a lot of frivolous IPR...
... but I think that there are some more-or-less valid concerns.

In order to move forward, though, we really need to determine what we can
and what we cannot use for TCP compression.  (Which is my main motivation
for pushing this thread -- although it will clearly tell us some things
about RFC 3095, which is probably no bad thing...)

Cheers,

Mark.


_______________________________________________
Rohc mailing list
Rohc@ietf.org
https://www1.ietf.org/mailman/listinfo/rohc