[rohc] 3-bit CRC and IPv6 ip_id_behavior

" Sasha Koruga " <korugas@nkiconsulting.com> Wed, 15 September 2010 21:52 UTC

Return-Path: <korugas@nkiconsulting.com>
X-Original-To: rohc@core3.amsl.com
Delivered-To: rohc@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A91533A6999 for <rohc@core3.amsl.com>; Wed, 15 Sep 2010 14:52:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.457
X-Spam-Level: *
X-Spam-Status: No, score=1.457 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FROM_EXCESS_BASE64=1.456]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OFQ3rGOrKfFt for <rohc@core3.amsl.com>; Wed, 15 Sep 2010 14:52:34 -0700 (PDT)
Received: from mail41c40.carrierzone.com (mail41c40.carrierzone.com [209.235.156.181]) by core3.amsl.com (Postfix) with ESMTP id 92AA23A6A11 for <rohc@ietf.org>; Wed, 15 Sep 2010 14:52:34 -0700 (PDT)
Received: from mail41c40.carrierzone.com (localhost [127.0.0.1]) by mail41c40.carrierzone.com (8.13.6/8.13.1) with ESMTP id o8FLqvOb019675 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <rohc@ietf.org>; Wed, 15 Sep 2010 17:52:58 -0400
Received: (from webmail@localhost) by mail41c40.carrierzone.com (8.13.6/8.12.2/Submit) id o8FLqv3P019673 for rohc@ietf.org; Wed, 15 Sep 2010 17:52:57 -0400
Received: from proxy.spawar.navy.mil (proxy.spawar.navy.mil [198.253.49.6]) by webmail.nkiconsulting.com (Webmail 5.0 V.V.I.) with HTTP for <korugas.nkiconsulting.com@webmail.nkiconsulting.com>; Wed, 15 Sep 2010 17:52:57 -0400
Message-ID: <20100915175257.og3dxgmx9yaokkc4@webmail.nkiconsulting.com>
From: "=?utf-8?b?U2FzaGEgS29ydWdh?=" <korugas@nkiconsulting.com>
To: rohc@ietf.org
Date: Wed, 15 Sep 2010 17:52:57 -0400
X-Priority: 3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
User-Agent: Webmail 6.0
X-CSC: 0
X-CHA: v=1.1 cv=3zfizZ1xcncFWMkF1UTvA93yo3tU6MD8TJqXEXvo5MU= c=1 sm=1 a=24aTTKGhCJ8A:10 a=IkcTkHD0fZMA:10 a=epDNC/4RAtnbCAm0aA01sw==:17 a=S0kSceJJmSK-25t4upAA:9 a=oSgpCqVPA5NztIilZXTzWzLddT0A:4 a=QEXdDO2ut3YA:10 a=WkljmVdYkabdwxfqvArNOQ==:117
Subject: [rohc] 3-bit CRC and IPv6 ip_id_behavior
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Robust Header Compression <rohc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rohc>
List-Post: <mailto:rohc@ietf.org>
List-Help: <mailto:rohc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Sep 2010 21:55:59 -0000

Dear ROHC enthusiasts,

I have a question concerning section 6.6.11, “control_crc3_encoding” of RFC 5225, particularly for the RTP profile.  The statement of interest: “ip_id_behavior, one octet for each IP header in the compressible  header chain starting from the outermost header.”
 
For the RTP profile, are the ipv6 ip_id_behaviors included in the crc3 coverage? We are having an internal team debate on the issue, and thus I seek your guidance. 
 
I would personally argue “no”, because at section 6.6.11, ip_id_behavior for the ipv6 header is considered non-existent. Thus, I believe that, although not explicitly stated, the crc3 encoding only includes one octet for each IPv4 header. 
Only later in the text, in the lower layers (section 6.8.2.4), does an ipv6 ip_id_behavior occasionally get defined as RANDOM, but I don't believe that subsequently definitions makes that variable into a control field. 
Furthermore, in the RTP profile section, it states:
UNCOMPRESSED v6 {
ENFORCE(ip_id_behavior_innermost.UVALUE == IP_ID_BEHAVIOR_RANDOM);
Thus it only defines one ip_id_behavior_innermost, and not an ip_id_behavior for each IPv6 header, as would be necessary for a control_crc3_encoding that would encode every ipv6 header, and as it did in the UDP profile:
UNCOMPRESSED v6 {
ENFORCE(ip_id_behavior.UVALUE == IP_ID_BEHAVIOR_RANDOM);
I believe the purpose of the RTP definition was to allow functions such as ip_id_sequential_variable() and profile_1_7_flags1_enc() to be used regardless of ipv4 or ipv6, but not to expand the  control_crc3_encoding() process. 
 
Logically, I also don't think it makes sense to compute the CRC3 of ipv6 ip_id_behavior. The purpose of CRC3 is to ensure that our control variables are in sync. However,  ipv6 ip_id_behavior is always defined as RANDOM, so it can never be out-of-sync anyway. Adding it to the CRC3 calculation would be an unnecessary computation. 
 
However, I definitely see why some of my colleagues would argue the other way: that the ip_id_behavior for each and every IP header is included in the CRC3 coverage. They argue that if the intention was to include the ip_id_behavior's of only IPv4 headers, why would it not be stated explicitly as such?
 
If you would clarify your intentions when writing the RFC, that would put our minds to rest. Thank you. 
 
Sincerely,
Sasha Koruga