Project announcements

This page contains the archived announcements of the project.

Major version 2.0.0 published

Saturday 27 August 2016

The major version 2.0.0 of the ROHC library was just released!

This release is quite large:
* it is the result of 2 years of work,
* more than 50 KLOC were modified,
* a third of the changes were related to the TCP profile,
* 66 problems were detected (and fixed) with AFL fuzzing (58 for the TCP profile alone),
* 47 warnings were detected (and fixed) by static analysis (Coverity Scan).

== 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 https://rohc-lib.org/ and https://rohc-lib.org/presentation/rohc-protocol/ for more details.

== Release notes & changelogs ==

The 2.0.0 release:
* makes the TCP profile more compliant and robust (TCP profile is now ready for production),
* makes the library more robust in general (with the help of AFL fuzzer and public PCAP captures),
* removes the compatibility with the old deprecated public API,
* adds a Python binding,
* improves Linux kernel support,
* improves CPU performances.

There are also many many bugs fixes (34 are listed in the bugtracker, but many more were fixed, especially on the TCP profile). See the release notes and the changelog [1] for more details.

[1] changelog: https://github.com/didier-barvaux/rohc/blob/rohc-2.0.0/ChangeLog

== Compatibility with previous releases ==

The 2.0.0 release might not be compatible with previous 1.y.x releases for the ROHC protocol. Mixing major versions for compressor and decompressor is not recommended. This is especially true for the TCP profile that was largely reworked.

There is also an library API breakage. The 1.7.x releases introduced a new API and deprecated the old one. The old API is now gone: * If your application builds with the latest 1.7.x release without raising any deprecation warnings, upgrading to 2.0.0 is possible without additional work.
* If your application still use some functions deprecated in the 1.7.x releases, ensure to fix them
   before upgrading. See the migration guide [2] for hints.
* If you still use the very old 1.6.x releases, consider using the latest 1.7.x release as an
   intermediate step before upgrading to 2.0.0. See the migration guide [2] for hints.

[2] migration guide: https://rohc-lib.org/wiki/doku.php?id=library-migration

== Acknowledgements ==

Many thanks to people that reported/fixed bugs:
* Klaus Warnke for his bug reports and fixes on the TCP profile,
* Steven Brown for his fix that reduces librohc.so size,
* Simon Paillard for small fixes on documentation and copyright,
* Jozsef Dudas,
* Mohammad Abyan Abdullah.

== Download ==

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

[3] download files: https://rohc-lib.org/support/download/#supported-releases
[4] check files: https://rohc-lib.org/support/download/#verify-downloaded-files

== Installation instructions & API documentation ==

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

[5] Tutorial: https://rohc-lib.org/presentation/getting-started/
[6] API documentation (HTML): https://rohc-lib.org/support/documentation/API/rohc-doc-2.0.0/
[7] API documentation (man): https://rohc-lib.org/support/documentation/API/rohc-man-2.0.0/

== Feedback ==

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

[8] mailing list: https://rohc-lib.org/support/mailing-list/
[9] bug tracker: https://rohc-lib.org/developer/bugtracker/

Python binding available!

Monday 11 January 2016

Hi all,

I'm pleased to announce you that the ROHC library now got one Python binding!

It was pushed to master a few minutes ago [0]. Feedback is of course welcome.

* The Python extension is based on Swig [1].
* It supports both Python 2 and Python 3 thanks to the 'future' Python
   module [2].
* A short example is available in sources [3].
* All non-regression tests runs fine with the pure-Python
   implementation of the non-regression test [4].
* It is a bit slow when compared with the pure C implementation, but it
   makes prototyping applications so much easier.
* There are instructions for building, installing and testing the
   Python extension on the wiki [5].
* There are also some info in the README and INSTALL files in sources.

Regards,
Didier

[0] https://github.com/didier-barvaux/rohc/commit/796da05c2f329efd0cb2b09ec65aa1380e1399a0
[1] http://www.swig.org/
[2] http://python-future.org/
[3] https://github.com/didier-barvaux/rohc/blob/master/contrib/python/example.py
[4] https://github.com/didier-barvaux/rohc/blob/master/contrib/python/test_non_regression.py
[5] https://rohc-lib.org/wiki/doku.php#python_binding

Valid SSL certificate for the website

Sunday 31 August 2014

The https://rohc-lib.org/ website now provides a valid SSL certificate! It is signed by Gandi SAS [https://gandi.net/].

I also configured the web server to use HTTP Strict Transport Security (HSTS) [https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security]. So, after one first visit in HTTPS, your browser will remember to always visit the website in HTTPS next times.

New website for the ROHC library!

Sunday 23 February 2014

I'm very pleased to announce that a new shiny web site is available for the project!

