Re: RFC4996 IP-ID with co_common and Random behavior
Carl Knutsson <[email protected]> Mon, 05 Mar 2012 09:39:06 +0100
| Newsgroups | gmane.ietf.rohc |
|---|---|
| Message-ID | <[email protected]> |
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.