rohc 1.4.0

Release 1.4.0 targets internal cleanup, better conformance with RFCs, reliable context re-use and reliable list compression for IPv6 header extensions.

Milestone information

Project:
rohc
Series:
1.4.x
Version:
1.4.0
Released:
 
Registrant:
Didier Barvaux
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
45 Didier Barvaux
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
6 Invalid, 39 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon rohc-1.4.0.tar.bz2 (md5, sig) Source code for ROHC library 1.4.0 710
last downloaded 17 weeks ago
download icon rohc-tests-1.4.0.tar.bz2 (md5, sig) Test captures for ROHC library 1.4.0 85
last downloaded 16 weeks ago
download icon rohc-doc-1.4.0.tar.bz2 (md5, sig) API documentation for ROHC library 1.4.0 96
last downloaded 16 weeks ago
Total downloads: 891

Release notes 

With 40 bugs fixed, the 1.4.0 release better conforms to ROHC standards than previous 1.2.x and 1.3.x versions. There is no big new ROHC feature added, only corrections.

Other important changes include:
  - The library is now completely thread-aware.
  - New API method rohc_comp_get_last_packet_info() added to retrieve some information
     about the last compressed packet.
  - Several new API functions added for getting descriptions on packet types, extension types,
     mode and states.
  - API crc_init_table(), crc_get_polynom() and crc_table_X from API are deprecated (they are
    still available, but emit a warning).
  - New application that generates ROHC compression statistics added (old broken statistics
     scripts removed).
  - New application for testing compression computing performance added.

Changelog 

View the full changelog

Compatibility:
    Version 1.4.0 is not compatible with versions < 1.4.0 because of several fixes related to
    IETF RFCs that change the format of ROHC packets.

License/Authors:
    Add Didier Barvaux's personal email address in addition to Viveris one.

Acknowledgments for bug reports and/or bug fixes:
    Ahmed Fathy, Arne, François W., hzkjdxwktx, Klaus Warnke, laAnna Hao, qingbaibai, Viveris
    Technologies.

Main changes:
    Make the library completely thread-aware.
    Add new API method rohc_comp_get_last_packet_info() to retrieve some information
            about the last compressed packet.
    Add several new API functions for getting descriptions on packet types, extension types,
            mode and states.
    Deprecate crc_init_table(), crc_get_polynom() and crc_table_X from API (they are still
            available, but emit a warning).
    Rework list compression in a more understandable and robust way.
    Add a simple example program in subdir examples/.
    Remove the outdated "measures" directory.
    Remove context repair (maybe added again later).
    Update main and features pages in API documentation.
    Add new application and script to generate ROHC compression statistics (old broken
            statistics scripts removed).
    Add new application for testing compression computing performance.

Build system:
    Install README, INSTALL, COPYING, AUTHORS, ChangeLog files.
    Update the way API documentation is generated: configure option --enable-doc and
            'make install' replace 'make doc'.
    Avoid installing private ROHC headers on the system during install.
    Make 'make' less verbose to get output like Linux kernel build.
    Remove useless or deprecated checks from configure.ac.
    Remove support for 'make report', 'make check' supersedes it.
    Configure: avoid adding -lpcap to LDFLAGS several times.
    Configure: add support for PACKAGE_URL.
    Fix build with CFLAGS="-DNDEBUG".

Q&A:
    Move private functions/definitions from public headers to private headers.
    Clearly separate public and private functions in several files.
    Avoid useless system/internal header inclusions in order to reduce header
            interdependencies.
    Create enums for packet types, extension types, CID types and SDVL types.
    Remove the ugly internal boolean type.
    Remove duplicated checks for non-IPv4/IPv6 and fragmented packets.
    Check pointers against NULL instead of 0.
    Add many const and static keywords when appropriate.
    Add many nonnull and warn_unused_result attributes when appropriate.
    Use uint8_t, uint16_t, uint32_t and size_t instead of int or unsigned int when appropriate.
    Remove the 'version' fields in compression/decompression profiles.
    Fix print formats: use %u instead of %d if type is unsigned.
    Avoid modifying input parameters (data and length) in several functions.
    Add debug traces to help debugging.
    Add many assertion to ease debugging.
    Improve code style (uncrustify config file stored in contrib/).
    Improve English spelling.
    Remove some dead code.
    Improve the non-regression test application.
    Add new network captures for the non-regression test.
    Add unit test for LSB encoding/decoding at wraparound.
    Add functional test for FEEDBACK-2 packets.
    Add robustness test for feedback-only packets.
    Add robustness test for damaged packet handling.
    Add robustness test for empty payload handling.