The URL doesn't change, but the web site looks better and gives much more information than the previous one.

So, have a look at http://rohc-lib.org/ and don't hesitate to send your feedback (broken links, mis-spelling, missing information...) on the project mailing list.

Didier

ROHC monthly report (September)

Sunday 29 September 2013

To keep everybody in touch with what's happening in the dev branch of the ROHC library, a progress report like this one will be written every month.

The format and details of the report is not definitive. It could change in next reports. For the first time, the report will be short (no link to commits, IETF RFC, or project wiki), so ask questions on the mailing list if needed.

And, the first report also contains some information that are older than September 2013.

Library features:
 * Add support for ROHCv1 TCP profile (stability alpha, in progress).
 * Add extension support for UO-1-ID packet.
 * Add support for repair upon CRC failure.
 * Greatly improve the performances of the W-LSB decoding algorithm for
   large windows and lossy streams.
 * Enhanced, cleaner library API (more details to come later on this
   topic).

Miscellaneous library enhancements:
 * Improve doxygen documentation.
 * Generate and install man pages from doxygen comments.
 * Add new examples of library usage in examples/ subdir.
 * Use cmocka unit testing library http://www.cmocka.org/ for some tests
 * Improve code by using function attributes when possible.
 * Various code cleanup.

Application features:
 * Make the compression/decompression performance application run on
   non-x86 Linux systems.
 * Add a new tool named 'rohc_gen_stream' that generates large
   (un)compressed stream for performance testing
 * Sniffer: add --disable option to disable one or more ROHC profiles.
 * Sniffer: update statistics output for the TCP profile.
 * Sniffer: add daemon mode and Gentoo init script.
 * Non-regression tool: robustify the parsing of CLI arguments.

Bug fixes:
 * Bug #809028: Write man pages for public API
 * Bug #896842: Add extension support for UO-1-ID packet
 * Bug #1208900: RTP profile: unscaled TS shall always be encoded with
                 W-LSB in UO* packets
 * Bug #1209260: Wrong W-LSB decoding if interpretation interval
                 straddles the field boundaries
 * Bug #1210498: IP-ID shall be transmitted verbatim in IR and IR-DYN
                 packets
 * Bug #1212769: Fail to unlock/remove feedbacks if ring is full of
                 locked feedbacks

Maintenance versions 1.5.3 and 1.6.1 are available!

Thursday 15 August 2013

The maintenance versions 1.5.3 and 1.6.1 of the ROHC library were released!

== 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 GPL version 2 or later.

See http://rohc-lib.org/ for more details.

== Release notes & changelogs ==

These versions are maintenance releases with bug fixes only. Some important bugs were corrected. Some bugs were not fixed to keep compatibility with previous 1.5.x or 1.6.x releases.

Because of unfixed bugs, it is strongly recommended not to use any 1.5.x versions with unsafe sources of RTP packets. If you are concerned, please upgrade to the 1.6.0 version.

See the release notes and the changelogs [1, 2] for more details.

[1] https://launchpad.net/rohc/+milestone/1.5.3#release-notes
[2] https://launchpad.net/rohc/+milestone/1.6.1#release-notes

== Compatibility with previous releases ==

The 1.5.3 release is compatible with all previous 1.5.x releases.
The 1.6.1 release is compatible with all previous 1.6.x releases.

== End of life ==

The 1.5.x and 1.6.x branches are still maintained.

== Acknowledgments ==

None.

== Download ==

The source archives and the API documentation are available for download [3, 4]. Traffic captures used for non-regression tests are shipped in separate archives in order to reduce the size of the source archives.

[3] https://launchpad.net/rohc/+milestone/1.5.3#downloads
[4] https://launchpad.net/rohc/+milestone/1.6.1#downloads

== Installation instructions & API documentation ==

The instructions to install the library [5] and use it [6] are available on the wiki. The API documentation too [7].

[5] installation: http://rohc-lib.org/wiki/doku.php?id=library-install
[6] using: http://rohc-lib.org/wiki/doku.php?id=library-first-application
[7] API documentation: http://rohc-lib.org/wiki/doku.php?id=library-api

== Feedback ==

Any feedback on these 2 releases will be appreciated. You may use the mailing list to ask questions [8] and the bug tracker to report problems [9].

[8] mailing list: https://launchpad.net/~rohc
[9] bug tracker: https://bugs.launchpad.net/rohc/

TCP profile in mainline

Sunday 7 July 2013

The ROHCv1 TCP profile is now merged in the main development branch.

The merge was performed to ease testing and debugging the TCP profile in preparation of the upcoming 1.7.0 release.

