Version 2.2.0 published with ROHCv2 profiles

Written for rohc by Didier Barvaux on 2018-04-25

The major version 2.2.0 of the ROHC library was just released.

This release introduces the ROHCv2 IP-only, IP/ESP and IP/UDP profiles.

== About the ROHC library ==

The ROHC library provides an easy and robust way for applications to reduce their bandwidth usage on network links with limited capacity or expensive costs. Headers of network packets are compressed with the ROHC protocol and algorithms.

The ROHC protocol is very efficient for compressing VoIP streams that use RTP as transport protocol. ROHC is also suitable for compressing IP-only (IPv4 or IPv6) flows, UDP flows and many others.

The library is published as Opensource under the license GNU LGPL version 2.1 or later.

See and for more details.

== Release notes & changelogs ==

The 2.2.0 release includes:
* support for the ROHCv2 IP-only, IP/ESP and IP/UDP profiles,
* interoperability: improve conformance to ROHC standards:
   * RFC3095: handle the IR D flag of IP-only, UDP, ESP, and UDP-Lite profiles
   * RFC3843: add support for Static Chain Termination
* preliminary Wireshark dissector in Lua
* bug fixes:
  * TCP profile: do not skip MSN 65535 at compressor
  * Robustness of decompressor for TCP profile:
      * Context Replication: check whether base context does exist before using it
      * avoid assertion at decompressor with malformed TCP options:
         * length of TCP options is not a multiple of 32-bit words
         * large TCP options > 40 bytes
      * handle length-changing generic TCP options
   * kernel:
      * fix 64-bit division
      * fix nonnull warnings
      * fix test application/script for Linux kernel module
   * sniffer:
      * handle packet timing so that context re-use works correctly
      * detect layer-3 protocol from Ethernet protocol type
* Q&A:
   * fix compilation error when using gcc-7
   * decrease code complexity
   * fix some spelling mistakes detected by codespell

== Compatibility with previous releases ==

From a ROHC protocol point of view, the 2.2.0 release is not compatible with previous releases if you use one of the ROHCv1 IP-only, ESP, UDP-Lite or UDP profiles. This is due to interoperability fixes (see changelog). In general, mixing major versions for compressor and decompressor is not recommended.

The library API is compatible with versions 2.0.x and 2.1.x. Some headers/types/functions were however added or modified for ROHCv2. See for more details.

== Acknowledgements ==

Many thanks to people that reported/fixed bugs:
* Developing Solutions for helping Viveris Technologies adding the ROHCv2 profiles.
* Selvaganesan Murugesan and Developing Solutions for the D flag conformance problem.
* Developing Solutions for the lack of the Static Chain Termination feature for conformance and interoperability.
* Mikhail Gruzdev for Linux kernel fixes.
* Bi-Ruei Chiu for GCC-7 fixes.
* AFL fuzzer software for the TCP robustness fixes.

== Download ==

The source archive is available for download [1]. A sha256 checksum and a GPG signature are provided, be sure to check them [2].

[1] download files:
[2] check files:

== Installation instructions & API documentation ==

The instructions to install the library and use it are available [3]. The API documentation is available in HTML [4] and man pages [5].

[3] Tutorial:
[4] API documentation (HTML):
[5] API documentation (man):

== Feedback ==

Any feedback on the 2.2.0 release will be appreciated. You may use the mailing list to ask questions [6] and the bug tracker to report problems [7].

[6] mailing list:
[7] bug tracker:

Read all announcements