Effnet provides a highly portable, efficient and fully compliant software implementation of RObust Header Compression (ROHC) and ROHC-IP technology which are based on IETF standards RFC 3095 (published in 2001) and RFC 3843 (published in 2004). They have been designed and standardized to address the need for high compression efficiency even in the presence of high bit error rates and long round trip times typically observed in wireless networks e.g. cellular and satellite.
Note about ROHC-IP™
Since Effnet ROHC™ version 2.10, the Effnet ROHC-IP™ product is now integrated as a profile into the Effnet ROHC™ product.
Effnet ROHC™ header chain support
Both IPv4 and IPv6 are supported, with extension headers.
Support for AH, GRE, MINE and ESP-NULL headers.
Common applications of Effnet ROHC™
Effnet ROHC™ is an enabler of VoIP and substantially increases the capacity on networks such as HSPA, LTE and NR. The ROHC scheme has been adopted by standardization bodies such as 3GPP for efficient use of radio resources. 3GPP has recommended the use of ROHC since the Release 4 version of the specifications which include GPRS, WCDMA(UMTS), HSPA and in Release 5, ROHC is considered an essential part of the IP-based Multimedia Subsystem, IMS. From 3GPP Release 8+ (LTE) and Release 15+ (NR), ROHC is required for use in VoLTE and VoNR respectively. ROHC is also being adopted by satellite modem manufacturers to attain better performance over satellite links.
Effnet scientists participated as authors of the IETF standard ROHC (RFC 3095). Effnet's research and development team is actively involved in the standardization process including interoperability and field tests as well as further developments.
Highlights of the latest version, 2.12
- Added a feature to backup and restore context memory to nonvolatile memory for power saving purposes.
- Improved code safety and stability.
- Fully compliant with IETF standards RFC3095, RFC3843 & RFC4815
- Lightweight implementation including all features suitable for low-end devices
- Highly portable ANSI C code with no operating system dependencies
- Platform, endianness and byte-order independent
- Highly configurable with compile and run-time options
- Highly modular with external memory management
- Multi-threading support
- Extensively tested, in-house as well as during interoperability and field tests.
Standards based functions:
- All profiles: Uncompressed (0x0000), RTP (0x0001), UDP (0x0002), ESP (0x0003) and IP (0x0004)
- Compression of IPv4 and IPv6 with extension headers
- All states and modes including mode transitions
- All ROHC packet types, including all extensions: 0, 1, 2, and 3
- Both interspersed and piggyback feedback and feedback options
- All encoding mechanisms: LSB, W-LSB, scaled RTP timestamp, timer-based RTP timestamp
- Local repair mechanisms with enhancements
- List compression
- ROHC Segmentation and Reassembly
- Packet Size Limitation Enforcements
- Reverse Decompression
- Support for static chain termination in IP profile
- Support for constant IP-ID in IP profile
Additional features for improved efficiency and operation:
- Full featured and efficient classifier and context manager module
- Efficient VoIP flow compression using:
- Improved field pattern detection algorithm
- Link layer information
- Effective use of feedback channel using a rate control mechanism
- Support for running and switching between multiple instances for redundancy and fail safe operation (Used in large systems)
- Support for 3GPP2 C.S0085-0 standard recommendations for header compression.
Effnet Classifier and Context Manager (EFFRCCM™)
The classification and context management is an essential component of header compression function. Even though RFC 3095 and RFC 3843 do not standardize it, Effnet provides this component together with Effnet ROHC™. The classifier and context manager does the following functions:
- Performs exact matching on all required header fields for ROHC, including IP version (IPv4 or IPv6), Source address, Source port, Destination address, Destination port, RTP SSRC (in special case).
- Handles AH, GRE and MINE headers.
- Handles IPv6 extension headers (sometimes used within IPv4, if tunneled).
- Detects and avoids fragmentation and IPv4 options.
- Provides profile hint for a packet based on header chain present.
- Provides context associated with a packet via context management.
Effnet provides support and maintenance services covering problem reporting, bug fixes, updates, training, consulting and integration. A sample application code together with detailed documentation covering well defined and easy to use API is provided to speed up the process of integration.