Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 1 | # Release Notes |
| 2 | |
Davide Pesavento | 3b4ee2f | 2022-12-31 01:55:06 -0500 | [diff] [blame^] | 3 | ## Version 22.12 |
| 4 | |
| 5 | The 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 | |
| 12 | chunks: |
| 13 | - Avoid excess window decrease in certain conditions (Issue #5202) |
| 14 | - Use ndn-cxx's `Segmenter` class (Issue #4702) |
| 15 | |
| 16 | dissect: |
| 17 | - Recognize several TLV elements that appear in `Certificate` and `SafeBag` |
| 18 | - Remove support for obsolete TLV types |
| 19 | |
| 20 | dissect-wireshark: |
| 21 | - Expose `type`, `len`, and `bin` fields |
| 22 | |
| 23 | build 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 Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 31 | ## Version 22.02 |
| 32 | |
Davide Pesavento | 3b4ee2f | 2022-12-31 01:55:06 -0500 | [diff] [blame^] | 33 | Starting 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 Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 35 | |
| 36 | chunks: |
| 37 | - Add `--naming-convention` command-line option (Issue #5109) |
| 38 | - Increase the default segment size to 8000 bytes |
| 39 | |
| 40 | dissect: |
| 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 | |
| 46 | dissect-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 | |
| 53 | peek: |
| 54 | - Replace `--link-file` option with `--fwhint` and adapt to the new `ForwardingHint` |
| 55 | format (Issues #4207, #5187) |
| 56 | |
| 57 | poke: |
| 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 | |
| 62 | pingserver: |
| 63 | - Remove deprecated `-x` alias for the `--freshness` option |
| 64 | |
| 65 | build system: |
| 66 | - Upgrade `waf` to version 2.0.23 |
| 67 | |
Eric Newberry | 374f4e4 | 2020-10-04 14:15:39 -0700 | [diff] [blame] | 68 | ## Version 0.7.1 |
| 69 | |
| 70 | The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6. |
| 71 | Meanwhile, it is *recommended* to use GCC >= 7.4.0 and Boost >= 1.65.1. |
| 72 | |
| 73 | This release contains minor build fixes and code cleanups. |
| 74 | |
Davide Pesavento | 6ab7f91 | 2020-01-13 19:14:02 -0500 | [diff] [blame] | 75 | ## Version 0.7 |
| 76 | |
| 77 | chunks: |
| 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 | |
| 83 | ping: |
| 84 | - Change the short form of ndnpingserver's `--freshness` option to `-f`, |
| 85 | for consistency with ndnputchunks |
| 86 | |
| 87 | peek: |
| 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 | |
| 94 | poke: |
| 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 Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 105 | ## Version 0.6.4 |
| 106 | |
| 107 | chunks: |
| 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 | |
| 115 | dissect & dissect-wireshark: |
| 116 | - Follow packet specification changes to renumber the `Parameters` element and |
| 117 | rename it to `ApplicationParameters` (Issues #4658, #4780) |
| 118 | |
| 119 | dump: |
| 120 | - Fix compilation on CentOS 7 (Issue #4852) |
| 121 | |
| 122 | pib: |
| 123 | - Completely remove this obsolete and unmaintained tool (Issue #4205) |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 124 | |
Alexander Afanasyev | d5449e5 | 2019-01-29 09:32:56 -0500 | [diff] [blame] | 125 | ## Version 0.6.3 |
| 126 | |
| 127 | chunks: |
| 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 | |
| 132 | ping: |
| 133 | - Add systemd unit file for ndnpingserver (Issue #4594) |
| 134 | - Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919) |
| 135 | |
| 136 | poke: |
| 137 | - Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919) |
| 138 | |
Davide Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 139 | build system: |
| 140 | - Upgrade `waf` to version 2.0.14 and other improvements |
Alexander Afanasyev | d5449e5 | 2019-01-29 09:32:56 -0500 | [diff] [blame] | 141 | |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 142 | ## Version 0.6.2 |
| 143 | |
| 144 | The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6, boost >= 1.58, |
| 145 | openssl >= 1.0.2. This effectively drops support for all versions of Ubuntu older than 16.04 |
| 146 | that use distribution-provided compilers and packages. |
| 147 | |
| 148 | The compilation now uses the C++14 standard. |
| 149 | |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 150 | chunks: |
| 151 | - Fix AIMD hanging with files smaller than the chunk size (Issue #4439) |
| 152 | |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 153 | dissect-wireshark: |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 154 | - Show `Name` and `FinalBlockId` as URIs (Issue #3106) |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 155 | - Improve NDNLPv2 support (Issue #4463) |
| 156 | - Add support for dissecting PPP frames |
| 157 | |
| 158 | dump: |
| 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 Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 165 | - Add UDP port 56363 to the default pcap filter |
| 166 | - Stricter parsing of IP/TCP/UDP headers |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 167 | - Add IPv6 support |
| 168 | - Code cleanup |
| 169 | |
| 170 | poke: |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 171 | - Use `Face::unsetInterestFilter` instead of `shutdown` (Issue #4642) |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 172 | - Improve unit testing (Issue #3740) |
| 173 | |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 174 | ping: |
| 175 | - Add `--quiet` option to ndnpingserver (Issue #4673) |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 176 | - Set `CanBePrefix=false` in Interests sent by ndnping (Issue #4581) |
Alexander Afanasyev | a8b03df | 2018-09-16 21:06:07 -0400 | [diff] [blame] | 177 | - Code cleanup |
| 178 | |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 179 | ## Version 0.6.1 |
| 180 | |
| 181 | chunks: |
| 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 | |
| 185 | dissect: |
| 186 | - Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4590) |
| 187 | |
| 188 | dissect-wireshark: |
| 189 | - Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4517) |
| 190 | |
| 191 | peek: |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 192 | - Drop `Selectors` support (Issue #4571) |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 193 | - Add `-P/--prefix` option to set `CanBePrefix` in the Interest packet |
| 194 | |
Davide Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 195 | build system: |
| 196 | - Upgrade `waf` to version 2.0.6 and other improvements |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 197 | |
susmit | 48cb0b6 | 2018-02-13 12:27:24 -0700 | [diff] [blame] | 198 | ## Version 0.6 |
| 199 | |
| 200 | chunks: |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 201 | - 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) |
susmit | 48cb0b6 | 2018-02-13 12:27:24 -0700 | [diff] [blame] | 208 | |
Alexander Afanasyev | eacd617 | 2017-10-16 16:40:31 -0400 | [diff] [blame] | 209 | ## Version 0.5 |
| 210 | |
| 211 | all: |
| 212 | - Switch to version 2 of certificates, `KeyChain`, and `Validator` (Issue #4089) |
| 213 | - Compilation fixes (Issue #4259) |
| 214 | |
Alexander Afanasyev | eacd617 | 2017-10-16 16:40:31 -0400 | [diff] [blame] | 215 | chunks: |
Davide Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 216 | - Make `ndnputchunks` display some output by default; a new `-q` flag makes the tool |
Alexander Afanasyev | eacd617 | 2017-10-16 16:40:31 -0400 | [diff] [blame] | 217 | 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 Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 222 | peek: |
| 223 | - Convert use of `Link` into `ForwardingHint` (Issue #4055) |
| 224 | |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 225 | ## Version 0.4 |
| 226 | |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 227 | As of this version, NDN Essential Tools require a modern compiler (gcc >= 4.8.2, clang >= 3.4) |
| 228 | and a relatively new version of the Boost libraries (>= 1.54). This means that the code no |
| 229 | longer compiles with the packaged version of gcc and Boost libraries on Ubuntu 12.04. |
| 230 | NDN Essential Tools can still be compiled on such systems, but require a separate |
| 231 | installation of a newer version of the compiler (e.g., clang-3.4) and dependencies. |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 232 | |
| 233 | chunks: |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 234 | - Change default version discovery to iterative |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 235 | - 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 | |
| 241 | dissect-wireshark: |
| 242 | - Add initial support for NDNLPv2 (Issue #3197) |
| 243 | - Fix potential memory overflow |
| 244 | |
| 245 | dump: |
| 246 | - Add support for Linux cooked-mode capture (SLL) (Issue #3061) |
| 247 | - Improve error messages |
| 248 | |
| 249 | pib: |
| 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 | |
| 255 | ping: |
| 256 | - Recognize and trace NACK |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 257 | - Fix potential divide-by-zero bug in `StatisticsCollector` (Issue #3504) |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 258 | |
| 259 | peek: |
| 260 | - Recognize and properly handle NACK |
| 261 | - Refactor implementation |
| 262 | |
| 263 | ## Version 0.3 |
| 264 | |
| 265 | chunks: **New** (pair of) tool(s) for segmented file transfer |
| 266 | |
| 267 | peek: |
| 268 | - Allow verbose output |
| 269 | - Switch from `getopt` to `boost::program_options` |
| 270 | - Add `--link-file` option |
| 271 | |
| 272 | ping: |
| 273 | - Document ndnping protocol |
| 274 | |
| 275 | dump: |
| 276 | - Capture and print network NACK packets |
| 277 | - Update docs to include NACK capture feature |
| 278 | |
Davide Pesavento | ebea909 | 2022-02-18 11:30:32 -0500 | [diff] [blame] | 279 | build system: |
Davide Pesavento | 4a43e87 | 2018-05-03 22:10:56 -0400 | [diff] [blame] | 280 | - Enable `-Wextra` by default |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 281 | - Fix missing tool name in `configure --help` output |
| 282 | - Fix compatibility with Python 3 |
| 283 | |
| 284 | ## Version 0.2 |
| 285 | |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 286 | Code improvements and two new tools: |
Alexander Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 287 | |
| 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 | |
| 294 | Initial release of NDN Essential Tools, featuring: |
| 295 | |
| 296 | - ndnpeek, ndnpoke: a pair of programs to request and make available for |
Davide Pesavento | 6cc1dfb | 2019-04-27 14:10:56 -0400 | [diff] [blame] | 297 | 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 Afanasyev | 339161a | 2016-10-27 22:41:16 +0000 | [diff] [blame] | 300 | - 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. |