Bug fixes:
    Bug #409562: failed to run the statistics tool
    Bug #549619: rohctunnel not installed in /usr/sbin
    Bug #555695: GCC warnings on x86-64
    Bug #555875: ROHC library mishandles RTP Payload Type (PT) changes
    Bug #556049: rohc0 creation failed for rohc 1.3.0 library
    Bug #560589: ROHC library mishandles non-IPv4/IPv6 packets
    Bug #560994: inaccurate help printed by non-regression application
    Bug #565470: Compression/decompression failure with large IPv6 extension
    Bug #580462: Incorrect test for Uncompressed profile with non-IPv4/v6 packets
    Bug #580491: ROHC library fails to handle a specific ICMP stream
    Bug #604517: Error in Decompressor for RTP profile
    Bug #606919: Function rohc_feedback_flush() not referenced in the compression API
    Bug #622128: FEEDBACK-2 without option contains 12 bits of SN, not 8 bits
    Bug #622329: ROHC library fails to decompress ROHC packets with empty payloads
    Bug #622402: Incorrect format for UO-1-ID packet
    Bug #622736: coding sequence number in Extension 3
    Bug #642850: The ROHC PCAP captures do not use the Ethertype assigned to ROHC
    Bug #759460: don't compress a packet only with feedback
    Bug #761955: IP-ID in extension-3 not compressed as it shall be
    Bug #763496: Large CIDs shall be bound to the [0-16383] range
    Bug #764707: R-TS = 0, Tsc = 0 in EXT3 no allowed
    Bug #766277: crc calc outer ip hdr wrong
    Bug #767354: Wrong packet decision in FO state
    Bug #776482: RTP Marker (M) bit must be transmitted if set
    Bug #777852: Wrong Next Header field in compressed IPv6 extension headers
    Bug #778541: wrong bitmask format for insertion/removal schemes of list compression
    Bug #799856: failure reported when decoding feedback-only packets
    Bug #800829: No check for doxygen
    Bug #800830: No check for gnuplot
    Bug #800835: ROHC library build emits warnings on x86-64
    Bug #800841: Setup buildbots for continuous integration
    Bug #803648: Decompression failure for IPv4 stream with empty payload
    Bug #804552: UOR-2 packets cannot be used if bits(SN) > 14
    Bug #808475: Correctly handle the LSB wraparound
    Bug #886523: Build of tests and apps fails with support for shared libs disabled
    Bug #888287: tests fail on ARM
    Bug #897831: Library fails to build with GCC < 4.5
    Bug #897849: Library fails to build with GCC 4.6
    Bug #948711: mode field not correctly parsed from RTP dynamic chain
    Bug #970762: Wrong SN in feedback

0 blueprints and 45 bugs targeted

