Re: [rohc] RFC4996 IP-ID with co_common and Random behavior

RoHC Team <rohc_team@dialine.fr> Mon, 05 March 2012 09:59 UTC

Return-Path: <rohc_team@dialine.fr>
X-Original-To: rohc@ietfa.amsl.com
Delivered-To: rohc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F2C1C21F871E for <rohc@ietfa.amsl.com>; Mon, 5 Mar 2012 01:59:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.505
X-Spam-Level:
X-Spam-Status: No, score=-0.505 tagged_above=-999 required=5 tests=[AWL=0.543, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rKgA3I93CnhP for <rohc@ietfa.amsl.com>; Mon, 5 Mar 2012 01:59:08 -0800 (PST)
Received: from smtp6-g21.free.fr (smtp6-g21.free.fr [IPv6:2a01:e0c:1:1599::15]) by ietfa.amsl.com (Postfix) with ESMTP id 2D99021F8717 for <rohc@ietf.org>; Mon, 5 Mar 2012 01:59:05 -0800 (PST)
Received: from [127.0.0.1] (unknown [88.185.172.218]) by smtp6-g21.free.fr (Postfix) with ESMTP id 1BBE282370; Mon, 5 Mar 2012 10:58:57 +0100 (CET)
Message-ID: <4F548E67.5060402@dialine.fr>
Date: Mon, 05 Mar 2012 10:59:03 +0100
From: RoHC Team <rohc_team@dialine.fr>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
MIME-Version: 1.0
To: Carl Knutsson <carl.knutsson@effnet.com>
References: <4F4BA931.8000203@dialine.fr> <4F547BAA.6080909@effnet.com>
In-Reply-To: <4F547BAA.6080909@effnet.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 120304-1, 04/03/2012), Outbound message
X-Antivirus-Status: Clean
Cc: rohc@ietf.org
Subject: Re: [rohc] RFC4996 IP-ID with co_common and Random behavior
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: rohc_team@dialine.fr
List-Id: Robust Header Compression <rohc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Mon, 05 Mar 2012 09:59:09 -0000

  Hello Carl,

  When using co_common compressed packet format, described page 80 of 
the RFC, ip_id is optionaly sent with the optional_ip_id_lsb{} method. Ok.

  But when the IP-ID behavior is random, the value is not present in the 
header :

      COMPRESSED not_present {
        ENFORCE((behavior == IP_ID_BEHAVIOR_RANDOM) ||
                (behavior == IP_ID_BEHAVIOR_ZERO));
      }

  So I don't understand how to send IP-ID random value ...

  Perhaps you think of the ipv4_innermost_irregular{} method, page 63, 
but I don't understand how to use this method and the compressed format 
co_common{} ...

  And I don't have any samples or reference captures file : only the RFC 
text!

  Thank you for your help and explanation.

  Best regards,

               FWX.

Le 05/03/2012 09:39, Carl Knutsson a écrit :
> Hi,
>
> Comment inline.
>
> Cheers
>
> /Calle
>
> On 02/27/2012 05:02 PM, RoHC Team wrote:
>>   Hello everybody,
>>
>>   We are coding the RFC4996 and we don't understand how to send the value
>> of the IPv4 IP-ID field, using the co_common compressed format, when the
>> IP-ID has a random behavior.
>>
>>   With the co_common format, there are :
>>   ip_id_indicator
>>   ip_id_behavior
>>   and ip_id =:= optional_ip_id_lsb( ip_id_behavior.UVALUE,
>>                                     ip_id_indicator.CVALUE)
>>
>>   with :
>>
>> optional_ip_id_lsb(behavior, indicator)
>>   {
>>     UNCOMPRESSED {
>>       ip_id [ 16 ];
>>     }
>>
>>     COMPRESSED short {
>>       ip_id =:= ip_id_lsb(behavior, 8, 3) [ 8 ];
>>       ENFORCE((behavior == IP_ID_BEHAVIOR_SEQUENTIAL) ||
>>               (behavior == IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED));
>>       ENFORCE(indicator == 0);
>>     }
>>
>>     COMPRESSED long {
>>       ip_id =:= irregular(16)  [ 16 ];
>>       ENFORCE((behavior == IP_ID_BEHAVIOR_SEQUENTIAL) ||
>>               (behavior == IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED));
>>       ENFORCE(indicator == 1);
>>     }
>>
>>     COMPRESSED not_present {
>>       ENFORCE((behavior == IP_ID_BEHAVIOR_RANDOM) ||
>>               (behavior == IP_ID_BEHAVIOR_ZERO));
>>     }
>>   }
>>
>>
>>
>>   So, if ip_id_behavior is RANDOM, ip_id is not compressed (not present)
>> ! And we can't send the value ...
>>
>>   Why not ip_id =:= irregular(16)  [ 16 ]; when behavior is RANDOM ?
>>
>
> The FN is correct. IP-ID is sent in the irregular chain.
>
>>
>>
>>   There is a contradiction with the paragraph 8.1 page 44/45 saying :
>>
>>     All of the compressed base headers transmit LSB-encoded MSN bits, the
>>     TCP Push flag, and a CRC, and in addition to this, all the base
>>     headers in the sequential packet format set contain LSB-encoded IP-ID
>>     bits.
>>
>>    o  Common header format: The common header format can be used for all
>>        kinds of IP-ID behavior and should be useful when some of the more
>>        rarely changing fields in the IP or TCP header change.  Since this
>>        header format can update control fields that decide how the
>>        decompressor interprets packets, it carries a 7-bit CRC to reduce
>>        the probability of context corruption.  This header can basically
>>        convey changes to any of the dynamic fields in the IP and TCP
>>        headers, and it uses a large set of flags to provide information
>>        about which fields are present in the header format.
>>
>
> I can't find any contradiction. Please be more specific.
>
>
>