Re: RFC4996 IP-ID with co_common and Random behavior
RoHC Team <[email protected]> Mon, 05 Mar 2012 10:59:03 +0100
| Newsgroups | gmane.ietf.rohc |
|---|---|
| Message-ID | <[email protected]> |
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 =3D=3D IP_ID_BEHAVIOR_RANDOM) ||
(behavior =3D=3D 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 =E9crit :
> 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 =3D:=3D 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 =3D:=3D ip_id_lsb(behavior, 8, 3) [ 8 ];
>> ENFORCE((behavior =3D=3D IP_ID_BEHAVIOR_SEQUENTIAL) ||
>> (behavior =3D=3D IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED));
>> ENFORCE(indicator =3D=3D 0);
>> }
>>
>> COMPRESSED long {
>> ip_id =3D:=3D irregular(16) [ 16 ];
>> ENFORCE((behavior =3D=3D IP_ID_BEHAVIOR_SEQUENTIAL) ||
>> (behavior =3D=3D IP_ID_BEHAVIOR_SEQUENTIAL_SWAPPED));
>> ENFORCE(indicator =3D=3D 1);
>> }
>>
>> COMPRESSED not_present {
>> ENFORCE((behavior =3D=3D IP_ID_BEHAVIOR_RANDOM) ||
>> (behavior =3D=3D 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 =3D:=3D 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.
>
>
>