Release Notes

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)

Various build system and build script 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 scripts:

  • Upgrade waf to the latest version 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)

peek:

  • Convert use of Link into ForwardingHint (Issue #4055)

chunks:

  • Make ndnputchunks display some output by default. A new -q flag makes output 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

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 scripts:

  • 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.