Effnet provides a highly portable, efficient and fully compliant software implementation of RObust Header Compression Version 2 (ROHCv2) technology which is based on IETF standards RFC 5795 (RFC 4995) and RFC 5225 published in 2010 and 2008 respectively. Effnet's research and development team has been actively involved in the standardization process. ROHCv2 defines robustness mechanisms that may be used by a compressor implementation to increase the probability of decompression success when packets can be lost and/or reordered on the ROHC channel.
Effnet ROHCv2™ 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 ROHCv2™
Just like Effnet ROHC™, Effnet ROHCv2™ is an enabler of VoIP and substantially increases the capacity on various types of networks. 3GPP has recommended the use of ROHC since the Release 4 version of the specifications which include GPRS, WCDMA(UMTS) and HSPA. 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) the standards also recommend ROHCv2. ROHCv2 can also be used by satellite modem manufacturers to attain better performance over satellite links.
Highlights of the latest version, 2.7
- Added an option to use safe and secure memcopy operations.
- Significant reduction in memory usage.
- Code restructuring to reduce binary/ROM/memory size requirement.
- Fully compliant with IETF standards RFC 5795 & RFC 5225
- Lightweight implementation 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
Standards based functions:
- All profiles: Uncompressed (0x0000), RTP (0x0101), UDP (0x0102) and ESP (0x0103) and IP (0x0104)
- 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, Offset-IPID encoding, scaled RTP timestamp, timer-based RTP timestamp, Self-describing variable-length values
- Dealing with changes in semi-static fields, e.g., TTL, TOS, DF-bit, and RTP payload type, RTP X and P bits (the last three is for profile 0x0101 only).
- Heuristics for detection of IP-ID behaviour and dealing with changes in IP-ID behaviour
- Support for reordering over the link
- Use of CRC for protection of control fields
- Local repair mechanisms with enhancements
- List compression
- ROHC Segmentation and Reassembly
- Packet Size Limitation Enforcements
- Reverse Decompression
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 5795 and RFC 5225 do not standardize it, Effnet provides this component together with Effnet ROHCv2™. 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.