blob: 8da591d276bccda92a990d0c81f9afe77211d105 [file] [log] [blame] [view]
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -04001# Release Notes
2
Davide Pesavento435d2012024-07-28 01:24:25 -04003## Version 24.07
4
5The build dependencies have been increased as follows:
6
7- GCC >= 9.3 or Clang >= 7.0 are strongly recommended on Linux; GCC 8.x is also known
8 to work but is not officially supported
9- Xcode 13 or later is recommended on macOS; older versions may still work but are not
10 officially supported
11- Boost >= 1.71.0 is required on all platforms
12
13docker:
14
15- Added an official Dockerfile to the repository
16- A prebuilt image for *linux/amd64* and *linux/arm64* platforms is available on the
17 [GitHub container registry](https://github.com/named-data/ndn-tools/pkgs/container/ndn-tools)
18
19build system:
20
21- Fix detection of libpcap 1.10.2 and later on Linux
22- Fix building the man pages with Python 3.12
23 ([#5298](https://redmine.named-data.net/issues/5298))
24- Reduce amount of debugging information produced in compiled binaries by default
25 ([#5279](https://redmine.named-data.net/issues/5279))
26- Upgrade `waf` to version 2.0.27
27
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050028## Version 22.12
29
30The minimum build requirements have been increased as follows:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040031
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050032- Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
33- On macOS, Xcode 11.3 or later is recommended; older versions may still work but are
34 not officially supported
35- Boost >= 1.65.1 is required on all platforms
36- Sphinx 4.0 or later is required to build the manual pages
37
38chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040039
Davide Pesavento435d2012024-07-28 01:24:25 -040040- Avoid excess window decrease in certain conditions
41 ([#5202](https://redmine.named-data.net/issues/5202))
42- Use ndn-cxx's `Segmenter` class
43 ([#4702](https://redmine.named-data.net/issues/4702))
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050044
45dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040046
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050047- Recognize several TLV elements that appear in `Certificate` and `SafeBag`
48- Remove support for obsolete TLV types
49
50dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040051
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050052- Expose `type`, `len`, and `bin` fields
53
54build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040055
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050056- Switch to C++17
57- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now supported out-of-the-box
Davide Pesavento435d2012024-07-28 01:24:25 -040058 ([#5135](https://redmine.named-data.net/issues/5135))
59- CentOS Stream 9 is now supported; CentOS 8 has been dropped
60 ([#5181](https://redmine.named-data.net/issues/5181))
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050061- Stop using the `gold` linker on Linux; prefer instead linking with `lld` if installed
62- Upgrade `waf` to version 2.0.24
63
Davide Pesaventoebea9092022-02-18 11:30:32 -050064## Version 22.02
65
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050066Starting with this release, ndn-tools switched to a date-based versioning scheme:
67`YEAR.MONTH[.PATCH]` (`YY.0M[.MICRO]` in [CalVer](https://calver.org/) notation).
Davide Pesaventoebea9092022-02-18 11:30:32 -050068
69chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040070
Davide Pesaventoebea9092022-02-18 11:30:32 -050071- Add `--naming-convention` command-line option (Issue #5109)
72- Increase the default segment size to 8000 bytes
73
74dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040075
Davide Pesaventoebea9092022-02-18 11:30:32 -050076- Support `InterestSignature` fields and more types of name components
77- The `Content` field is no longer dissected by default; use the new `--content` option
78 to enable it
79- Minor cosmetic improvements to the tool output
80
81dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040082
Davide Pesaventoebea9092022-02-18 11:30:32 -050083- Remove support for obsolete TLV elements
84- Recognize `ForwardingHint` (Issue #4185)
85- Recognize `ParametersSha256DigestComponent`
86- Fix decoding of several TLV elements such as `HopLimit` and `PitToken`
87- Update the TLV type of `IncomingFaceId` (Issue #5185)
88
89peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040090
Davide Pesaventoebea9092022-02-18 11:30:32 -050091- Replace `--link-file` option with `--fwhint` and adapt to the new `ForwardingHint`
92 format (Issues #4207, #5187)
93
94poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040095
Davide Pesaventoebea9092022-02-18 11:30:32 -050096- Remove deprecated `--force` option; use `--unsolicited` instead
97- Remove deprecated `--identity` and `--digest` options; use `--signing-info` instead
98- Change the short form of `--freshness` to `-f`
99
100pingserver:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400101
Davide Pesaventoebea9092022-02-18 11:30:32 -0500102- Remove deprecated `-x` alias for the `--freshness` option
103
104build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400105
Davide Pesaventoebea9092022-02-18 11:30:32 -0500106- Upgrade `waf` to version 2.0.23
107
Eric Newberry374f4e42020-10-04 14:15:39 -0700108## Version 0.7.1
109
110The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6.
111Meanwhile, it is *recommended* to use GCC >= 7.4.0 and Boost >= 1.65.1.
112
113This release contains minor build fixes and code cleanups.
114
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500115## Version 0.7
116
117chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400118
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500119- Add `--no-version-discovery` option to ndncatchunks (Issue #5021)
120- Improve CUBIC performance on lossy networks (Issue #5036)
121- Switch to ndn-cxx's `RttEstimatorWithStats` class (Issue #4887)
122- Remove previously deprecated options `-d` and `-t` from ndncatchunks
123
124ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400125
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500126- Change the short form of ndnpingserver's `--freshness` option to `-f`,
127 for consistency with ndnputchunks
128
129peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400130
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500131- Add `--app-params`, `--app-params-file`, and `--hop-limit` options
132- The `--link-file` option now expects a raw binary file
133- Print Data name and Nack reason if `--verbose` is specified
134- Code cleanup
135- Manual page improvements
136
137poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400138
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500139- Add `--signing-info` option, replacing `--digest` and `--identity` which are
140 now deprecated
141- Add `--verbose` option
142- Wait indefinitely if `--timeout` is not specified
143- The program now exits with status 3 when a timeout occurs and with status 5
144 if prefix registration fails
145- Rename `--force` option to `--unsolicited`
146- Code cleanup
147- Major rewrite of the manual page
148
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400149## Version 0.6.4
150
151chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400152
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400153- Add metadata-based version discovery and remove iterative discovery (Issue #4556)
154- Remove manual selection of version discovery method via `-d` option (Issue #4832)
155- Implement CUBIC congestion window adaptation in ndncatchunks (Issue #4861)
156- Increase the default retransmission limit from 3 to 15 (Issue #4861)
157- Improve stats printed by ndncatchunks after transfer completes (Issue #4603)
158- Add manual page for ndnputchunks
159
160dissect & dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400161
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400162- Follow packet specification changes to renumber the `Parameters` element and
163 rename it to `ApplicationParameters` (Issues #4658, #4780)
164
165dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400166
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400167- Fix compilation on CentOS 7 (Issue #4852)
168
169pib:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400170
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400171- Completely remove this obsolete and unmaintained tool (Issue #4205)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000172
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500173## Version 0.6.3
174
175chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400176
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500177- Fix impossible RTT values (Issue #4604)
178- Add support for RDR metadata in ndnputchunks (Issue #4556)
179- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
180
181ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400182
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500183- Add systemd unit file for ndnpingserver (Issue #4594)
184- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
185
186poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400187
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500188- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
189
Davide Pesaventoebea9092022-02-18 11:30:32 -0500190build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400191
Davide Pesaventoebea9092022-02-18 11:30:32 -0500192- Upgrade `waf` to version 2.0.14 and other improvements
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500193
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400194## Version 0.6.2
195
196The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6, boost >= 1.58,
197openssl >= 1.0.2. This effectively drops support for all versions of Ubuntu older than 16.04
198that use distribution-provided compilers and packages.
199
200The compilation now uses the C++14 standard.
201
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400202chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400203
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400204- Fix AIMD hanging with files smaller than the chunk size (Issue #4439)
205
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400206dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400207
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400208- Show `Name` and `FinalBlockId` as URIs (Issue #3106)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400209- Improve NDNLPv2 support (Issue #4463)
210- Add support for dissecting PPP frames
211
212dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400213
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400214- Remove dependency on Boost.Regex
215- Stop using tcpdump headers files
216- Compile pcap filter with optimizations enabled
217- Capture in promiscuous mode by default, add an option to disable it
218- Add `-t` option to suppress printing per-packet timestamp
219- Properly handle exceptions thrown by `lp::Packet::wireDecode()` (Issue #3943)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400220- Add UDP port 56363 to the default pcap filter
221- Stricter parsing of IP/TCP/UDP headers
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400222- Add IPv6 support
223- Code cleanup
224
225poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400226
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400227- Use `Face::unsetInterestFilter` instead of `shutdown` (Issue #4642)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400228- Improve unit testing (Issue #3740)
229
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400230ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400231
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400232- Add `--quiet` option to ndnpingserver (Issue #4673)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400233- Set `CanBePrefix=false` in Interests sent by ndnping (Issue #4581)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400234- Code cleanup
235
Davide Pesavento4a43e872018-05-03 22:10:56 -0400236## Version 0.6.1
237
238chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400239
Davide Pesavento4a43e872018-05-03 22:10:56 -0400240- Show correct packet loss stats in final summary (Issue #4437)
241- Avoid printing meaningless values when no RTT measurements are available (Issue #4551)
242
243dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400244
Davide Pesavento4a43e872018-05-03 22:10:56 -0400245- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4590)
246
247dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400248
Davide Pesavento4a43e872018-05-03 22:10:56 -0400249- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4517)
250
251peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400252
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400253- Drop `Selectors` support (Issue #4571)
Davide Pesavento4a43e872018-05-03 22:10:56 -0400254- Add `-P/--prefix` option to set `CanBePrefix` in the Interest packet
255
Davide Pesaventoebea9092022-02-18 11:30:32 -0500256build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400257
Davide Pesaventoebea9092022-02-18 11:30:32 -0500258- Upgrade `waf` to version 2.0.6 and other improvements
Davide Pesavento4a43e872018-05-03 22:10:56 -0400259
susmit48cb0b62018-02-13 12:27:24 -0700260## Version 0.6
261
262chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400263
Davide Pesavento4a43e872018-05-03 22:10:56 -0400264- Change the default Interest pipeline to AIMD (Issue #4402)
265- Include RTT stats in final summary (Issue #4406)
266- Respect `--retries=-1` in the AIMD pipeline (Issue #4409)
267- React to congestion marks by default as a timeout event (can be disabled using
268 `--aimd-ignore-cong-marks`) (Issue #4289)
269- Print a final summary of the transfer regardless of the pipeline type, and even if
270 `--verbose` was not specified (Issue #4421)
susmit48cb0b62018-02-13 12:27:24 -0700271
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400272## Version 0.5
273
274all:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400275
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400276- Switch to version 2 of certificates, `KeyChain`, and `Validator` (Issue #4089)
277- Compilation fixes (Issue #4259)
278
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400279chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400280
Davide Pesaventoebea9092022-02-18 11:30:32 -0500281- Make `ndnputchunks` display some output by default; a new `-q` flag makes the tool
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400282 completely silent, except for errors (Issue #4286)
283- Refactor `ndnputchunks` options handling
284- Reduce initial timeout of iterative version discovery in `ndncatchunks` (Issue #4291)
285- Fix potential `ndncatchunks` crash on exit
286
Davide Pesaventoebea9092022-02-18 11:30:32 -0500287peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400288
Davide Pesaventoebea9092022-02-18 11:30:32 -0500289- Convert use of `Link` into `ForwardingHint` (Issue #4055)
290
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000291## Version 0.4
292
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400293As of this version, NDN Essential Tools require a modern compiler (gcc >= 4.8.2, clang >= 3.4)
294and a relatively new version of the Boost libraries (>= 1.54). This means that the code no
295longer compiles with the packaged version of gcc and Boost libraries on Ubuntu 12.04.
296NDN Essential Tools can still be compiled on such systems, but require a separate
297installation of a newer version of the compiler (e.g., clang-3.4) and dependencies.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000298
299chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400300
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400301- Change default version discovery to iterative
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000302- Improve help text of `ndnputchunks`
303- Fix `DiscoverVersionIterative` build error
304- Modularize Interest pipeline implementation
305- Add AIMD congestion control (Issue #3636)
306- Code cleanup and improvements
307
308dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400309
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000310- Add initial support for NDNLPv2 (Issue #3197)
311- Fix potential memory overflow
312
313dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400314
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000315- Add support for Linux cooked-mode capture (SLL) (Issue #3061)
316- Improve error messages
317
318pib:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400319
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000320- Disable by default (can be compiled with ndn-cxx version 0.5.0)
321- Fix compilation error with new version of ndn-cxx library
322- Avoid use of deprecated block helpers
323- Correct build target path
324
325ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400326
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000327- Recognize and trace NACK
Davide Pesavento4a43e872018-05-03 22:10:56 -0400328- Fix potential divide-by-zero bug in `StatisticsCollector` (Issue #3504)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000329
330peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400331
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000332- Recognize and properly handle NACK
333- Refactor implementation
334
335## Version 0.3
336
337chunks: **New** (pair of) tool(s) for segmented file transfer
338
339peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400340
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000341- Allow verbose output
342- Switch from `getopt` to `boost::program_options`
343- Add `--link-file` option
344
345ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400346
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000347- Document ndnping protocol
348
349dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400350
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000351- Capture and print network NACK packets
352- Update docs to include NACK capture feature
353
Davide Pesaventoebea9092022-02-18 11:30:32 -0500354build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400355
Davide Pesavento4a43e872018-05-03 22:10:56 -0400356- Enable `-Wextra` by default
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000357- Fix missing tool name in `configure --help` output
358- Fix compatibility with Python 3
359
360## Version 0.2
361
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400362Code improvements and two new tools:
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000363
364- PIB service to manage the public information of keys and publish certificates
365 (Issue 3018)
366- A Wireshark dissector for NDN packets (Issue 3092)
367
368## Version 0.1
369
370Initial release of NDN Essential Tools, featuring:
371
372- ndnpeek, ndnpoke: a pair of programs to request and make available for
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400373 retrieval a single Data packet.
374- ndnping, ndnpingserver: reachability testing tools for Named Data Networking.
375- ndndump: a traffic analysis tool that captures NDN packets on the wire.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000376- ndn-dissect: an NDN packet format inspector. It reads zero or more NDN
377 packets from either an input file or the standard input, and displays the
378 Type-Length-Value (TLV) structure of those packets on the standard output.