blob: ae70ba34592ed089f15908c81106f9d45904c12f [file] [log] [blame] [view]
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -04001# Release Notes
2
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -05003## Version 22.12
4
5The minimum build requirements have been increased as follows:
Davide Pesavento5b9431d2024-07-14 17:38:04 -04006
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -05007- Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
8- On macOS, Xcode 11.3 or later is recommended; older versions may still work but are
9 not officially supported
10- Boost >= 1.65.1 is required on all platforms
11- Sphinx 4.0 or later is required to build the manual pages
12
13chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040014
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050015- Avoid excess window decrease in certain conditions (Issue #5202)
16- Use ndn-cxx's `Segmenter` class (Issue #4702)
17
18dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040019
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050020- Recognize several TLV elements that appear in `Certificate` and `SafeBag`
21- Remove support for obsolete TLV types
22
23dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040024
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050025- Expose `type`, `len`, and `bin` fields
26
27build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040028
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050029- Switch to C++17
30- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now supported out-of-the-box
31 (Issue #5135)
32- CentOS Stream 9 is now supported; CentOS 8 has been dropped (Issue #5181)
33- Stop using the `gold` linker on Linux; prefer instead linking with `lld` if installed
34- Upgrade `waf` to version 2.0.24
35
Davide Pesaventoebea9092022-02-18 11:30:32 -050036## Version 22.02
37
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050038Starting with this release, ndn-tools switched to a date-based versioning scheme:
39`YEAR.MONTH[.PATCH]` (`YY.0M[.MICRO]` in [CalVer](https://calver.org/) notation).
Davide Pesaventoebea9092022-02-18 11:30:32 -050040
41chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040042
Davide Pesaventoebea9092022-02-18 11:30:32 -050043- Add `--naming-convention` command-line option (Issue #5109)
44- Increase the default segment size to 8000 bytes
45
46dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040047
Davide Pesaventoebea9092022-02-18 11:30:32 -050048- Support `InterestSignature` fields and more types of name components
49- The `Content` field is no longer dissected by default; use the new `--content` option
50 to enable it
51- Minor cosmetic improvements to the tool output
52
53dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040054
Davide Pesaventoebea9092022-02-18 11:30:32 -050055- Remove support for obsolete TLV elements
56- Recognize `ForwardingHint` (Issue #4185)
57- Recognize `ParametersSha256DigestComponent`
58- Fix decoding of several TLV elements such as `HopLimit` and `PitToken`
59- Update the TLV type of `IncomingFaceId` (Issue #5185)
60
61peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040062
Davide Pesaventoebea9092022-02-18 11:30:32 -050063- Replace `--link-file` option with `--fwhint` and adapt to the new `ForwardingHint`
64 format (Issues #4207, #5187)
65
66poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040067
Davide Pesaventoebea9092022-02-18 11:30:32 -050068- Remove deprecated `--force` option; use `--unsolicited` instead
69- Remove deprecated `--identity` and `--digest` options; use `--signing-info` instead
70- Change the short form of `--freshness` to `-f`
71
72pingserver:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040073
Davide Pesaventoebea9092022-02-18 11:30:32 -050074- Remove deprecated `-x` alias for the `--freshness` option
75
76build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040077
Davide Pesaventoebea9092022-02-18 11:30:32 -050078- Upgrade `waf` to version 2.0.23
79
Eric Newberry374f4e42020-10-04 14:15:39 -070080## Version 0.7.1
81
82The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6.
83Meanwhile, it is *recommended* to use GCC >= 7.4.0 and Boost >= 1.65.1.
84
85This release contains minor build fixes and code cleanups.
86
Davide Pesavento6ab7f912020-01-13 19:14:02 -050087## Version 0.7
88
89chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040090
Davide Pesavento6ab7f912020-01-13 19:14:02 -050091- Add `--no-version-discovery` option to ndncatchunks (Issue #5021)
92- Improve CUBIC performance on lossy networks (Issue #5036)
93- Switch to ndn-cxx's `RttEstimatorWithStats` class (Issue #4887)
94- Remove previously deprecated options `-d` and `-t` from ndncatchunks
95
96ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -040097
Davide Pesavento6ab7f912020-01-13 19:14:02 -050098- Change the short form of ndnpingserver's `--freshness` option to `-f`,
99 for consistency with ndnputchunks
100
101peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400102
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500103- Add `--app-params`, `--app-params-file`, and `--hop-limit` options
104- The `--link-file` option now expects a raw binary file
105- Print Data name and Nack reason if `--verbose` is specified
106- Code cleanup
107- Manual page improvements
108
109poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400110
Davide Pesavento6ab7f912020-01-13 19:14:02 -0500111- Add `--signing-info` option, replacing `--digest` and `--identity` which are
112 now deprecated
113- Add `--verbose` option
114- Wait indefinitely if `--timeout` is not specified
115- The program now exits with status 3 when a timeout occurs and with status 5
116 if prefix registration fails
117- Rename `--force` option to `--unsolicited`
118- Code cleanup
119- Major rewrite of the manual page
120
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400121## Version 0.6.4
122
123chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400124
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400125- Add metadata-based version discovery and remove iterative discovery (Issue #4556)
126- Remove manual selection of version discovery method via `-d` option (Issue #4832)
127- Implement CUBIC congestion window adaptation in ndncatchunks (Issue #4861)
128- Increase the default retransmission limit from 3 to 15 (Issue #4861)
129- Improve stats printed by ndncatchunks after transfer completes (Issue #4603)
130- Add manual page for ndnputchunks
131
132dissect & dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400133
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400134- Follow packet specification changes to renumber the `Parameters` element and
135 rename it to `ApplicationParameters` (Issues #4658, #4780)
136
137dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400138
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400139- Fix compilation on CentOS 7 (Issue #4852)
140
141pib:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400142
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400143- Completely remove this obsolete and unmaintained tool (Issue #4205)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000144
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500145## Version 0.6.3
146
147chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400148
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500149- Fix impossible RTT values (Issue #4604)
150- Add support for RDR metadata in ndnputchunks (Issue #4556)
151- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
152
153ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400154
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500155- Add systemd unit file for ndnpingserver (Issue #4594)
156- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
157
158poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400159
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500160- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
161
Davide Pesaventoebea9092022-02-18 11:30:32 -0500162build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400163
Davide Pesaventoebea9092022-02-18 11:30:32 -0500164- Upgrade `waf` to version 2.0.14 and other improvements
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500165
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400166## Version 0.6.2
167
168The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6, boost >= 1.58,
169openssl >= 1.0.2. This effectively drops support for all versions of Ubuntu older than 16.04
170that use distribution-provided compilers and packages.
171
172The compilation now uses the C++14 standard.
173
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400174chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400175
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400176- Fix AIMD hanging with files smaller than the chunk size (Issue #4439)
177
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400178dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400179
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400180- Show `Name` and `FinalBlockId` as URIs (Issue #3106)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400181- Improve NDNLPv2 support (Issue #4463)
182- Add support for dissecting PPP frames
183
184dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400185
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400186- Remove dependency on Boost.Regex
187- Stop using tcpdump headers files
188- Compile pcap filter with optimizations enabled
189- Capture in promiscuous mode by default, add an option to disable it
190- Add `-t` option to suppress printing per-packet timestamp
191- Properly handle exceptions thrown by `lp::Packet::wireDecode()` (Issue #3943)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400192- Add UDP port 56363 to the default pcap filter
193- Stricter parsing of IP/TCP/UDP headers
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400194- Add IPv6 support
195- Code cleanup
196
197poke:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400198
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400199- Use `Face::unsetInterestFilter` instead of `shutdown` (Issue #4642)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400200- Improve unit testing (Issue #3740)
201
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400202ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400203
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400204- Add `--quiet` option to ndnpingserver (Issue #4673)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400205- Set `CanBePrefix=false` in Interests sent by ndnping (Issue #4581)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400206- Code cleanup
207
Davide Pesavento4a43e872018-05-03 22:10:56 -0400208## Version 0.6.1
209
210chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400211
Davide Pesavento4a43e872018-05-03 22:10:56 -0400212- Show correct packet loss stats in final summary (Issue #4437)
213- Avoid printing meaningless values when no RTT measurements are available (Issue #4551)
214
215dissect:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400216
Davide Pesavento4a43e872018-05-03 22:10:56 -0400217- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4590)
218
219dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400220
Davide Pesavento4a43e872018-05-03 22:10:56 -0400221- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4517)
222
223peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400224
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400225- Drop `Selectors` support (Issue #4571)
Davide Pesavento4a43e872018-05-03 22:10:56 -0400226- Add `-P/--prefix` option to set `CanBePrefix` in the Interest packet
227
Davide Pesaventoebea9092022-02-18 11:30:32 -0500228build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400229
Davide Pesaventoebea9092022-02-18 11:30:32 -0500230- Upgrade `waf` to version 2.0.6 and other improvements
Davide Pesavento4a43e872018-05-03 22:10:56 -0400231
susmit48cb0b62018-02-13 12:27:24 -0700232## Version 0.6
233
234chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400235
Davide Pesavento4a43e872018-05-03 22:10:56 -0400236- Change the default Interest pipeline to AIMD (Issue #4402)
237- Include RTT stats in final summary (Issue #4406)
238- Respect `--retries=-1` in the AIMD pipeline (Issue #4409)
239- React to congestion marks by default as a timeout event (can be disabled using
240 `--aimd-ignore-cong-marks`) (Issue #4289)
241- Print a final summary of the transfer regardless of the pipeline type, and even if
242 `--verbose` was not specified (Issue #4421)
susmit48cb0b62018-02-13 12:27:24 -0700243
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400244## Version 0.5
245
246all:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400247
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400248- Switch to version 2 of certificates, `KeyChain`, and `Validator` (Issue #4089)
249- Compilation fixes (Issue #4259)
250
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400251chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400252
Davide Pesaventoebea9092022-02-18 11:30:32 -0500253- Make `ndnputchunks` display some output by default; a new `-q` flag makes the tool
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400254 completely silent, except for errors (Issue #4286)
255- Refactor `ndnputchunks` options handling
256- Reduce initial timeout of iterative version discovery in `ndncatchunks` (Issue #4291)
257- Fix potential `ndncatchunks` crash on exit
258
Davide Pesaventoebea9092022-02-18 11:30:32 -0500259peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400260
Davide Pesaventoebea9092022-02-18 11:30:32 -0500261- Convert use of `Link` into `ForwardingHint` (Issue #4055)
262
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000263## Version 0.4
264
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400265As of this version, NDN Essential Tools require a modern compiler (gcc >= 4.8.2, clang >= 3.4)
266and a relatively new version of the Boost libraries (>= 1.54). This means that the code no
267longer compiles with the packaged version of gcc and Boost libraries on Ubuntu 12.04.
268NDN Essential Tools can still be compiled on such systems, but require a separate
269installation of a newer version of the compiler (e.g., clang-3.4) and dependencies.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000270
271chunks:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400272
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400273- Change default version discovery to iterative
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000274- Improve help text of `ndnputchunks`
275- Fix `DiscoverVersionIterative` build error
276- Modularize Interest pipeline implementation
277- Add AIMD congestion control (Issue #3636)
278- Code cleanup and improvements
279
280dissect-wireshark:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400281
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000282- Add initial support for NDNLPv2 (Issue #3197)
283- Fix potential memory overflow
284
285dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400286
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000287- Add support for Linux cooked-mode capture (SLL) (Issue #3061)
288- Improve error messages
289
290pib:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400291
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000292- Disable by default (can be compiled with ndn-cxx version 0.5.0)
293- Fix compilation error with new version of ndn-cxx library
294- Avoid use of deprecated block helpers
295- Correct build target path
296
297ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400298
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000299- Recognize and trace NACK
Davide Pesavento4a43e872018-05-03 22:10:56 -0400300- Fix potential divide-by-zero bug in `StatisticsCollector` (Issue #3504)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000301
302peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400303
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000304- Recognize and properly handle NACK
305- Refactor implementation
306
307## Version 0.3
308
309chunks: **New** (pair of) tool(s) for segmented file transfer
310
311peek:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400312
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000313- Allow verbose output
314- Switch from `getopt` to `boost::program_options`
315- Add `--link-file` option
316
317ping:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400318
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000319- Document ndnping protocol
320
321dump:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400322
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000323- Capture and print network NACK packets
324- Update docs to include NACK capture feature
325
Davide Pesaventoebea9092022-02-18 11:30:32 -0500326build system:
Davide Pesavento5b9431d2024-07-14 17:38:04 -0400327
Davide Pesavento4a43e872018-05-03 22:10:56 -0400328- Enable `-Wextra` by default
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000329- Fix missing tool name in `configure --help` output
330- Fix compatibility with Python 3
331
332## Version 0.2
333
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400334Code improvements and two new tools:
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000335
336- PIB service to manage the public information of keys and publish certificates
337 (Issue 3018)
338- A Wireshark dissector for NDN packets (Issue 3092)
339
340## Version 0.1
341
342Initial release of NDN Essential Tools, featuring:
343
344- ndnpeek, ndnpoke: a pair of programs to request and make available for
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400345 retrieval a single Data packet.
346- ndnping, ndnpingserver: reachability testing tools for Named Data Networking.
347- ndndump: a traffic analysis tool that captures NDN packets on the wire.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000348- ndn-dissect: an NDN packet format inspector. It reads zero or more NDN
349 packets from either an input file or the standard input, and displays the
350 Type-Length-Value (TLV) structure of those packets on the standard output.