The TCP profile was contributed by FWX. Since then, Viveris Technologies and Didier Barvaux cleaned a little bit the code up, but some work remains:
 - there are probably inconsistencies with ROHC standards,
 - there is duplicate code with other IP-based profiles,
 - the TCP profile crashes in less than 5 minutes with the sniffer tool
   on a small LAN while browsing the web.

As you see, the TCP profile is still in beta quality, so DO NOT USE IT IN PRODUCTION ENVIRONMENTS for the moment.

Bug reports are welcome if there are easily reproducible: provide a PCAP capture that makes the non-regression tool crash or report a (de)compression failure.

Major version 1.6.0 published

Sunday 9 June 2013

The major version 1.6.0 of the ROHC library was just released after 7 months of work.

== 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 GPL version 2 or later.

See http://rohc-lib.org/ for more details.

== Release notes & changelogs ==

The 1.6.0 release adds support for:
 - ROHC constant IP-ID,
 - ROHC segment,
 - improved handling of TS, TS_STRIDE, TS_OFFSET and TS_SCALED values,
 - improved RTP stream detection,
 - new trace framework,
 - Linux kernel,
 - OpenBSD,
 - Mingw64,
 - CYGWIN,
 - build with GCC 4.8, Clang 3.2, and TCC,
 - two new tools: a fuzzer and a sniffer.

There are also 33 bugs fixed. See the release notes and the changelog [1] for more details.

[1] https://launchpad.net/rohc/+milestone/1.6.0#release-notes

== Compatibility with previous releases ==

The 1.5.0 release might not be compatible with previous 1.3.x, 1.4.x and 1.5.x releases for the ROHC protocol: mixing major versions for compressor and decompressor is not recommended.

The library API is however compatible with older versions 1.3.x, 1.4.x and 1.5.x. Any program building with an older version should build fine with the 1.6.0 version. Except if the program was using some library definitions that were made public by mistake but were not part of the official API. If you find yourself in such a case, ask for help on the mailing list.

== Acknowledgements ==

Many thanks to people that contributed new features:
 - Mikhail Gruzdev, Thales Communications, and Viveris Technologies
   for Linux kernel support.
 - Audric Schiltknecht and Julien Bernard from Viveris Technologies
   for constant IP-ID support, the new RTP profile detection mechanism,
   and the new trace framework.
 - Yura for the ROHC fuzzer.
 - Raman Gupta for ROHC-over-Ethernet tunnel support.

Many thanks also people that reported/fixed bugs:
 - Audric Schiltknecht (Viveris Technologies),
 - FWX,
 - Elisabeth,
 - Julien Bernard (Viveris Technologies),
 - Raman Gupta,
 - Yura.

== Download ==

The source archives and the API documentation are available for download [2]. Traffic captures used for non-regression tests are shipped in separate archives in order to reduce the size of the source archives.

[2] https://launchpad.net/rohc/+milestone/1.6.0#downloads

== Installation instructions & API documentation ==

The instructions to install the library [3] and use it [4] are available on the wiki. The API documentation too [5].

[3] installation: http://rohc-lib.org/wiki/doku.php?id=library-install
[4] using: http://rohc-lib.org/wiki/doku.php?id=library-first-application
[5] API documentation: http://rohc-lib.org/wiki/doku.php?id=library-api

== Feedback ==

Any feedback on the 1.6.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: https://launchpad.net/~rohc
[7] bug tracker: https://bugs.launchpad.net/rohc/

Maintenance versions 1.3.5, 1.4.3, and 1.5.2 are available!

Sunday 9 June 2013

The maintenance versions 1.3.5, 1.4.3, and 1.5.2 of the ROHC library
were released!

== 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 GPL
version 2 or later.

See http://rohc-lib.org/ for more details.

== Release notes & changelogs ==

These versions are maintenance releases with bug fixes only. Some
important bugs were corrected. Some bugs were not fixed to keep
compatibility with previous 1.3.x, 1.4.x, or 1.5.x releases, or because
fixing the problem required invasive code changes.

Because of unfixed bugs, it is strongly recommended not to use any
1.3.x and 1.4.x versions with unsafe sources of IP or ROHC packets.
It is also strongly recommended not to use any 1.5.x versions with
unsafe sources of RTP packets. If you are concerned, please upgrade to
the 1.6.0 version.

See the release notes and the changelogs [1, 2, 3] for more details.

[1] https://launchpad.net/rohc/+milestone/1.3.5#release-notes
[2] https://launchpad.net/rohc/+milestone/1.4.3#release-notes
[3] https://launchpad.net/rohc/+milestone/1.5.2#release-notes

== Compatibility with previous releases ==

The 1.3.5 release is compatible with all previous 1.3.x releases.
The 1.4.3 release is compatible with all previous 1.4.x releases.
The 1.5.2 release is compatible with all previous 1.5.x releases.

