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

Raffles <raffles@gluft.com> Mon, 05 March 2012 23:02 UTC

Return-Path: <raffles@gluft.com>
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 80FDC21E8015 for <rohc@ietfa.amsl.com>; Mon, 5 Mar 2012 15:02:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.791
X-Spam-Level:
X-Spam-Status: No, score=-0.791 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35, HTML_MESSAGE=0.001, MIME_HTML_ONLY=1.457]
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 HhM4jx9rcQZF for <rohc@ietfa.amsl.com>; Mon, 5 Mar 2012 15:02:29 -0800 (PST)
Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.171]) by ietfa.amsl.com (Postfix) with ESMTP id 251AC21E8011 for <rohc@ietf.org>; Mon, 5 Mar 2012 15:02:29 -0800 (PST)
Received: from [192.168.1.66] (93-97-78-217.zone5.bethere.co.uk [93.97.78.217]) by mrelayeu.kundenserver.de (node=mrbap4) with ESMTP (Nemesis) id 0MBjiJ-1SCh9A48H9-00AtQj; Tue, 06 Mar 2012 00:02:28 +0100
Message-ID: <4F5545FD.1020203@gluft.com>
Date: Mon, 05 Mar 2012 23:02:21 +0000
From: Raffles <raffles@gluft.com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
MIME-Version: 1.0
To: rohc@ietf.org
References: <4F4BA931.8000203@dialine.fr> <4F547BAA.6080909@effnet.com> <4F548E67.5060402@dialine.fr>
In-Reply-To: <4F548E67.5060402@dialine.fr>
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:SpiH2tt9W7zcj/MNNMX0nwkUBehg3P5wJRgmfCjNxhQ yif+0IsYK4nEwBHiwHPPpl5ulGr6vg2geyLsiNvpRQgrg2y12U IBqPckk8lGbMqYoXSzP0ZCDWP0XeKiy/mG2dHauqN8g1UBxmEt CPtp0i63NsdBZBbZYPHtRm3X6dFoKTvH+MS6kie2S4gUvUMg8E 811BxjvE6JzDxNgv6a064984ohqAUvia9P2+rQ6vsyZirhSo1G ywZ4OX36qdNFK7VYex4wu2gRLWhrTMYZLvkTbfOS9L+S37jN9x m+zk6ZSta2e4NX/n04nXAT8mxURaIoO6Sw9Im9aV1E7eLGcITJ SQcoXmh/CwsGoztUKe4c=
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
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 23:02:30 -0000

Hello,

It looks like you are looking at the optional_ip_id_lsb encoding method on page 76. This encoding method is only used in the co_common compressed format (page 80), which I believe is what you are concerned with. In the optional_ip_id_lsb encoding method, the compressed ip_id has no bindings in the "not_present" case. That is, the not_present format leaves the ip_id to be defined elsewhere - it does not define it as absent (i.e. zero bits compressed length), which is, I suspect, how you may have interpreted the FN.

The English name for the format I think has misled you here. Remember that the header is defined in multiple chains (section 6.2 on page 21). I haven't looked but I assume the "not_present" format name is referring to the fact that the ip_id is not present in this chain. The ip_id must be defined in a different chain in this case. If it was not defined anywhere then the spec would be in error.

Caveat I am not that familiar with RFC 4996 so I may have misunderstood, but this is how the FN looks to me.

I hope this helps

Regards

R@ffles

On 05/03/2012 09:59, RoHC Team wrote:
 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.



_______________________________________________
Rohc mailing list
Rohc@ietf.org
https://www.ietf.org/mailman/listinfo/rohc" rel="nofollow">https://www.ietf.org/mailman/listinfo/rohc


--
Raffles (Robert Finking)
m: 0789 463 9887
e: raffles@gluft.com
w: gluft.com

         O                  O
 OOOOOO  O  O    O OOOOOO OOOOO
 O    O  O  O    O OOOOO    O
 OOOOOO  O  OOOOOO O        O
 OOOOOO
      we  care  about  software

-----------------------------------------------------------------
Gluft Ltd. Registered No.: 6795336      VAT No.: 974 2755 83
The information contained in this e-mail and any attachments is
proprietary to Gluft Ltd and must not be passed to any third
party without permission. This communication is for information
only and shall not create or change any contractual relationship.
Please consider the environment before printing. Thank you.
-----------------------------------------------------------------