Bug report Importance Assignee Status
609736 #609736 Wild pointer in ipv6_get_header() and ipv4_get_header() functions 1 Undecided Didier Barvaux  3 Invalid
886901 #886901 Build fails on CentOS 5.5 1 Undecided Didier Barvaux  3 Invalid
889189 #889189 make distcheck fails 1 Undecided Didier Barvaux  3 Invalid
889203 #889203 Build on ARM of the 1.2.x branch fails 1 Undecided Didier Barvaux  3 Invalid
892570 #892570 Fail to cross-compile for ARM on x86 1 Undecided Didier Barvaux  3 Invalid
892708 #892708 C++ compiler required by configure when it should not 1 Undecided Didier Barvaux  3 Invalid
555875 #555875 ROHC library mishandles RTP Payload Type (PT) changes 3 High Didier Barvaux  10 Fix Released
560589 #560589 ROHC library mishandles non-IPv4/IPv6 packets 3 High Didier Barvaux  10 Fix Released
565470 #565470 Compression/decompression failure with large IPv6 extension 3 High Didier Barvaux  10 Fix Released
580491 #580491 ROHC library fails to handle a specific ICMP stream 3 High Didier Barvaux  10 Fix Released
604517 #604517 Error in Decompressor for RTP profile 3 High Didier Barvaux  10 Fix Released
897831 #897831 Library fails to build with GCC < 4.5 3 High Didier Barvaux  10 Fix Released
897849 #897849 Library fails to build with GCC 4.6 3 High Didier Barvaux  10 Fix Released
970762 #970762 Wrong SN in feedback 3 High Didier Barvaux  10 Fix Released
409562 #409562 failed to run the statistics tool 4 Medium Didier Barvaux  10 Fix Released
549619 #549619 rohctunnel not installed in /usr/sbin 4 Medium Didier Barvaux  10 Fix Released
580462 #580462 Incorrect test for Uncompressed profile with non-IPv4/v6 packets 4 Medium Didier Barvaux  10 Fix Released
622128 #622128 FEEDBACK-2 without option contains 12 bits of SN, not 8 bits 4 Medium Didier Barvaux  10 Fix Released
622329 #622329 ROHC library fails to decompress ROHC packets with empty payloads 4 Medium Didier Barvaux  10 Fix Released
622402 #622402 Incorrect format for UO-1-ID packet 4 Medium Didier Barvaux  10 Fix Released
622736 #622736 coding sequence number in Extension 3 4 Medium Didier Barvaux  10 Fix Released
759460 #759460 don't compress a packet only with feedback 4 Medium Didier Barvaux  10 Fix Released
761955 #761955 IP-ID in extension-3 not compressed as it shall be 4 Medium Didier Barvaux  10 Fix Released
763496 #763496 Large CIDs shall be bound to the [0-16383] range 4 Medium Didier Barvaux  10 Fix Released
764707 #764707 R-TS = 0, Tsc = 0 in EXT3 no allowed 4 Medium Didier Barvaux  10 Fix Released
766277 #766277 crc calc outer ip hdr wrong 4 Medium Didier Barvaux  10 Fix Released
767354 #767354 Wrong packet decision in FO state 4 Medium Didier Barvaux  10 Fix Released
776482 #776482 RTP Marker (M) bit must be transmitted if set 4 Medium Didier Barvaux  10 Fix Released
777852 #777852 Wrong Next Header field in compressed IPv6 extension headers 4 Medium Didier Barvaux  10 Fix Released
778541 #778541 wrong bitmask format for insertion/removal schemes of list compression 4 Medium Didier Barvaux  10 Fix Released
799856 #799856 failure reported when decoding feedback-only packets 4 Medium Didier Barvaux  10 Fix Released
803648 #803648 Decompression failure for IPv4 stream with empty payload 4 Medium Didier Barvaux  10 Fix Released
808475 #808475 Correctly handle the LSB wraparound 4 Medium Didier Barvaux  10 Fix Released
886523 #886523 Build of tests and apps fails with support for shared libs disabled 4 Medium Didier Barvaux  10 Fix Released
888287 #888287 tests fail on ARM 4 Medium Didier Barvaux  10 Fix Released
948711 #948711 mode field not correctly parsed from RTP dynamic chain 4 Medium Didier Barvaux  10 Fix Released
555695 #555695 GCC warnings on x86-64 5 Low Didier Barvaux  10 Fix Released
556049 #556049 rohc0 creation failed for rohc 1.3.0 library 5 Low Didier Barvaux  10 Fix Released
560994 #560994 inaccurate help printed by non-regression application 5 Low Didier Barvaux  10 Fix Released
606919 #606919 Function rohc_feedback_flush() not referenced in the compression API 5 Low Didier Barvaux  10 Fix Released
642850 #642850 The ROHC PCAP captures do not use the Ethertype assigned to ROHC 5 Low Didier Barvaux  10 Fix Released
800829 #800829 No check for doxygen 5 Low Didier Barvaux  10 Fix Released
800830 #800830 No check for gnuplot 5 Low Didier Barvaux  10 Fix Released
800835 #800835 ROHC library build emits warnings on x86-64 5 Low Didier Barvaux  10 Fix Released
800841 #800841 Setup buildbots for continuous integration 6 Wishlist Didier Barvaux  10 Fix Released
This milestone contains Public information
Everyone can see this information.