← Back to team overview

rohc team mailing list archive

Re: ROHC unidirectional mode

 

Hi Jawad,

> Thanks for helping me previously with the bidirectional mode. Now I am
> working with the unidirectional mode with an erroneous channel and I
> have a few concerns which I would like to ask. In my case
> 
> 1- When the decompressor gets a packet with a CRC error, it tries to
> recover error and if the decompressor fails to recover even one
> erroneous packet, it fails to decompress all the proceeding packets
> (without error) till the next IR packet arrives. So only one packet
> with error desynchronises the decompresser.
>
>  2-According to the standards the decompresser should wait for at
> least k out of n packets to desynchronise. Is this function
> implemented in the libraray? Is there any parameter in ROHC library
> that defines the value of k ( the minimum number of packets unable to
> be decompressed before the decompresser goes out of synchronisation) ?
> 
> It seems that with the incoming erroneous packet the decompresser
> updates its profile and tries the next good packet with this updated
> profile which results in the failure of decompression even if the
> packet is an error free packet.

The error management in the ROHC library should be as follow:
 - One error should not desynchronise the decompressor. It might
   eventually be corrected by the decompressor when CRC failure is
   detected. So there is 0 or 1 lost packet.
 - N consecutive errors (with N lesser than the W-LSB width) should not
   desynchronise the decompressor but all errors can not be corrected.
   So there is up to N lost packets.
 - N consecutive errors (with N greater than the W-LSB width) might
   desynchronise the decompressor (it depends on the stream regularity).
   all subsequent packets are lost until an IR packet is received. So
   there is up to CHANGE_TO_IR_COUNT lost packets.

The W-LSB width may be found in the sources at:
http://bazaar.launchpad.net/~didier-barvaux/rohc/main/annotate/head:/src/common/wlsb.h#L33

The CHANGE_TO_IR_COUNT value may be found in the sources at:
http://bazaar.launchpad.net/~didier-barvaux/rohc/main/annotate/head:/src/common/rohc.h#L461

If you got an IP stream with which the ROHC library does not match the
above behaviour, please send to this list a PCAP capture of the stream
and the loss scheme you used to produce the problem. The problem will be
investigated. 

Be caution with the size of the PCAP capture. If it too large for the
list, try to remove useless packets at the end of the capture after the
problem occurs and/or try to compress the file.

Regards,
Didier Barvaux

Attachment: signature.asc
Description: PGP signature


References