Re: [rohc] The discussion on slope(s)

Kristofer Sandlund <kristofer.sandlund@effnet.com> Thu, 02 December 2004 21:42 UTC

Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id QAA02051 for <rohc-web-archive@ietf.org>; Thu, 2 Dec 2004 16:42:20 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CZyo6-0007sx-Iy for rohc-web-archive@ietf.org; Thu, 02 Dec 2004 16:48:11 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CZuxO-00067L-KG; Thu, 02 Dec 2004 12:41:30 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CZroA-00073K-EU for rohc@megatron.ietf.org; Thu, 02 Dec 2004 09:19:46 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id JAA20582 for <rohc@ietf.org>; Thu, 2 Dec 2004 09:19:44 -0500 (EST)
Received: from [194.237.235.30] (helo=effnet.com) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CZrth-0004Nw-95 for rohc@ietf.org; Thu, 02 Dec 2004 09:25:30 -0500
Received: from effnet.com (c-b97c71d5.04-205-6c756c1.cust.bredbandsbolaget.se [213.113.124.178]) (authenticated bits=0) by effnet.com (8.12.3/8.12.3) with ESMTP id iB2DIdLh012222 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT); Thu, 2 Dec 2004 14:18:40 +0100
Message-ID: <41AF25BE.2090203@effnet.com>
Date: Thu, 02 Dec 2004 15:25:02 +0100
From: Kristofer Sandlund <kristofer.sandlund@effnet.com>
Organization: Effnet
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.6) Gecko/20040429
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "Lars-Erik Jonsson (LU/EAB)" <lars-erik.jonsson@ericsson.com>
Subject: Re: [rohc] The discussion on slope(s)
References: <A943FD84BD9ED41193460008C7918050072E99B5@ESEALNT419.al.sw.ericsson.se>
In-Reply-To: <A943FD84BD9ED41193460008C7918050072E99B5@ESEALNT419.al.sw.ericsson.se>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.1 (/)
X-Scan-Signature: 0ddefe323dd869ab027dbfff7eff0465
Content-Transfer-Encoding: 7bit
Cc: rohc@ietf.org, cabo@tzi.org, "'zhigang.c.liu@nokia.com'" <zhigang.c.liu@nokia.com>, "Ghyslain Pelletier (LU/EAB)" <ghyslain.pelletier@ericsson.com>
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Robust Header Compression <rohc.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
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>
Sender: rohc-bounces@ietf.org
Errors-To: rohc-bounces@ietf.org
X-Spam-Score: 0.1 (/)
X-Scan-Signature: 3e15cc4fdc61d7bce84032741d11c8e5
Content-Transfer-Encoding: 7bit

Hi all,

as I've stated before, I don't think slope is defined in 3095, and to me that 
would be good-enough for closing this issue. But since we do not have consensus, 
let's present some problems with accepting this scheme.

The slope scheme has (at least) one patological worst case where it simply 
destroys the entire compression. (if I have managed to understand how it was 
meant to work, that is).

- Let's say we're operating in R-mode.
- The slope will only be used for decompression when packets without any TS bits 
are sent (R-0, R-0-CRC).
- The slope gets out of synch between compressor and decompressor (bit errors 
will be able to do this, especially since the slope itself would not be covered 
by a CRC). For example, let's say we got hc_slope=0, dc_slope=1. Note that the 
compressor will only see ACKs in order to update slope, it will not know _what_ 
slope value is being ACKed in the case where the decompressor gets it wrong.
- The traffic sent is video where you'd have TS: X, X, X, X, X+1, X+1, X+1, X+1 
(4 packets per video frame).
- What the compressor is likely to send will be something like UOR-2-TS, R-0, 
R-0, R-0, UOR-2-TS, R-0, R-0, R-0 (assuming immediate ACK).
   Note: From what I understand of the pRTT algorithm in 3095, it is enough to 
ACK the type 2 packets, so there is nothing in the spec to guarantee that ANY 
R-0-CRC packets will be sent.
- So, when the UOR-2-TS packets are decompressed, slope will not be used and the 
decompressor sends out an ACK which makes the compressor go back to SO state 
immediately (send R-0 packets again).
- When the R-0 packets are received, they will be erroneously decompressed due 
to the slope mismatch, but this will NOT BE DETECTED by the decompressor since 
there is no CRC on these packets (the packet with a bad timestamp value gets 
delivered out into the network). The only way a slope mismatch can be detected 
is through the reception of a R-0-CRC packet. And in this patological worst case 
stream the compressor will never produce such a packet.

So, the conclusion of this example is that all packets will be decompressed and 
delivered to the network, but 75% of them will have a bad timestamp (video 
frames spread out into a larger number of packets will get even worse figures). 
And, the decompressor will never even detect that it is doing this. Of course, 
this is a worst case situation, but I cannot see that it is _impossible_. To me, 
this situation is unacceptable and if this has even one chance in a million to 
occur, it is enough for me to say that we should not accept this scheme even if 
it had been defined in the spec.
And, if there is one worst case by just doing a quick theoretical analysis, 
there is a large chance that interop testing this will provide other near-worst 
cases (if running losses and/or BER). I also doubt that it is possible to 
specify the slope-updating mechanism well enough to get it to fully interoperate 
under lossy conditions (since the update is implicit and not crc-covered).

/Kristofer Sandlund, Effnet AB

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