303 lines
9.9 KiB
Markdown
303 lines
9.9 KiB
Markdown
# Release Notes
|
|
|
|
## Version 22.12
|
|
|
|
The minimum build requirements have been increased as follows:
|
|
- Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
|
|
- On macOS, Xcode 11.3 or later is recommended; older versions may still work but are
|
|
not officially supported
|
|
- Boost >= 1.65.1 is required on all platforms
|
|
- Sphinx 4.0 or later is required to build the manual pages
|
|
|
|
chunks:
|
|
- Avoid excess window decrease in certain conditions (Issue #5202)
|
|
- Use ndn-cxx's `Segmenter` class (Issue #4702)
|
|
|
|
dissect:
|
|
- Recognize several TLV elements that appear in `Certificate` and `SafeBag`
|
|
- Remove support for obsolete TLV types
|
|
|
|
dissect-wireshark:
|
|
- Expose `type`, `len`, and `bin` fields
|
|
|
|
build system:
|
|
- Switch to C++17
|
|
- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now supported out-of-the-box
|
|
(Issue #5135)
|
|
- CentOS Stream 9 is now supported; CentOS 8 has been dropped (Issue #5181)
|
|
- Stop using the `gold` linker on Linux; prefer instead linking with `lld` if installed
|
|
- Upgrade `waf` to version 2.0.24
|
|
|
|
## Version 22.02
|
|
|
|
Starting with this release, ndn-tools switched to a date-based versioning scheme:
|
|
`YEAR.MONTH[.PATCH]` (`YY.0M[.MICRO]` in [CalVer](https://calver.org/) notation).
|
|
|
|
chunks:
|
|
- Add `--naming-convention` command-line option (Issue #5109)
|
|
- Increase the default segment size to 8000 bytes
|
|
|
|
dissect:
|
|
- Support `InterestSignature` fields and more types of name components
|
|
- The `Content` field is no longer dissected by default; use the new `--content` option
|
|
to enable it
|
|
- Minor cosmetic improvements to the tool output
|
|
|
|
dissect-wireshark:
|
|
- Remove support for obsolete TLV elements
|
|
- Recognize `ForwardingHint` (Issue #4185)
|
|
- Recognize `ParametersSha256DigestComponent`
|
|
- Fix decoding of several TLV elements such as `HopLimit` and `PitToken`
|
|
- Update the TLV type of `IncomingFaceId` (Issue #5185)
|
|
|
|
peek:
|
|
- Replace `--link-file` option with `--fwhint` and adapt to the new `ForwardingHint`
|
|
format (Issues #4207, #5187)
|
|
|
|
poke:
|
|
- Remove deprecated `--force` option; use `--unsolicited` instead
|
|
- Remove deprecated `--identity` and `--digest` options; use `--signing-info` instead
|
|
- Change the short form of `--freshness` to `-f`
|
|
|
|
pingserver:
|
|
- Remove deprecated `-x` alias for the `--freshness` option
|
|
|
|
build system:
|
|
- Upgrade `waf` to version 2.0.23
|
|
|
|
## Version 0.7.1
|
|
|
|
The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python >= 3.6.
|
|
Meanwhile, it is *recommended* to use GCC >= 7.4.0 and Boost >= 1.65.1.
|
|
|
|
This release contains minor build fixes and code cleanups.
|
|
|
|
## Version 0.7
|
|
|
|
chunks:
|
|
- Add `--no-version-discovery` option to ndncatchunks (Issue #5021)
|
|
- Improve CUBIC performance on lossy networks (Issue #5036)
|
|
- Switch to ndn-cxx's `RttEstimatorWithStats` class (Issue #4887)
|
|
- Remove previously deprecated options `-d` and `-t` from ndncatchunks
|
|
|
|
ping:
|
|
- Change the short form of ndnpingserver's `--freshness` option to `-f`,
|
|
for consistency with ndnputchunks
|
|
|
|
peek:
|
|
- Add `--app-params`, `--app-params-file`, and `--hop-limit` options
|
|
- The `--link-file` option now expects a raw binary file
|
|
- Print Data name and Nack reason if `--verbose` is specified
|
|
- Code cleanup
|
|
- Manual page improvements
|
|
|
|
poke:
|
|
- Add `--signing-info` option, replacing `--digest` and `--identity` which are
|
|
now deprecated
|
|
- Add `--verbose` option
|
|
- Wait indefinitely if `--timeout` is not specified
|
|
- The program now exits with status 3 when a timeout occurs and with status 5
|
|
if prefix registration fails
|
|
- Rename `--force` option to `--unsolicited`
|
|
- Code cleanup
|
|
- Major rewrite of the manual page
|
|
|
|
## Version 0.6.4
|
|
|
|
chunks:
|
|
- Add metadata-based version discovery and remove iterative discovery (Issue #4556)
|
|
- Remove manual selection of version discovery method via `-d` option (Issue #4832)
|
|
- Implement CUBIC congestion window adaptation in ndncatchunks (Issue #4861)
|
|
- Increase the default retransmission limit from 3 to 15 (Issue #4861)
|
|
- Improve stats printed by ndncatchunks after transfer completes (Issue #4603)
|
|
- Add manual page for ndnputchunks
|
|
|
|
dissect & dissect-wireshark:
|
|
- Follow packet specification changes to renumber the `Parameters` element and
|
|
rename it to `ApplicationParameters` (Issues #4658, #4780)
|
|
|
|
dump:
|
|
- Fix compilation on CentOS 7 (Issue #4852)
|
|
|
|
pib:
|
|
- Completely remove this obsolete and unmaintained tool (Issue #4205)
|
|
|
|
## Version 0.6.3
|
|
|
|
chunks:
|
|
- Fix impossible RTT values (Issue #4604)
|
|
- Add support for RDR metadata in ndnputchunks (Issue #4556)
|
|
- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
|
|
|
|
ping:
|
|
- Add systemd unit file for ndnpingserver (Issue #4594)
|
|
- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
|
|
|
|
poke:
|
|
- Use `PendingInterestHandle` and `RegisteredPrefixHandle` (Issues #4316, #3919)
|
|
|
|
build system:
|
|
- Upgrade `waf` to version 2.0.14 and other improvements
|
|
|
|
## Version 0.6.2
|
|
|
|
The build requirements have been upgraded to gcc >= 5.3 or clang >= 3.6, boost >= 1.58,
|
|
openssl >= 1.0.2. This effectively drops support for all versions of Ubuntu older than 16.04
|
|
that use distribution-provided compilers and packages.
|
|
|
|
The compilation now uses the C++14 standard.
|
|
|
|
chunks:
|
|
- Fix AIMD hanging with files smaller than the chunk size (Issue #4439)
|
|
|
|
dissect-wireshark:
|
|
- Show `Name` and `FinalBlockId` as URIs (Issue #3106)
|
|
- Improve NDNLPv2 support (Issue #4463)
|
|
- Add support for dissecting PPP frames
|
|
|
|
dump:
|
|
- Remove dependency on Boost.Regex
|
|
- Stop using tcpdump headers files
|
|
- Compile pcap filter with optimizations enabled
|
|
- Capture in promiscuous mode by default, add an option to disable it
|
|
- Add `-t` option to suppress printing per-packet timestamp
|
|
- Properly handle exceptions thrown by `lp::Packet::wireDecode()` (Issue #3943)
|
|
- Add UDP port 56363 to the default pcap filter
|
|
- Stricter parsing of IP/TCP/UDP headers
|
|
- Add IPv6 support
|
|
- Code cleanup
|
|
|
|
poke:
|
|
- Use `Face::unsetInterestFilter` instead of `shutdown` (Issue #4642)
|
|
- Improve unit testing (Issue #3740)
|
|
|
|
ping:
|
|
- Add `--quiet` option to ndnpingserver (Issue #4673)
|
|
- Set `CanBePrefix=false` in Interests sent by ndnping (Issue #4581)
|
|
- Code cleanup
|
|
|
|
## Version 0.6.1
|
|
|
|
chunks:
|
|
- Show correct packet loss stats in final summary (Issue #4437)
|
|
- Avoid printing meaningless values when no RTT measurements are available (Issue #4551)
|
|
|
|
dissect:
|
|
- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4590)
|
|
|
|
dissect-wireshark:
|
|
- Recognize `CanBePrefix`, `HopLimit`, and `Parameters` TLV elements (Issue #4517)
|
|
|
|
peek:
|
|
- Drop `Selectors` support (Issue #4571)
|
|
- Add `-P/--prefix` option to set `CanBePrefix` in the Interest packet
|
|
|
|
build system:
|
|
- Upgrade `waf` to version 2.0.6 and other improvements
|
|
|
|
## Version 0.6
|
|
|
|
chunks:
|
|
- Change the default Interest pipeline to AIMD (Issue #4402)
|
|
- Include RTT stats in final summary (Issue #4406)
|
|
- Respect `--retries=-1` in the AIMD pipeline (Issue #4409)
|
|
- React to congestion marks by default as a timeout event (can be disabled using
|
|
`--aimd-ignore-cong-marks`) (Issue #4289)
|
|
- Print a final summary of the transfer regardless of the pipeline type, and even if
|
|
`--verbose` was not specified (Issue #4421)
|
|
|
|
## Version 0.5
|
|
|
|
all:
|
|
- Switch to version 2 of certificates, `KeyChain`, and `Validator` (Issue #4089)
|
|
- Compilation fixes (Issue #4259)
|
|
|
|
chunks:
|
|
- Make `ndnputchunks` display some output by default; a new `-q` flag makes the tool
|
|
completely silent, except for errors (Issue #4286)
|
|
- Refactor `ndnputchunks` options handling
|
|
- Reduce initial timeout of iterative version discovery in `ndncatchunks` (Issue #4291)
|
|
- Fix potential `ndncatchunks` crash on exit
|
|
|
|
peek:
|
|
- Convert use of `Link` into `ForwardingHint` (Issue #4055)
|
|
|
|
## Version 0.4
|
|
|
|
As of this version, NDN Essential Tools require a modern compiler (gcc >= 4.8.2, clang >= 3.4)
|
|
and a relatively new version of the Boost libraries (>= 1.54). This means that the code no
|
|
longer compiles with the packaged version of gcc and Boost libraries on Ubuntu 12.04.
|
|
NDN Essential Tools can still be compiled on such systems, but require a separate
|
|
installation of a newer version of the compiler (e.g., clang-3.4) and dependencies.
|
|
|
|
chunks:
|
|
- Change default version discovery to iterative
|
|
- Improve help text of `ndnputchunks`
|
|
- Fix `DiscoverVersionIterative` build error
|
|
- Modularize Interest pipeline implementation
|
|
- Add AIMD congestion control (Issue #3636)
|
|
- Code cleanup and improvements
|
|
|
|
dissect-wireshark:
|
|
- Add initial support for NDNLPv2 (Issue #3197)
|
|
- Fix potential memory overflow
|
|
|
|
dump:
|
|
- Add support for Linux cooked-mode capture (SLL) (Issue #3061)
|
|
- Improve error messages
|
|
|
|
pib:
|
|
- Disable by default (can be compiled with ndn-cxx version 0.5.0)
|
|
- Fix compilation error with new version of ndn-cxx library
|
|
- Avoid use of deprecated block helpers
|
|
- Correct build target path
|
|
|
|
ping:
|
|
- Recognize and trace NACK
|
|
- Fix potential divide-by-zero bug in `StatisticsCollector` (Issue #3504)
|
|
|
|
peek:
|
|
- Recognize and properly handle NACK
|
|
- Refactor implementation
|
|
|
|
## Version 0.3
|
|
|
|
chunks: **New** (pair of) tool(s) for segmented file transfer
|
|
|
|
peek:
|
|
- Allow verbose output
|
|
- Switch from `getopt` to `boost::program_options`
|
|
- Add `--link-file` option
|
|
|
|
ping:
|
|
- Document ndnping protocol
|
|
|
|
dump:
|
|
- Capture and print network NACK packets
|
|
- Update docs to include NACK capture feature
|
|
|
|
build system:
|
|
- Enable `-Wextra` by default
|
|
- Fix missing tool name in `configure --help` output
|
|
- Fix compatibility with Python 3
|
|
|
|
## Version 0.2
|
|
|
|
Code improvements and two new tools:
|
|
|
|
- PIB service to manage the public information of keys and publish certificates
|
|
(Issue 3018)
|
|
- A Wireshark dissector for NDN packets (Issue 3092)
|
|
|
|
## Version 0.1
|
|
|
|
Initial release of NDN Essential Tools, featuring:
|
|
|
|
- ndnpeek, ndnpoke: a pair of programs to request and make available for
|
|
retrieval a single Data packet.
|
|
- ndnping, ndnpingserver: reachability testing tools for Named Data Networking.
|
|
- ndndump: a traffic analysis tool that captures NDN packets on the wire.
|
|
- ndn-dissect: an NDN packet format inspector. It reads zero or more NDN
|
|
packets from either an input file or the standard input, and displays the
|
|
Type-Length-Value (TLV) structure of those packets on the standard output.
|