1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
|
XX XXX 201X - release 1.6.0
Compatibility:
TODO
License/Authors:
TODO
Acknowledgments for bug reports and/or bug fixes:
FWX, Elisabeth, Viveris Technologies, Yura.
Main changes:
TODO
Build system:
TODO
Q&A:
TODO
Performances:
TODO
Bug fixes:
TODO
21 Oct 2012 - release 1.5.0
Compatibility:
Version 1.5.0 is not compatible with versions < 1.5.0 because of several
fixes related to IETF RFCs that change the format of ROHC packets.
The library API is however compatible with earlier versions.
License/Authors:
Add FWX for his ESP profile.
Change website URI for http://rohc-lib.org/
Acknowledgments for bug reports and/or bug fixes:
Ahmed Fathy, Arne, Audric Schiltknecht, FWX, Keith Harry, Mikhail Gruzdev,
Olivier Bonhomme, qingbaibai, Viveris Technologies.
Main changes:
ROHC ESP profile.
Support for FreeBSD and Microsoft Windows (through MinGW) systems.
Better support for ARM and PowerPC platforms.
Enhance stream classifier efficiency: use next header to classify streams
for IP-only profile.
Handle context re-use gracefully.
Do our best not to alter the decompression context before we are sure the
packet could be successfully decompressed.
Do not force the transmission of several IR-DYN packets when dynamic
fields changed. Packets of type UOR-2* may also be used.
Make sure IP-ID bits located in base headers are always for the innermost
IPv4 header with non-random IP-ID, except if stated otherwise.
Fix the disambiguation algorithm for RTP UOR-2* packets.
Handle TS wraprounds as stated in RFC 4815.
New API for user to specify a callback that generates random numbers.
New API for user to configure the size of the WLSB window.
New API for user to configure the timeouts for periodic refreshes.
New API for user to configure the CID type and the MAX_CID value.
Deprecate rohc_decompress_both() API function.
Remove the jamming algorithm (because of bad implementation).
The test_performance app is now installed by make install.
Build system:
Add inter-library dependencies.
Use library versioning through libtool.
Check whether the compiler computes bit-field lengths as expected or not
(added because of TCC).
Valgrind can be used to check for memory problems while running tests:
configure option --enable-rohc-tests-valgrind added.
Rename rohc.c into rohc_common.c to avoid problems when building code for
Linux kernel.
Add option --enable-fortify_sources to add -D_FORTIFY_SOURCE=2 to CFLAGS.
Use the grep, sed, awk, sort, and tr tools found by autoconf in the
different shell scripts.
Remove -lm from LDFLAGS, as the library does not use math functions
anymore.
Use the newer pcap/pcap.h instead of the deprecated pcap.h include.
Enable parallel tests.
Q&A:
Enhance LSB encoding/decoding test.
Add several new enums to make code clearer.
Replace several int by bool.
Remove useless members in some structs.
Remove some useless functions from LSB decoding module.
Make several structs private.
Make several functions private and static.
Shorten the names of several variables/functions for better code clarity.
Add the rohc_dump_packet() function to log the content of a packet.
Add many const keywords on the function parameters of the ip module.
Rework the detection of IP-ID behaviour to make code clearer.
Factorize code with new sdvl_decode() and sdvl_get_min_len() functions.
Move algorithm for packet type decision into profile-specific files.
Introduce new get_next_sn() callback for IP-based profiles.
Introduce new decide_extension() callback for IP-based profiles.
Split decode_uo*() functions to make them clearer and factorize code.
New helper functions to clarify code about IPv4 headers and their IP-ID.
Rework Offset IP-ID decoding module.
Update Doxygen and INSTALL.
Performances:
Remove useless calls to bzero or calloc.
Optimize memory allocation in the wlsb module.
Avoid several calls to strlen() in functions that return statistics.
Remove useless ceil() calls.
Improve W-LSB speed.
Allocate the array of decompression contexts to its full size to avoid
re-allocations during packet processing.
Bug fixes:
Bug #792801: packet decision: extension 2 not considered for UOR-2-TS
packet
Bug #799204: ROHC library does not build on BSD systems
Bug #799205: Build ROHC library with LLVM / Clang
Bug #801561: Add support for valgrind in tests
Bug #804552: UOR-2 packets cannot be used if bits(SN) > 14
Bug #952134: Add support for ESP profile (0x0003)
Bug #953947: WLSB problems
Bug #970770: Build ROHC library with mingw for Windows
Bug #995644: Run regression tests between little endian and big-endian
systems
Bug #1001435: LSB encoding/decoding fails with shift parameter -1
Bug #1001440: LSB decoding of SN should use shift parameter -1 for
IP-only, UDP and UDP-Lite profiles
Bug #1001611: Handle TS wraprounds
Bug #1001614: Do not send RTP TS scaled if TS_STRIDE=0
Bug #1005800: when decoding uor-2-id packet, timestamp is wrong.
Bug #1014056: Changes of behaviour for UDP checksum not correctly
supported
Bug #1014109: IPv4 packets with options not correctly handled
Bug #1014374: IPv4(RND=0)/IPv4(RND=0)/UDP/RTP stream with regular
incrementing IP-ID causes segfault
Bug #1014405: Decompression failure with IPv4(RND=0)/IPv4(RND=1)/UDP/RTP
stream
Bug #1017198: Compression fails if bits(TS_STRIDE) > 29
Bug #1030054: SN is a 16-bit unsigned value for IP/UDP and IP-only profiles
Bug #1030084: TS_SCALED shall be W-LSB encoded on 32 bits
Bug #1035918: STATIC field 'IPv6 Next Header' always detected as changed
with IPv6 extension headers.
Bug #1041146: Release archives do not contain some test files
Bug #1047460: Test failure on PowerPC
Bug #1068998: Compression errors on ARM 9 TDMI
17 May 2012 - release 1.4.0
Compatibility:
Version 1.4.0 is not compatible with versions < 1.4.0 because of several
fixes related to IETF RFCs that change the format of ROHC packets.
License/Authors:
Add Didier Barvaux's personal email address in addition to Viveris one.
Acknowledgments for bug reports and/or bug fixes:
Ahmed Fathy, Arne, François W., hzkjdxwktx, Klaus Warnke, laAnna Hao,
qingbaibai, Viveris Technologies.
Main changes:
Make the library completely thread-aware.
Add new API method rohc_comp_get_last_packet_info() to retrieve some
information about the last compressed packet.
Add several new API functions for getting descriptions on packet types,
extension types, mode and states.
Deprecate crc_init_table(), crc_get_polynom() and crc_table_X from API
(they are still available, but emit a warning).
Rework list compression in a more understandable and robust way.
Add a simple example program in subdir examples/.
Remove the outdated "measures" directory.
Remove context repair (maybe added again later).
Update main and features pages in API documentation.
Add new application and script to generate ROHC compression statistics
(old broken statistics scripts removed).
Add new application for testing compression computing performance.
Build system:
Install README, INSTALL, COPYING, AUTHORS, ChangeLog files.
Update the way API documentation is generated: configure option
--enable-doc and 'make install' replace 'make doc'.
Avoid installing private ROHC headers on the system during install.
Make 'make' less verbose to get output like Linux kernel build.
Remove useless or deprecated checks from configure.ac.
Remove support for 'make report', 'make check' supersedes it.
Configure: avoid adding -lpcap to LDFLAGS several times.
Configure: add support for PACKAGE_URL.
Fix build with CFLAGS="-DNDEBUG".
Q&A:
Move private functions/definitions from public headers to private headers.
Clearly separate public and private functions in several files.
Avoid useless system/internal header inclusions in order to reduce header
interdependencies.
Create enums for packet types, extension types, CID types and SDVL types.
Remove the ugly internal boolean type.
Remove duplicated checks for non-IPv4/IPv6 and fragmented packets.
Check pointers against NULL instead of 0.
Add many const and static keywords when appropriate.
Add many nonnull and warn_unused_result attributes when appropriate.
Use uint8_t, uint16_t, uint32_t and size_t instead of int or unsigned int
when appropriate.
Remove the 'version' fields in compression/decompression profiles.
Fix print formats: use %u instead of %d if type is unsigned.
Avoid modifying input parameters (data and length) in several functions.
Add debug traces to help debugging.
Add many assertion to ease debugging.
Improve code style (uncrustify config file stored in contrib/).
Improve English spelling.
Remove some dead code.
Improve the non-regression test application.
Add new network captures for the non-regression test.
Add unit test for LSB encoding/decoding at wraparound.
Add functional test for FEEDBACK-2 packets.
Add robustness test for feedback-only packets.
Add robustness test for damaged packet handling.
Add robustness test for empty payload handling.
Bug fixes:
Bug #409562: failed to run the statistics tool
Bug #549619: rohctunnel not installed in /usr/sbin
Bug #555695: GCC warnings on x86-64
Bug #555875: ROHC library mishandles RTP Payload Type (PT) changes
Bug #556049: rohc0 creation failed for rohc 1.3.0 library
Bug #560589: ROHC library mishandles non-IPv4/IPv6 packets
Bug #560994: inaccurate help printed by non-regression application
Bug #565470: Compression/decompression failure with large IPv6 extension
Bug #580462: Incorrect test for Uncompressed profile with non-IPv4/v6
packets
Bug #580491: ROHC library fails to handle a specific ICMP stream
Bug #604517: Error in Decompressor for RTP profile
Bug #606919: Function rohc_feedback_flush() not referenced in the
compression API
Bug #622128: FEEDBACK-2 without option contains 12 bits of SN, not 8 bits
Bug #622329: ROHC library fails to decompress ROHC packets with empty
payloads
Bug #622402: Incorrect format for UO-1-ID packet
Bug #622736: coding sequence number in Extension 3
Bug #642850: The ROHC PCAP captures do not use the Ethertype assigned to
ROHC
Bug #759460: don't compress a packet only with feedback
Bug #761955: IP-ID in extension-3 not compressed as it shall be
Bug #763496: Large CIDs shall be bound to the [0-16383] range
Bug #764707: R-TS = 0, Tsc = 0 in EXT3 no allowed
Bug #766277: crc calc outer ip hdr wrong
Bug #767354: Wrong packet decision in FO state
Bug #776482: RTP Marker (M) bit must be transmitted if set
Bug #777852: Wrong Next Header field in compressed IPv6 extension headers
Bug #778541: wrong bitmask format for insertion/removal schemes of list
compression
Bug #799856: failure reported when decoding feedback-only packets
Bug #800829: No check for doxygen
Bug #800830: No check for gnuplot
Bug #800835: ROHC library build emits warnings on x86-64
Bug #800841: Setup buildbots for continuous integration
Bug #803648: Decompression failure for IPv4 stream with empty payload
Bug #804552: UOR-2 packets cannot be used if bits(SN) > 14
Bug #808475: Correctly handle the LSB wraparound
Bug #886523: Build of tests and apps fails with support for shared libs
disabled
Bug #888287: tests fail on ARM
Bug #897831: Library fails to build with GCC < 4.5
Bug #897849: Library fails to build with GCC 4.6
Bug #948711: mode field not correctly parsed from RTP dynamic chain
Bug #970762: Wrong SN in feedback
22 Mar 2010 - release 1.3.0
Compatibility:
Version 1.3.0 is not compatible with versions < 1.3.0 because of several
fixes related to IETF RFCs that change the format of ROHC packets.
License/Authors:
Make clear that code is released under GPL version 2 or later.
Add CNES, the French space agency, as author.
Add Julien Bernard of Viveris Technologies as author.
Add Julien Peyrade of Viveris Technologies as author.
Build system:
Do not force automake version.
Disable static libraries by default.
Remove useless check for C++ compiler.
Change contact address to website instead of email address.
Add "make check" support for non-regression tests.
Make trace level configurable through ./configure script.
Add pkg-config support.
Do not force -Werror CFLAG by default.
Add --enable-fail-on-warning to use -Werror CFLAG.
Fix make dist and make distcheck.
Bug fixes:
Fix bug #409428 entitled "autogen.sh fails on Ubuntu 8.04".
Fix bug #414032 entitled "rohctunnel: cannot see compression/decompression
statistics".
Fix bug #481572 entitled "incorrect CRC computation".
Fix bug #482559 entitled "incorrect generic extension header list".
Fix bug #490752 entitled "ROHC decompressor crashes on Blackfin 561".
Fix bug #518796 entitled "TS_Stride field not encoded with SDVL".
Fix several endianness problems.
Fix large CID support.
Fix the decision algorithm to be able to choose UO-1-ID packet.
Fix integer overflow.
Fix a bug with state transitions at decompressor in unidirectional mode.
Fix non-regression tests for cases where RTP bit type is enabled.
Fix many doxygen errors.
Many more...
ROHC tunnel:
Re-work option parsing of ROHC tunnel application.
Install ROHC tunnel application in 'sbin' instead of 'bin'.
04 Aug 2009 - release 1.2.0
Clean the build chain.
Update source code for building with GCC 4.3.
Update documentation and copyright.
18 Feb 2008 - release 1.1.0
Support for IPv6 list compression
RTP bugfixes
fix build failure of the tunnel application
fix doxygen documentation
27 Nov 2007 - release 1.0.0
first release of ROHC library
IPv4/v6 profiles
UDP profile
UDP-Lite profile
RTP profile
some non-standard improvements (use of jamming, new RTP bit type)
|