== End of life ==

The 1.3.x branch reaches end of life, the 1.3.5 release is the last
maintenance version of the 1.3.x branch. The 1.3.0 version was released
3 years ago.

The 1.4.x branch reaches end of life, the 1.4.3 release is the last
maintenance version of the 1.4.x branch. The 1.4.0 version was released
1 year ago.

== Acknowledgments ==

Many thanks to people for bug reports and/or bug fixes, especially
Yura, Elisabeth, and Viveris Technologies.

== Download ==

The source archives and the API documentation are available for
download [4, 5, 6]. Traffic captures used for non-regression tests
are shipped in separate archives in order to reduce the size of the
source archives.

[4] https://launchpad.net/rohc/+milestone/1.3.5#downloads
[5] https://launchpad.net/rohc/+milestone/1.4.3#downloads
[6] https://launchpad.net/rohc/+milestone/1.5.2#downloads

== Installation instructions & API documentation ==

The instructions to install the library [7] and use it [8] are
available on the wiki. The API documentation too [9].

[7] installation: http://rohc-lib.org/wiki/doku.php?id=library-install
[8] using: http://rohc-lib.org/wiki/doku.php?id=library-first-application
[9] API documentation: http://rohc-lib.org/wiki/doku.php?id=library-api

== Feedback ==

Any feedback on these 3 releases will be appreciated. You may use the
mailing list to ask questions [10] and the bug tracker to report
problems [11].

[10] mailing list: https://launchpad.net/~rohc
[11] bug tracker: https://bugs.launchpad.net/rohc/

New IP/ROHC application!

Tuesday 2 April 2013

We are proud to announce a new application. It's a tunnel application similar the ROHC/UDP tunnel of the ROHC library, but designed for production!

=== Origins ===

The tunnel application was designed and developed by Viveris Technologies [2].

Viveris Technologies is a French company working in the IT field. The company provides to the ROHC project the skills of its engineering teams in the telecommunications, network and Linux fields.

Viveris Technologies proposes the knowledge and expertise gained on the ROHC library to companies and people that are interested in network header compression, but do not have the skills or the time to integrate the ROHC mechanisms in their application or infrastructure.

Kudos to Alexandre Chataignon [3] that wrote the code at Viveris, and to Viveris Technologies for publishing the code under the GPLv2+ license!

=== Features ===

The application is based on ROHC, of course. It encapsulates the ROHC packets in IP packets (to avoid the UDP overhead). Because of that it is named IP/ROHC (iprohc in code).

In addition, we implemented frame packing: several ROHC packets are put together in one single IP header to reduce the tunnel overhead even more [4].

=== Software architecture ===

The IP/ROHC application is divided into two parts: the server and the client. The server part handles sessions with several clients simultaneously.

The client and the server establish two communication channels between them: the control channel that uses TCP for reliability, and the data channel that uses UDP for efficiency.

The client establishes and closes a session on the control channel. The client transmits compressed data on the data channel. The control channel is authenticated and encrypted with TLS.

Both the client and the server uses TUN interfaces to fake network interfaces.

=== Supported platforms ===

The application was tested under Linux, and more especially Debian Squeeze, CentOS 5, Arch, and Gentoo. It should however work on every Linux distributions. If not, report a bug and/or send a patch.

The application requires libyaml, gnutls, and ROHC. A RPM spec and a Debian package are available in the source tree.

=== Code / development ===

The IP/ROHC application is hosted on the same project as the ROHC library. The website, the wiki, the bugtracker, and the mailing list will shared among the two code bases.

The code of the tunnel application is however not located within ROHC library. There is a dedicated Bazaar repository for it [1]. This way, the 2 applications will evolve at their own rate.

[1] IP/ROHC code: https://code.launchpad.net/~didier-barvaux/rohc/iprohc
[2] Viveris Technologies: http://www.viveris.fr/ (sorry, in French only)
[3] Alexandre Chataignon: https://launchpad.net/~xouillet
[4] IP encapsulation means less overhead, but it also means that NAT
    gateways won't handle it well in many cases.

Linux kernel support available

Tuesday 2 April 2013

We are proud to announce that the ROHC library has now support for the Linux kernel!

=== Features ===

The Linux kernel [1] support comes with 2 kernel modules:
 1/ one module to export the ROHC library to the Linux kernel,
 2/ one module to use the ROHC library and test it in the Linux kernel.

The first module is named rohc.ko. It does nothing except exporting the API of the ROHC library in kernel land. The hard work was not on this module itself, but in the library source code to make it builds fine for the Linux kernel.

The second module is a test module. It is therefore named rohc_test.ko. The 2nd module depends on the first one for ROHC features. This module can run all the non-regression tests of the ROHC library in the Linux kernel.

