TODO list
This document tries to list all the missing features of the ROHC library. See also the list of tasks for more details about the most important parts of the TODO list.
If you have questions about one of the items listed below and/or interested by implementing one of them, contact us on the mailing list or IRC.
Library
ROHC features
Base framework:
R-mode (only U-mode and O-mode are implemented yet)
RFC
IR packet without dynamic chain for RTP profile (scheduled for 2.4.0)
add actions upon CRC failures for non-TCP profiles RFC RFC (versions >= 1.7.0)
add actions upon CRC failures for TCP profile (scheduled for 2.4.0)
Extensions:
Add extension support for UO-1-ID packet bug (versions >= 1.7.0)
extension 2 support for UOR-2-TS bug (versions >= 1.5.0)
feedback
Compressed IPv6 Header Extension List in UOR-2 with extension 3
Compressed IPv4 Header Extension List
RFC RFC
Reverse decompression
RFC
ROHC padding at compressor (supported only at decompressor currently) RFC (versions >= 2.1.0)
ROHC segmentation RFC (versions >= 1.6.0)
Context Replication RFC (versions >= 2.1.0)
parameters at compressor RFC:
CONTEXT_REINITIALIZATION (implemented by rohc_comp_force_contexts_reinit() in versions >= 1.6.0)
NO_OF_PACKET_SIZES_ALLOWED (rohc_comp_pad() available in versions >= 2.1.0)
NO_OF_PACKET_SIZES_USED (rohc_comp_pad() available in versions >= 2.1.0)
PACKET_SIZES_ALLOWED (rohc_comp_pad() available in versions >= 2.1.0)
PACKET_SIZES_USED (rohc_comp_pad() available in versions >= 2.1.0)
PAYLOAD_SIZES (rohc_comp_pad() available in versions >= 2.1.0)
parameters at decompressor
RFC:
Handling of resource limitations at the decompressor (REJECT option)
RFC
Missing parts for IP-only profile:
Missing parts for RTP profile:
Handle TS wraprounds bug (versions >= 1.5.0)
-
Timer-based compression of RTP Timestamp
RFC RFC
Missing parts for IP / UDP-Lite (0x0008) profile:
New profiles / support for new headers:
ROHCv1:
ROHCv2:
ROHCv2 IP-only profile RFC bug (versions >= 2.2.0)
ROHCv2 IP/UDP profile RFC bug (versions >= 2.2.0)
ROHCv2 IP/ESP profile RFC bug (versions >= 2.2.0)
ROHCv2 IP/UDP/RTP profile RFC bug (partial for 2.3.0, full for 2.4.0)
ROHCv2 IP/UDP-Lite profile
RFC bug
ROHCv2 IP/UDP-Lite/RTP profile
RFC bug
ROHCv1 and ROHCv2:
support for ESP header in IP-based profile
support for GRE header in IP-based profile (maybe for 2.4.0)
support for AH header in IP-based profile (maybe for 2.4.0)
support for MINE header in IP-based profile (maybe for 2.4.0)
Optimizations:
rework the algorithm that decides what packet type to code
bug
Trace bottlenecks with callgrind/kcachegrind bug, then select the better optimizations among: (scheduled for 2.3.0)
inlines functions whenever possible
check if inline functions are inlined by the compiler with -Winline
try to use the C99 restrict qualifier on pointers
Restrict
try to use partial IP checksums instead of full checksums
avoid memory allocation at runtime
Portability
Languages:
Python binding bug (versions >= 2.0.0)
-
Rust binding
Systems:
Inter-operability / documentation
Infrastructure
Wiki
install a wiki engine
add content on wiki:
Website
create a great website to better advertise the ROHC library
put changelogs on download page
publish performances results (live performances from sniffer?)
create a “success story” page
list all papers on ROHC
re-try to contact authors of forked project on SF.net
Packaging
create DEB packages work in progress by Simon for 2.0.x and 2.1.0
create RPM packages (versions >= 1.5.2 or >= 1.6.0)
update RPM packages for 1.7.x (not done on time)
update RPM packages (for 2.0.x and 2.1.0)
Gentoo ebuild:
Windows installer?
Miscellaneous
Advertising
Applications using the ROHC library
OpenVPN
Rework OpenVPN patch patch:
fix build failures
disable ROHC support by default in configure
compat with 1.3.x and 1.4.x versions
use trace callbacks with versions >= 1.6.0
multi-client support on server
-
update INSTALL file
submit patches upstream
IP/ROHC tunnel application
ROHC sniffer
An application that captures packets on a network interface, compresses them, then decompresses them. Its objective is to test the ROHC library on a network with specific streams wihout any risk (no traffic modified). The sniffer should prints some stats too. (versions >= 1.6.0)
Wireshark
dissector for wireshark (there is already some work done in Wireshark)