Decompression failure of specific IPv4 stream with changing RND

Bug #1088004 reported by Didier Barvaux
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
rohc
Status tracked in Rohc-main
1.3.x
Invalid
Undecided
Didier Barvaux
1.4.x
Invalid
Undecided
Didier Barvaux
Rohc-1.5.x
Fix Released
Medium
Didier Barvaux
Rohc-main
Fix Released
Medium
Didier Barvaux

Bug Description

The ROHC library fails to decompress the attached stream. It is one IPv4 stream with changing RND (RND=1 -> RND=0) and less than 5 bits of IP-ID delta to transmit.

As RND changed, the extension 3 is required. As there are some IP-ID bits to transmit, the UOR-2-ID packet is chosen. As there are less than 5 bits of IP-ID delta to transmit, the compressor puts these bits in the UOR-2-ID base header. Because the RND flag changed, the compressor also puts 16 bits of IP-ID delta in extension 3 (flag I=1). The decompressor fails to decompress such a packet because it receives more than 16 bits of IP-ID delta.

Solution:
 1/ at compressor, put zeroes in the 5 bits of the UOR-2-ID base header if RND flag changed in the last few packets.
 2/ at decompressor, warn about > 16 IP-ID bits but do not stop parsing, simply ignore superfluous bits.

For the 2nd point, stop parsing if ROHC_RFC_STRICT_DECOMPRESSOR is defined.

Tags: library rtp
Revision history for this message
Didier Barvaux (didier-barvaux) wrote :
Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Confirmed on 1.5.x branch.

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Branch 1.4.x is not affected.

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :

Branch 1.3.x is not affected.

Revision history for this message
Didier Barvaux (didier-barvaux) wrote :
Revision history for this message
Didier Barvaux (didier-barvaux) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.