=== Software architecture ===

The test module creates 2 ROHC compressor/decompressor couples. It also provides 4 entry points per couple in /proc to communicate between the kernel and the user space.

Writing one IP packet on the /proc/rohc_comp1_in file makes the kernel compress the packet with compressor #1 and write the resulting compressed packet on the /proc/rohc_comp1_out file. Writing one ROHC packet on the /proc/rohc_decomp2_in file makes the kernel decompress the packet with decompressor #2 and write the resulting decompressed packet on the /proc/rohc_decomp2_out file.

A userspace application is provided to run all the non-regression tests of the ROHC library in the Linux kernel. The userspace application reads packets from the PCAP captures, sends them to the kernel module through the /proc/xxx file, then waits for the result on the associated /proc/xxx file.

The 2 kernel modules are located in the 'linux' subdir:
  ./linux/kmod.c
  ./linux/kmod_test.c

The userspace application is located in:
  ./test/non_regression/test_non_regression_kernel.c

=== Supported platforms ===

The Linux module was tested with Fedora 18 (kernel 3.6.x), and Gentoo (kernel 3.5.x). It should however work on every Linux distributions. If not, report a bug and/or send a patch.

As one might expect, the Linux module does not work for the OSes of the BSD family and Windows ;-)

=== Code location ===

The Linux kernel support is not part of any ROHC release yet. It will be shipped with the close 1.6.0 release. In the meantime, you may get it from the Bazaar repository [2].

=== License ===

The code is published under the GPL version 2 or later (GPLv2+).

=== Credits ===

The first module was written by Mikhail Gruzdev, Thales Communications [3], and Viveris Technologies [4]. The second module was written only by Thales Communications and Viveris Technologies.

The code property on the first module is shared among several people/entities, because the work was done twice. This work was done by Viveris Technologies for Thales Communications in a private fork several months ago (along with the 2nd module for testing). The first module was written again later as a separate work by Mikhail Gruzdev. Mikhail kindly published his work on the ROHC mailing list. Thales Communications and Viveris Technologies agreed to publish their private work, so the result is a merge of everything.

Kudos to Mikhail Gruzdev for his work and patch!

Thales Communications [3] is part of Thales, a global technology leader for the Defense & Security and the Aerospace & Transport markets.

Viveris Technologies [4] is a French company working in the IT field. The company provides to the ROHC project the skills of its engineering teams in the telecommunications, network and Linux fields. Viveris Technologies proposes the knowledge and expertise gained on the ROHC library to companies and people that are interested in network header compression, but do not have the skills or the time to integrate the ROHC mechanisms in their application or infrastructure.

[1] Linux kernel: http://kernel.org/
[2] ROHC main branch:
    https://code.launchpad.net/~didier-barvaux/rohc/main
[3] Thales Communications: http://www.thalescomminc.com/
[4] Viveris Technologies: http://www.viveris.fr/ (sorry, in French only)

Bugfix versions 1.3.4, 1.4.2, and 1.5.1 are available

Saturday 8 December 2012

The maintenance versions 1.3.4, 1.4.2, and 1.5.1 of the ROHC library were just released!

== 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 [1] as Opensource under the GNU GPL2+ license [2].

[1] http://rohc-lib.org/
[2] http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

== Release notes & changelogs ==

These versions are maintenance releases with bug fixes only. Some important bugs were corrected. Some were not fixed to keep compatibility with previous 1.3.x, 1.4.x, or 1.5.x releases. See the release notes and the changelogs [3] [4] [5] for the complete list.

[3] https://launchpad.net/rohc/+milestone/1.3.4#release-notes
[4] https://launchpad.net/rohc/+milestone/1.4.2#release-notes
[5] https://launchpad.net/rohc/+milestone/1.5.1#release-notes

== Compatibility with previous releases ==

The 1.3.4 release is compatible with all previous 1.3.x releases.
The 1.4.2 release is compatible with all previous 1.4.x releases.
The 1.5.1 release is compatible with all previous 1.5.x releases.

== Download ==

The source archives and the API documentation are available for download [6] [7] [8]. Traffic captures used for non-regression tests are shipped in separate archives in order to reduce the size of the source archives.

[6] https://launchpad.net/rohc/+milestone/1.3.4#downloads
[7] https://launchpad.net/rohc/+milestone/1.4.2#downloads
[8] https://launchpad.net/rohc/+milestone/1.5.1#downloads

== Installation instructions & API documentation ==

The instructions to install the library [9] and use it [10] are available on the wiki. The API documentation too [11].

[9] installation: http://rohc-lib.org/wiki/doku.php?id=library-install
[10] using: http://rohc-lib.org/wiki/doku.php?id=library-first-application
[11] API documentation: http://rohc-lib.org/

