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
Option 'SN-Not-Valid' not supported - IR packet
Optional dynamic part is always sent (planned for 2.5.0) - IR-DYN packet
- 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
Not supported for TCP profile (planned for 2.6.0)
ROHCv1 profiles
- Uncompressed (0x0000)
- Profile fully supported
- IP / UDP / RTP (0x0001)
- Profile supported except for:
Compressed CSRC List
Timer-based compression of RTP Timestamp - IP / UDP (0x0002)
- Profile fully supported
- IP / ESP (0x0003)
- Profile fully supported
- IP-only (0x0004)
- Profile supported except for:
Cancel Mode Transition
CONTEXT_MEMORY Feedback Option - Link-Layer Assisted Profile for IP / UDP / RTP (0x0005)
-
Profile not supported
Zero-byte Support for R-mode - IP / TCP (0x0006)
- AH/GRE/MINE headers not supported (planned for 2.7.0)
- IP / UDP-Lite / RTP (0x0007)
- Profile not supported
- IP / UDP-Lite (0x0008)
- Profile was removed in releases >= 2.3.0
ROHCv2 profiles
- IP / UDP / RTP (0x0101)
-
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)
-
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)
-
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)
-
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)
- Profile not supported (not planned yet)
- IP / UDP-Lite (0x0108)
- Profile not supported (not planned yet)
Encoding methods
The following encoding methods are defined by the ROHC protocol:
- Least Significant Bits (LSB) encoding
- Window-based LSB (W-LSB) encoding
- Scaled RTP Timestamp encoding
- Timer-based compression of RTP Timestamp
- Offset IP-ID encoding
- Self-describing variable-length (SDVL) values
- Encoded values across several fields in compressed headers
if more bits than stricly necessary are available, more bits are sent - Compressed CSRC List
Miscellaneous features
Miscellaneous features that are not part of a specific category:
- Handling Multiple Levels of IP Headers
up to 2 chained IPv4/IPv6 headers - Compressed IPv4 Header Extension List
- Compressed IPv6 Header Extension List
- Authentication Header (AH) Compression
- Encapsulating Security Payload Header (ESP) Compression
- 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
- 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: