blob: ed1a3668d085b13315adfc7664de10c2ef8da605 [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:
6- Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
7- On macOS, Xcode 11.3 or later is recommended; older versions may still work but are
8 not officially supported
9- Boost >= 1.65.1 is required on all platforms
10- Sphinx 4.0 or later is required to build the manual pages
11
12chunks:
13- Avoid excess window decrease in certain conditions (Issue #5202)
14- Use ndn-cxx's `Segmenter` class (Issue #4702)
15
16dissect:
17- Recognize several TLV elements that appear in `Certificate` and `SafeBag`
18- Remove support for obsolete TLV types
19
20dissect-wireshark:
21- Expose `type`, `len`, and `bin` fields
22
23build system:
24- Switch to C++17
25- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now supported out-of-the-box
26 (Issue #5135)
27- CentOS Stream 9 is now supported; CentOS 8 has been dropped (Issue #5181)
28- Stop using the `gold` linker on Linux; prefer instead linking with `lld` if installed
29- Upgrade `waf` to version 2.0.24
30
Davide Pesaventoebea9092022-02-18 11:30:32 -050031## Version 22.02
32
Davide Pesavento3b4ee2f2022-12-31 01:55:06 -050033Starting with this release, ndn-tools switched to a date-based versioning scheme:
34`YEAR.MONTH[.PATCH]` (`YY.0M[.MICRO]` in [CalVer](https://calver.org/) notation).
Davide Pesaventoebea9092022-02-18 11:30:32 -050035
36chunks:
37- Add `--naming-convention` command-line option (Issue #5109)
38- Increase the default segment size to 8000 bytes
39
40dissect:
41- Support `InterestSignature` fields and more types of name components
42- The `Content` field is no longer dissected by default; use the new `--content` option
43 to enable it
44- Minor cosmetic improvements to the tool output
45
46dissect-wireshark:
47- Remove support for obsolete TLV elements
48- Recognize `ForwardingHint` (Issue #4185)
49- Recognize `ParametersSha256DigestComponent`
50- Fix decoding of several TLV elements such as `HopLimit` and `PitToken`
51- Update the TLV type of `IncomingFaceId` (Issue #5185)
52
53peek:
54- Replace `--link-file` option with `--fwhint` and adapt to the new `ForwardingHint`
55 format (Issues #4207, #5187)
56
57poke:
58- Remove deprecated `--force` option; use `--unsolicited` instead
59- Remove deprecated `--identity` and `--digest` options; use `--signing-info` instead
60- Change the short form of `--freshness` to `-f`
61
62pingserver:
63- Remove deprecated `-x` alias for the `--freshness` option
64
65build system:
66- Upgrade `waf` to version 2.0.23
67
Eric Newberry374f4e42020-10-04 14:15:39 -070068## Version 0.7.1
69
70The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6.
71Meanwhile, it is *recommended* to use GCC >= 7.4.0 and Boost >= 1.65.1.
72
73This release contains minor build fixes and code cleanups.
74
Davide Pesavento6ab7f912020-01-13 19:14:02 -050075## Version 0.7
76
77chunks:
78- Add `--no-version-discovery` option to ndncatchunks (Issue #5021)
79- Improve CUBIC performance on lossy networks (Issue #5036)
80- Switch to ndn-cxx's `RttEstimatorWithStats` class (Issue #4887)
81- Remove previously deprecated options `-d` and `-t` from ndncatchunks
82
83ping:
84- Change the short form of ndnpingserver's `--freshness` option to `-f`,
85 for consistency with ndnputchunks
86
87peek:
88- Add `--app-params`, `--app-params-file`, and `--hop-limit` options
89- The `--link-file` option now expects a raw binary file
90- Print Data name and Nack reason if `--verbose` is specified
91- Code cleanup
92- Manual page improvements
93
94poke:
95- Add `--signing-info` option, replacing `--digest` and `--identity` which are
96 now deprecated
97- Add `--verbose` option
98- Wait indefinitely if `--timeout` is not specified
99- The program now exits with status 3 when a timeout occurs and with status 5
100 if prefix registration fails
101- Rename `--force` option to `--unsolicited`
102- Code cleanup
103- Major rewrite of the manual page
104
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400105## Version 0.6.4
106
107chunks:
108- Add metadata-based version discovery and remove iterative discovery (Issue #4556)
109- Remove manual selection of version discovery method via `-d` option (Issue #4832)
110- Implement CUBIC congestion window adaptation in ndncatchunks (Issue #4861)
111- Increase the default retransmission limit from 3 to 15 (Issue #4861)
112- Improve stats printed by ndncatchunks after transfer completes (Issue #4603)
113- Add manual page for ndnputchunks
114
115dissect & dissect-wireshark:
116- Follow packet specification changes to renumber the `Parameters` element and
117 rename it to `ApplicationParameters` (Issues #4658, #4780)
118
119dump:
120- Fix compilation on CentOS 7 (Issue #4852)
121
122pib:
123- Completely remove this obsolete and unmaintained tool (Issue #4205)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000124
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500125## Version 0.6.3
126
127chunks:
128- Fix impossible RTT values (Issue #4604)
129- Add support for RDR metadata in ndnputchunks (Issue #4556)
130- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
131
132ping:
133- Add systemd unit file for ndnpingserver (Issue #4594)
134- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
135
136poke:
137- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
138
Davide Pesaventoebea9092022-02-18 11:30:32 -0500139build system:
140- Upgrade `waf` to version 2.0.14 and other improvements
Alexander Afanasyevd5449e52019-01-29 09:32:56 -0500141
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400142## Version 0.6.2
143
144The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6, boost >= 1.58,
145openssl >= 1.0.2. This effectively drops support for all versions of Ubuntu older than 16.04
146that use distribution-provided compilers and packages.
147
148The compilation now uses the C++14 standard.
149
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400150chunks:
151- Fix AIMD hanging with files smaller than the chunk size (Issue #4439)
152
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400153dissect-wireshark:
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400154- Show `Name` and `FinalBlockId` as URIs (Issue #3106)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400155- Improve NDNLPv2 support (Issue #4463)
156- Add support for dissecting PPP frames
157
158dump:
159- Remove dependency on Boost.Regex
160- Stop using tcpdump headers files
161- Compile pcap filter with optimizations enabled
162- Capture in promiscuous mode by default, add an option to disable it
163- Add `-t` option to suppress printing per-packet timestamp
164- Properly handle exceptions thrown by `lp::Packet::wireDecode()` (Issue #3943)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400165- Add UDP port 56363 to the default pcap filter
166- Stricter parsing of IP/TCP/UDP headers
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400167- Add IPv6 support
168- Code cleanup
169
170poke:
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400171- Use `Face::unsetInterestFilter` instead of `shutdown` (Issue #4642)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400172- Improve unit testing (Issue #3740)
173
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400174ping:
175- Add `--quiet` option to ndnpingserver (Issue #4673)
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400176- Set `CanBePrefix=false` in Interests sent by ndnping (Issue #4581)
Alexander Afanasyeva8b03df2018-09-16 21:06:07 -0400177- Code cleanup
178
Davide Pesavento4a43e872018-05-03 22:10:56 -0400179## Version 0.6.1
180
181chunks:
182- Show correct packet loss stats in final summary (Issue #4437)
183- Avoid printing meaningless values when no RTT measurements are available (Issue #4551)
184
185dissect:
186- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4590)
187
188dissect-wireshark:
189- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4517)
190
191peek:
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400192- Drop `Selectors` support (Issue #4571)
Davide Pesavento4a43e872018-05-03 22:10:56 -0400193- Add `-P/--prefix` option to set `CanBePrefix` in the Interest packet
194
Davide Pesaventoebea9092022-02-18 11:30:32 -0500195build system:
196- Upgrade `waf` to version 2.0.6 and other improvements
Davide Pesavento4a43e872018-05-03 22:10:56 -0400197
susmit48cb0b62018-02-13 12:27:24 -0700198## Version 0.6
199
200chunks:
Davide Pesavento4a43e872018-05-03 22:10:56 -0400201- Change the default Interest pipeline to AIMD (Issue #4402)
202- Include RTT stats in final summary (Issue #4406)
203- Respect `--retries=-1` in the AIMD pipeline (Issue #4409)
204- React to congestion marks by default as a timeout event (can be disabled using
205 `--aimd-ignore-cong-marks`) (Issue #4289)
206- Print a final summary of the transfer regardless of the pipeline type, and even if
207 `--verbose` was not specified (Issue #4421)
susmit48cb0b62018-02-13 12:27:24 -0700208
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400209## Version 0.5
210
211all:
212- Switch to version 2 of certificates, `KeyChain`, and `Validator` (Issue #4089)
213- Compilation fixes (Issue #4259)
214
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400215chunks:
Davide Pesaventoebea9092022-02-18 11:30:32 -0500216- Make `ndnputchunks` display some output by default; a new `-q` flag makes the tool
Alexander Afanasyeveacd6172017-10-16 16:40:31 -0400217 completely silent, except for errors (Issue #4286)
218- Refactor `ndnputchunks` options handling
219- Reduce initial timeout of iterative version discovery in `ndncatchunks` (Issue #4291)
220- Fix potential `ndncatchunks` crash on exit
221
Davide Pesaventoebea9092022-02-18 11:30:32 -0500222peek:
223- Convert use of `Link` into `ForwardingHint` (Issue #4055)
224
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000225## Version 0.4
226
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400227As of this version, NDN Essential Tools require a modern compiler (gcc >= 4.8.2, clang >= 3.4)
228and a relatively new version of the Boost libraries (>= 1.54). This means that the code no
229longer compiles with the packaged version of gcc and Boost libraries on Ubuntu 12.04.
230NDN Essential Tools can still be compiled on such systems, but require a separate
231installation of a newer version of the compiler (e.g., clang-3.4) and dependencies.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000232
233chunks:
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400234- Change default version discovery to iterative
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000235- Improve help text of `ndnputchunks`
236- Fix `DiscoverVersionIterative` build error
237- Modularize Interest pipeline implementation
238- Add AIMD congestion control (Issue #3636)
239- Code cleanup and improvements
240
241dissect-wireshark:
242- Add initial support for NDNLPv2 (Issue #3197)
243- Fix potential memory overflow
244
245dump:
246- Add support for Linux cooked-mode capture (SLL) (Issue #3061)
247- Improve error messages
248
249pib:
250- Disable by default (can be compiled with ndn-cxx version 0.5.0)
251- Fix compilation error with new version of ndn-cxx library
252- Avoid use of deprecated block helpers
253- Correct build target path
254
255ping:
256- Recognize and trace NACK
Davide Pesavento4a43e872018-05-03 22:10:56 -0400257- Fix potential divide-by-zero bug in `StatisticsCollector` (Issue #3504)
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000258
259peek:
260- Recognize and properly handle NACK
261- Refactor implementation
262
263## Version 0.3
264
265chunks: **New** (pair of) tool(s) for segmented file transfer
266
267peek:
268- Allow verbose output
269- Switch from `getopt` to `boost::program_options`
270- Add `--link-file` option
271
272ping:
273- Document ndnping protocol
274
275dump:
276- Capture and print network NACK packets
277- Update docs to include NACK capture feature
278
Davide Pesaventoebea9092022-02-18 11:30:32 -0500279build system:
Davide Pesavento4a43e872018-05-03 22:10:56 -0400280- Enable `-Wextra` by default
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000281- Fix missing tool name in `configure --help` output
282- Fix compatibility with Python 3
283
284## Version 0.2
285
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400286Code improvements and two new tools:
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000287
288- PIB service to manage the public information of keys and publish certificates
289 (Issue 3018)
290- A Wireshark dissector for NDN packets (Issue 3092)
291
292## Version 0.1
293
294Initial release of NDN Essential Tools, featuring:
295
296- ndnpeek, ndnpoke: a pair of programs to request and make available for
Davide Pesavento6cc1dfb2019-04-27 14:10:56 -0400297 retrieval a single Data packet.
298- ndnping, ndnpingserver: reachability testing tools for Named Data Networking.
299- ndndump: a traffic analysis tool that captures NDN packets on the wire.
Alexander Afanasyev339161a2016-10-27 22:41:16 +0000300- ndn-dissect: an NDN packet format inspector. It reads zero or more NDN
301 packets from either an input file or the standard input, and displays the
302 Type-Length-Value (TLV) structure of those packets on the standard output.