ROHC library fails to handle a specific ICMP stream

Bug #580491 reported by Didier Barvaux
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
rohc
Status tracked in Rohc-main
1.2.x
Fix Released
High
Didier Barvaux
1.3.x
Fix Released
High
Didier Barvaux
Rohc-main
Fix Released
High
Didier Barvaux

Bug Description

During testing, a specific ICMP stream was not handled correctly by the ROHC library. I'm going to attach a PCAP capture of the ICMP stream to this bug report and the traces output by the non-regression tool.

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

Branch 1.2.x is affected by the bug.

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

Branch 1.3.x is affected by the bug.

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

Main branch is affected by the bug.

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

The problem comes from the way the ROHC library decodes the Offset IP-ID encoding. The shift parameter (variable p) for W-LSB encoding should be p = 0 for Offset IP-ID encoding not 2.

RFC 3095 states in section 4.5.5 "Offset IP-ID encoding" that:
   The remainder of section 4.5.5 describes how to compress/decompress
   the sequence of offsets using W-LSB encoding/decoding, with p = 0
   (see section 4.5.1). All IP-ID arithmetic is done using unsigned
   16-bit quantities, i.e., modulo 2^16.

Offset IP-ID decoding uses p = 2 at line 43 of src/common/ip_id.c. See http://bazaar.launchpad.net/~didier-barvaux/rohc/1.2.x/annotate/head:/src/common/ip_id.c#L43. Changing p = 2 into p = 0 solves the problem.

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

Fix committed to branch 1.2.x. Attached traffic capture added as new non-regression test. See http://bazaar.launchpad.net/~didier-barvaux/rohc/1.2.x/revision/118.

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

Fix committed to branch 1.3.x. Attached traffic capture added as new non-regression test. See http://bazaar.launchpad.net/~didier-barvaux/rohc/1.3.x/revision/146.

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

Fix committed to main branch. Attached traffic capture added as new non-regression test. See http://bazaar.launchpad.net/~didier-barvaux/rohc/main/revision/169.

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

Fix released in version 1.3.1.

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

Fix released in version 1.2.2.

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.