blob: 8da591d276bccda92a990d0c81f9afe77211d105 [file] [log] [blame] [view]
# Release Notes
## Version 24.07
The build dependencies have been increased as follows:
- GCC >= 9.3 or Clang >= 7.0 are strongly recommended on Linux; GCC 8.x is also known
to work but is not officially supported
- Xcode 13 or later is recommended on macOS; older versions may still work but are not
officially supported
- Boost >= 1.71.0 is required on all platforms
docker:
- Added an official Dockerfile to the repository
- A prebuilt image for *linux/amd64* and *linux/arm64* platforms is available on the
[GitHub container registry](https://github.com/named-data/ndn-tools/pkgs/container/ndn-tools)
build system:
- Fix detection of libpcap 1.10.2 and later on Linux
- Fix building the man pages with Python 3.12
([#5298](https://redmine.named-data.net/issues/5298))
- Reduce amount of debugging information produced in compiled binaries by default
([#5279](https://redmine.named-data.net/issues/5279))
- Upgrade `waf` to version 2.0.27
## 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
([#5202](https://redmine.named-data.net/issues/5202))
- Use ndn-cxx's `Segmenter` class
([#4702](https://redmine.named-data.net/issues/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
([#5135](https://redmine.named-data.net/issues/5135))
- CentOS Stream 9 is now supported; CentOS 8 has been dropped
([#5181](https://redmine.named-data.net/issues/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.