== Feedback ==

Any feedback on these 3 releases will be appreciated. You may use the mailing list to ask questions [12] and the bug tracker to report problems [13].

[12] mailing list: https://launchpad.net/~rohc
[13] bug tracker: https://bugs.launchpad.net/rohc/

Major release 1.5.0 of the ROHC library

Sunday 21 October 2012

The major version 1.5.0 of the ROHC library is available for download!

== 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 GNU GPL2+ license. See http://rohc-lib.org/ for more details.

== Release notes & changelogs ==

The 1.5.0 version adds support for the ROHC ESP profile, and greatly improves the portability of the library [1].

Important changes include:
 - Support for ESP profile (provided by FWX).
 - Support for FreeBSD.
 - Support Microsoft Windows (through MinGW) systems.
 - Better support for ARM and PowerPC platforms.
 - Support Clang and PCC compilers.

See the release notes and the changelogs [2] for the complete list.

[1] Supported systems: http://rohc-lib.org/wiki/doku.php?id=supported-systems
[2] Release notes: https://launchpad.net/rohc/+milestone/1.5.0#release-notes

== Compatibility with other releases ==

The 1.5.0 release is NOT compatible with all previous 1.3.x or 1.4.x releases. The format of ROHC packets was changed to be closer to ROHC standards. The user API is however compatible.

The 1.5.0 release will be compatible with future 1.5.x releases. There is however no guaranty for the future 1.6.0 release (it will depend on bugs that are discovered).

== Acknowledgments ==

Many thanks to people for bug reports and/or bug fixes, and more especially: Ahmed Fathy, Arne, Audric Schiltknecht, FWX, Keith Harry, Mikhail Gruzdev, Olivier Bonhomme, qingbaibai, Viveris Technologies.

== Download ==

The source archives and the API documentation are available for download [3]. Traffic captures used for non-regression tests are shipped in a separate archive in order to reduce the size of the source archives.

[3] https://launchpad.net/rohc/+milestone/1.5.0#downloads

== Installation instructions & API documentation ==

The instructions to install the library [4], test it [5] and use it [6] are available online. The API documentation too [7].

[4] installation: http://rohc-lib.org/wiki/doku.php?id=library-install
[5] testing: http://rohc-lib.org/wiki/doku.php?id=rohc-tunnel
[6] using: http://rohc-lib.org/wiki/doku.php?id=library-first-application
[7] API documentation: http://rohc-lib.org/doc/rohc-doc-1.5.0/

== Feedback ==

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

[8] mailing list: https://launchpad.net/~rohc
[9] bug tracker: https://bugs.launchpad.net/rohc/

Wiki now available!

Saturday 14 July 2012

A wiki engine was setup for the project!

http://rohc-lib.org/wiki/

There is currently:
 - an introduction to the ROHC protocol,
 - a glossary,
 - the content of the FAQs hosted on Launchpad.

No registration is required to write in the wiki, so feel free to participate!

ROHC 1.3.3 and 1.4.1 released!

Saturday 14 July 2012

The maintenance versions 1.3.3 and 1.4.1 of the ROHC library were just released!

Note that the 1.2.x branch reached end of life, the 1.2.3 release was the last 1.2.x maintenance version of the 1.2.x branch.

== 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 on Launchpad [1] as Opensource under the GNU GPL2+ license.

[1] https://launchpad.net/rohc/

== Release notes & changelogs ==

These versions are maintenance releases with bug fixes only. Some important bugs were corrected. Some were not fixed to keep compatibility with previous 1.3.x or 1.4.x releases. See the release notes and the changelogs [2] [3] for the complete list.

[2] https://launchpad.net/rohc/+milestone/1.3.3#release-notes
[3] https://launchpad.net/rohc/+milestone/1.4.1#release-notes

== Compatibility with previous releases ==

The 1.3.3 release is compatible with all previous 1.3.x releases.
The 1.4.1 release is compatible with all previous 1.4.x releases.

== Download ==

The source archives and the API documentation are available for download [4] [5]. Traffic captures used for non-regression tests are shipped in separate archives in order to reduce the size of the source archives.

[4] https://launchpad.net/rohc/+milestone/1.3.3#downloads
[5] https://launchpad.net/rohc/+milestone/1.4.1#downloads

== Installation instructions & API documentation ==

The instructions to install the library [6], test it [7] and use it [8] are available online. The API documentation too [9].

[6] installation: https://answers.launchpad.net/rohc/+faq/635
[7] testing: https://answers.launchpad.net/rohc/+faq/639
[8] using: https://answers.launchpad.net/rohc/+faq/638
[9] API documentation: http://rohc-lib.org/

== Feedback ==

