~didier-barvaux/+junk/rohc-tcp

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)