RObust Header Compression (ROHC) library

lp:rohc

Created by Didier Barvaux on 2009-08-03 and last modified on 2014-04-16

Main development branch for the ROHC library.

Get this branch:
bzr branch lp:rohc
Only Didier Barvaux can upload to this branch. If you are Didier Barvaux please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Didier Barvaux
Project:
rohc
Status:
Development

Recent revisions

1041. By Didier Barvaux on 2014-04-16

Fix documentation because of change at revision 1038.

1040. By Didier Barvaux on 2014-04-16

Fix bug #1301518: Interoperability problems with Aeroflex TM500(LTE)
https://bugs.launchpad.net/rohc/+bug/1301518

For encoding variable_length_32_enc(flag), the compressed value should be
WLSB-encoded if indicator is 1 or 2.

1039. By Didier Barvaux on 2014-04-16

Fix the dist archive: missing files.

1038. By Didier Barvaux on 2014-04-15

Fix bug #1301518: Interoperability problems with Aeroflex TM500(LTE)
https://bugs.launchpad.net/rohc/+bug/1301518

According to RFC 6846, the CRC of co_common, seq_X and rnd_X packets must
be performed on the uncompressed headers, not on the compressed headers.

1037. By Didier Barvaux on 2014-04-13

TCP profile: greatly improve readability of compression code

Split in separate functions:
 - the decision to change operational state
 - the detection of fields that changed since previous packets
 - the compression of fields (and the number of required bits)
 - the decision of the ROHC packet to encode

With those changes, the main functions is much more clean :)

Also, change the way state transitions are performed: stay during several
packets in IR and FO states before performing the transition to higher states.

1036. By Didier Barvaux on 2014-04-13

TCP profile: avoid dumping the IP/TCP headers several times in a row.

1035. By Didier Barvaux on 2014-04-13

TCP profile: do not save the decompressed TCP header in context twice

1034. By Didier Barvaux on 2014-04-13

TCP profile: minor trace cleanup

1033. By Didier Barvaux on 2014-04-13

Fix bug #1301518: Interoperability problems with Aeroflex TM500(LTE)
https://bugs.launchpad.net/rohc/+bug/1301518

Tests with the TM500(LTE) equipment by Aeroflex reported a problem with
TCP IR packets. The IR packet is decompressed unsuccessfully with the
ROHC library.

After analysis the problem was caused by the compression of TCP options.
The ROHC library sends the full TCP options as items (type, length, data)
while it should be sent compressed (see *_list_item starting at page 65
of RFC 6846):
 nop_list_item
 mss_list_item
 wscale_list_item
 tsopt_list_item
 sack_list_item
 sack_permitted_list_item
 generic_list_item

Add the TCP stream compressed by the Aeroflex TM500(LTE) equipment as
interoperability and non-regression tests.

1032. By Didier Barvaux on 2014-04-13

Introduce interoperability tests of the ROHC library with other implementations.

Add a new small test tool named 'test_interop' to ease the analysis of
interoperability problems: it tests the interoperability of the ROHC
library with other implementation.

The tool takes one ROHC flow and one related uncompressed flow (the
ROHC being generated by another ROHC implementation from the
uncompressed flow) as input and checks whether the ROHC library is
able to decompress the ROHC flow the same way the other equipment.

Also add 2 couples of network captures from the Aeroflex TM500 equipment.
The ROHC library currently fails to decompress them correctly.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.