Any feedback on these two releases will be appreciated. You may use the mailing list to ask questions [10] and the bug tracker to report problems [11].

[10] mailing list: https://launchpad.net/~rohc
[11] bug tracker: https://bugs.launchpad.net/rohc/

Major release 1.4.0 of the ROHC library

Thursday 17 May 2012

The major version 1.4.0 of the ROHC library is available for download!

== 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 on Launchpad [1] as Opensource under the GNU GPL2+ license.

[1] https://launchpad.net/rohc/

== Release notes & changelogs ==

The 1.4.0 version does not bring any big new ROHC feature, however the version greatly improves conformance with ROHC standards (40 bugs were fixed).

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.

See the release notes and the changelogs [2] for the complete list.

[2] https://launchpad.net/rohc/+milestone/1.4.0#release-notes

== Compatibility with other releases ==

The 1.4.0 release is NOT compatible with all previous 1.2.x or 1.3.x releases. The format of ROHC packets was changed to be closer to ROHC standards.

The 1.4.0 release will be compatible with future 1.4.x releases. There is however no guaranty for the future 1.5.0 release (it will depend on bugs that are discovered).

== Acknowledgments ==

Many thanks to people for bug reports and/or bug fixes, and more especially: Ahmed Fathy, Arne, François W., hzkjdxwktx, Klaus Warnke, laAnna Hao, Neeraj Gupta, qingbaibai and Viveris Technologies.

== Download ==

The source archives and the API documentation are available for download [3]. Traffic captures used for non-regression tests are shipped in a separate archive in order to reduce the size of the source archives.

[3] https://launchpad.net/rohc/+milestone/1.4.0#downloads

== Installation instructions & API documentation ==

The instructions to install the library [4], test it [5] and use it [6] are available online. The API documentation too [7].

[4] installation: https://answers.launchpad.net/rohc/+faq/635
[5] testing: https://answers.launchpad.net/rohc/+faq/639
[6] using: https://answers.launchpad.net/rohc/+faq/638
[7] API documentation: http://rohc-lib.org/

== Feedback ==

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

[8] mailing list: https://launchpad.net/~rohc
[9] bug tracker: https://bugs.launchpad.net/rohc/

ROHC 1.2.3 and 1.3.2 released!

Thursday 17 May 2012

The maintenance versions 1.2.3 and 1.3.2 of the ROHC library were just released!

Note that the 1.2.x branch reaches end of life, the 1.2.3 release is the last 1.2.x maintenance version of the 1.2.x branch.

== 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 on Launchpad [1] as Opensource under the GNU GPL2+ license.

[1] https://launchpad.net/rohc/

== Release notes & changelogs ==

These versions are maintenance releases with bug fixes only. Some important bugs were corrected. Some were not fixed to keep compatibility with previous 1.2.x or 1.3.x releases. See the release notes and the changelogs [2] [3] for the complete list.

[2] https://launchpad.net/rohc/+milestone/1.2.3#release-notes
[3] https://launchpad.net/rohc/+milestone/1.3.2#release-notes

== Compatibility with previous releases ==

The 1.2.3 release is compatible with all previous 1.2.x releases.
The 1.3.2 release is compatible with all previous 1.3.x releases.

== Download ==

The source archives and the API documentation are available for download [4] [5]. Traffic captures used for non-regression tests are shipped in a separate archive for the 1.3.2 release in order to reduce the size of the source archives.

[4] https://launchpad.net/rohc/+milestone/1.2.3#downloads
[5] https://launchpad.net/rohc/+milestone/1.3.2#downloads

== Installation instructions & API documentation ==

The instructions to install the library [6], test it [7] and use it [8] are available online. The API documentation too [9].

[6] installation: https://answers.launchpad.net/rohc/+faq/635
[7] testing: https://answers.launchpad.net/rohc/+faq/639
[8] using: https://answers.launchpad.net/rohc/+faq/638
[9] API documentation: http://rohc-lib.org/

== Feedback ==

Any feedback on these two releases will be appreciated. You may use the mailing list to ask questions [10] and the bug tracker to report problems [11].

[10] mailing list: https://launchpad.net/~rohc
[11] bug tracker: https://bugs.launchpad.net/rohc/

Continuous integration

Sunday 13 November 2011

A continuous integration platform was setup for the ROHC library. Continuous integration [1] aims at improving software quality. It should avoid some build bugs on x86_64 or ARM archs in the future.

The continuous integration platform is based on Buildbot [2]. The status of the platform is available online: http://buildbot.rohc-lib.org:8011/

There are currently only 3 build slaves available:
 - Gentoo Linux x86 (GCC 4.5.3),
 - Gentoo Linux x86_64 (GCC 4.5.3),
 - Gentoo Linux ARM (GCC 4.5.3).

