Supported features
The ROHC library implements a large part of the IETF's RFCs related to ROHC. However some requirements or features are not implemented.
The current page provides an overview of the library's state. In sections hereafter, you
can identify unsupported features and limitations by their colors. Links to RFCs
, open bugs
, closed bugs
, feature requests
or patches
may also be provided.
Table of content:
- Main features
- ROHC profiles
- Encoding methods
- Miscellaneous features
- Non-standard ROHC enhancements
- Out of project's scope
Main features
Features related to the ROHC framework:
- ROHC compression
- ROHC decompression
- ROHC channels: small and large Channel IDs (CIDs)
- ROHC modes:
- ROHC states:
- Feedback:
- Feedback packets
- Piggy-backed feedbacks
- Negative ACKs
- ROHC packets:
- Feedback packets
![[RFC 3095, section 5.2.2]](/images/icons/info_off.png)
Option 'SN-Not-Valid' not supported - IR packet
![[RFC 3095, section 5.2.3]](/images/icons/info_off.png)
Optional dynamic part is always sent (planned for 2.5.0) - IR-DYN packet
![[RFC 3095, section 5.2.3]](/images/icons/info_off.png)
- Packet type 0
- UO-0
- R-0
- R-0-CRC
- Packet type 1 for R-mode
- R-1
- R-1-TS
- R-1-ID
- Packet type 1 for U/O-mode
- Packet type 2
- Extensions
- Extension type 0
- Extension type 1
- Extension type 2
- Extension type 3
- Feedback packets
- Actions upon CRC failure
![[RFC 3095, section 5.3.2.2.5]](/images/icons/info_off.png)
Not supported for TCP profile (planned for 2.6.0)
ROHCv1 profiles
- Uncompressed (0x0000)
![[RFC 3095, section 5.10]](/images/icons/info_off.png)
- Profile fully supported
- IP / UDP / RTP (0x0001)
![[RFC 3095]](/images/icons/info_off.png)
- Profile supported except for:
Compressed CSRC List![[RFC 3095, section 5.8.5.2]](/images/icons/info_off.png)
Timer-based compression of RTP Timestamp
- IP / UDP (0x0002)
![[RFC 3095, section 5.11]](/images/icons/info_off.png)
- Profile fully supported
- IP / ESP (0x0003)
![[RFC 3095, section 5.12]](/images/icons/info_off.png)
- Profile fully supported
![[closed bug #952134]](/images/icons/bug_closed.png)
- IP-only (0x0004)
![[RFC 3843]](/images/icons/info_off.png)
- Profile supported except for:
Cancel Mode Transition![[RFC 3843, section 3.4]](/images/icons/info_off.png)
CONTEXT_MEMORY Feedback Option
- Link-Layer Assisted Profile for IP / UDP / RTP (0x0005)
![[RFC 3408]](/images/icons/info_off.png)
-
Profile not supported
![[RFC 4362]](/images/icons/info_off.png)
Zero-byte Support for R-mode
- IP / TCP (0x0006)
![[RFC 4996]](/images/icons/info_off.png)
- AH/GRE/MINE headers not supported (planned for 2.7.0)
- IP / UDP-Lite / RTP (0x0007)
![[RFC 4019]](/images/icons/info_off.png)
- Profile not supported
- IP / UDP-Lite (0x0008)
![[RFC 4019]](/images/icons/info_off.png)
- Profile was removed in releases >= 2.3.0
ROHCv2 profiles
- IP / UDP / RTP (0x0101)
![[RFC 5225]](/images/icons/info_off.png)
-
Support added in 2.3.0
IPv6 extension headers not supported (planned for 2.7.0)
AH/GRE/MINE headers not supported (planned for 2.7.0) - IP / UDP (0x0102)
![[RFC 5225]](/images/icons/info_off.png)
-
Support added in 2.2.0
IPv6 extension headers not supported (planned for 2.7.0)
AH/GRE/MINE headers not supported (planned for 2.7.0) - IP / ESP (0x0103)
![[RFC 5225]](/images/icons/info_off.png)
-
Support added in 2.2.0
IPv6 extension headers not supported (planned for 2.7.0)
AH/GRE/MINE headers not supported (planned for 2.7.0) - IP-only (0x0104)
![[RFC 5225]](/images/icons/info_off.png)
-
Support added in 2.2.0
IPv6 extension headers not supported (planned for 2.7.0)
AH/GRE/MINE headers not supported (planned for 2.7.0) - IP / UDP-Lite / RTP (0x0107)
![[RFC 5225]](/images/icons/info_off.png)
- Profile not supported (not planned yet)
- IP / UDP-Lite (0x0108)
![[RFC 5225]](/images/icons/info_off.png)
- Profile not supported (not planned yet)
Encoding methods
The following encoding methods are defined by the ROHC protocol:
- Least Significant Bits (LSB) encoding
![[RFC 3095, section 4.5.1]](/images/icons/info_off.png)
- Window-based LSB (W-LSB) encoding
![[RFC 3095, section 4.5.2]](/images/icons/info_off.png)
- Scaled RTP Timestamp encoding
![[RFC 3095, section 4.5.3]](/images/icons/info_off.png)
- Timer-based compression of RTP Timestamp
![[RFC 3095, section 4.5.4]](/images/icons/info_off.png)
- Offset IP-ID encoding
![[RFC 3095, section 4.5.5]](/images/icons/info_off.png)
- Self-describing variable-length (SDVL) values
![[RFC 3095, section 4.5.6]](/images/icons/info_off.png)
- Encoded values across several fields in compressed headers
![[RFC 3095, section 4.5.7]](/images/icons/info_off.png)
if more bits than stricly necessary are available, more bits are sent - Compressed CSRC List
![[RFC 3095, section 5.8.5.2]](/images/icons/info_off.png)
Miscellaneous features
Miscellaneous features that are not part of a specific category:
- Handling Multiple Levels of IP Headers
![[RFC 3843, section 3.2]](/images/icons/info_off.png)
up to 2 chained IPv4/IPv6 headers![[feature request generic+tunneling]](/images/icons/bug_feature.png)
- Compressed IPv4 Header Extension List
![[RFC 3095, section 5.8.5.1]](/images/icons/info_off.png)
- Compressed IPv6 Header Extension List
![[RFC 3095, section 5.8.5.1]](/images/icons/info_off.png)
- Authentication Header (AH) Compression
![[RFC 3095, section 5.8.4.2]](/images/icons/info_off.png)
- Encapsulating Security Payload Header (ESP) Compression
![[RFC 3095, section 5.8.4.3]](/images/icons/info_off.png)
- GRE Header Compression
(planned for 2.7.0) - Forced context reinitialization controled by the user
- Fixed sizes parameters in order to specify the size of ROHC packets
- Reverse decompression
![[RFC 3095, section 6.1]](/images/icons/info_off.png)
- ROHC padding
(since 2.1.0) - ROHC segmentation
(since 1.7.0) - Context Replication
(since 2.1.0)
Out of project's scope
The following features will probably never be implemented in the library. There are better places to implement them (eg. 'pppd' for 'ROHC over PPP'):
Releases
Next major release: 2.4.0 Git branch roadmap
Current stable release: 2.3.1 download release notes
Previous stable release: 2.2.0 download release notes
Want to help?
If you want to help the project by contributing a feature, take a look at this page and at the project roadmap. Then come discuss about them on the mailing lists.
Supported platforms
Architectures:
Operating Systems:
Compilers:
ROHC library