If one is willing to setup a buildbot slave on which the ROHC library can be built at regular interval of time, please tell so on the mailing list [3].

A new FAQ entry [4] was created to summarize the content of this announcement. The ticket #800841 [5] also contains some information about the build bugs that motivated the Buildbot setup.

[1] http://en.wikipedia.org/wiki/Continuous_integration
[2] http://trac.buildbot.net/
[3] http://launchpad.net/~rohc/+join
[4] https://answers.launchpad.net/rohc/+faq/1799
[5] https://bugs.launchpad.net/rohc/+bug/800841

ROHC 1.2.2 and 1.3.1 released !

Sunday 30 May 2010

Versions 1.2.2 and 1.3.1 of the ROHC library are now released !

Versions 1.2.2 and 1.3.1 are maintenance releases with bug fixes only. Some important bugs were corrected. See the release notes and the changelog at https://launchpad.net/rohc/+milestone/1.2.2 and https://launchpad.net/rohc/+milestone/1.3.0 for more details.

The source archives and the API documentation are available for download at https://launchpad.net/rohc/+download. Traffic captures used for non-regression tests are shipped in a separate archive for the 1.3.1 release in order to reduce the size of the source tarball.

The API documentation is also available online: http://www.tech.viveris.com/docs/rohc/

The instructions to install the library, test it and use it are also available:
  - see FAQ #635 for installation procedure,
  - see FAQ #639 for easy testing procedure,
  - see FAQ #638 to learn how to use library in your own program.

ROHC 1.2.1 and 1.3.0 released !

Wednesday 24 March 2010

Versions 1.2.1 and 1.3.0 of the ROHC library are now released.

Version 1.2.1 is a maintenance release with bug fixes only. Some important bugs were corrected, some others were not corrected to keep compatibility with version 1.2.0. See the release notes and the changelog at https://launchpad.net/rohc/+milestone/1.2.1 for more details.

Version 1.3.0 is a release that targets better conformance with IETF RFCs. To achieve this goal, the format of several ROHC packets changed, so release 1.3.0 is not compatible with 1.2.x versions. See the release notes and the changelog at https://launchpad.net/rohc/+milestone/1.3.0 for more details.

The source archives and the API documentation are available for download at https://launchpad.net/rohc/+download. Starting from version 1.3.0, traffic captures used for non-regression tests are shipped in a separate archive in order to reduce the size of the source tarball.

The API documentation is also available online, it will be soon updated for version 1.3.0: http://www.tech.viveris.com/docs/rohc/

The instructions to install the library, test it and use it have been updated for version 1.3.0:
  - see FAQ #635 for installation procedure,
  - see FAQ #639 for easy testing procedure,
  - see FAQ #638 to learn how to use library in your own program.

ROHC 1.2.0 released !

Tuesday 4 August 2009

The version 1.2.0 of the ROHC library is now released. This version does not add any new feature but update the source code for new versions of GCC and update the documentation and copyrights.

See https://launchpad.net/rohc/trunk/1.2.0 for the release notes and the full changelog.

Publish old releases 1.0.0 and 1.1.0

Monday 3 August 2009

Old releases 1.0.0 and 1.1.0 were not published yet. They are now available for download here: http://launchpad.net/rohc/+download

ROHC library announced on mailing lists of ROHC and IP-DVB Working Groups of IETF

Monday 3 August 2009

Cédric Baudoin from Thales Alenia Space announced the publication of the ROHC library on the mailing lists of the ROHC and IP-DVB Working Groups of the IETF. We hope some people there will be interested by an open source ROHC library.

Announcement on the mailing list of the ROHC Working Group: http://www.ietf.org/mail-archive/web/rohc/current/msg05782.html
Announcement on the mailing list of the ROHC Working Group: not archived yet, should be available soon at http://www.erg.abdn.ac.uk/ipdvb/archive/

ROHC source code available

Monday 3 August 2009

The latest source code for the ROHC library is now available in the bazaar repository https://code.launchpad.net/~didier-barvaux/rohc/main. Feel free to download it, test it and contribute to it.

ROHC library hosted at launchpad

Monday 3 August 2009

A project was just created at launchpad to host the ROHC library development. More to come...

Releases

Next major release: 2.1.0 Git branch roadmap
Current stable release: 2.0.0 download release notes
Previous stable release: 1.7.0 download release notes

Sponsors

Viveris Technologies logo
Viveris Technologies
provides to the project the skills of its engineering teams in the telecommunications, network and Linux fields.

Viveris Technologies proposes the knowledge and expertise gained on the ROHC library to companies and people that are interested in network header compression, but do not have the skills or the time to integrate the ROHC mechanisms in their application or infrastructure.

back to top