Tags: named-data/NFD
Tags
NFD version 24.07 Release date: July 28, 2024 Important changes and new features - 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 - Ubuntu 24.04 (Noble), Debian 12 (Bookworm), and macOS 14 (Sonoma) are now officially supported - Added an official Dockerfile to the repository. From this Dockerfile, the following images are currently published to the GitHub container registry: - named-data/nfd - named-data/nfd-autoreg - named-data/nfd-status-http-server All images are available for linux/amd64 and linux/arm64 platforms. - The default Unix socket path changed to /run/nfd/nfd.sock 10000 on Linux and to /var/run/nfd/nfd.sock on all other platforms (5304) - Introduced a new strategy trigger onInterestLoop <Strategy::onInterestLoop> that is invoked when a duplicate Interest is received. The default behavior (sending a Nack packet) remains unchanged except for the Multicast strategy, which will now suppress the Nack transmission in this case (5278) - Multiple updates to the ASF forwarding strategy to more closely adhere to the behavior described in the published technical report (5310) - The ASF strategy gained support for Nack propagation (5311) - The default port number of nfd-status-http-server changed to 6380 Improvements and bug fixes - Several stability improvements in the face system, especially around error handling in multicast faces and UnixStreamChannel (5030, 5297) - Refactor and improve logging in forwarding core and strategies (5262, 5267) - Fix missing increment of nOutNacks counter when sending a Nack from onInterestLoop - Optimize the removal of PIT in-records - Move RIB unit tests into unit-tests-daemon and eliminate the unit-tests-rib binary - Fix building the documentation with Python 3.12 (5298) - Reduce amount of debugging information produced in compiled binaries by default (5279) - Update waf build system to version 2.0.27 - Various code cleanups, modernizations, and documentation improvements
NFD version 22.12 Important changes and new features - NFD now uses the C++17 standard to build - 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 documentation - CentOS Stream 9 is now officially supported; CentOS 8 has been dropped (5181) - macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now officially supported (5135) - The ASF, BestRoute, and Multicast strategies gained support for fine-grained configuration of the retransmission suppression parameters (4924) Improvements and bug fixes - Prevent Ethernet faces from hanging NFD when a network interface goes down - Refactor the EndpointId implementation using std::variant (5041) - Better support for the new signed Interest format in management - Extend and optimize the use of precompiled headers (5212) - Stop using the gold linker on Linux; prefer instead linking with lld if installed - Update waf build system to version 2.0.24 - Various documentation improvements
NFD version 22.02 Note that starting with this release, NFD switched to a new versioning convention: YEAR.MONTH[.REVISION]. Notable changes and new features - Remove NACKs from multicast strategy (5146) - Dispatch pending interests when a new next hop is created in MulticastStrategy (4931) - Reorder function parameters in Strategy classes to make the API more uniform (5173) - Add default HopLimit to Interests when missing (5171) - Allow batch command processing by nfdc to accomodate case when nfdc is used to create multiple faces/routes at once (5169) - Update Interest::ForwardingHint format (5187) - Rename the ASF strategy parameter n-silent-timeouts to max-timeouts - Allow setting default UDP face MTU in nfd.conf (5138) Improvements and bug fixes - Execute pcap_activate as root for Ethernet faces (4647) - Update the validation examples in nfd.conf.sample to accept a certificate name in KeyLocator in addition to a key name (5114) - Fix and simplify enumeration logic in Forwarder::onNewNextHop() - Use per-upstream suppression in ASF strategy (5140) - Use typed name components for (versioned) strategy names (5044) - Avoid extending the dataset expiration in ForwarderStatusManager - DeadNonceList improvements - Code cleanup/modernization - Prevent duplicate entries (5167) - Improve logging (5165) - Increase initial and minimum capacity - Handle error when calling remote_endpoint on a TCP socket (5158) - Various build system and documentation extensions and fixes Removals - Eliminate Forwarder::dispatchToStrategy() (use direct call to StrategyChoice::findEffectiveStrategy(PitEntry)) - NCC strategy (legacy) - Best-route strategy version 1 (legacy)
NFD version 0.7.1 The build requirements have been increased to require Clang >= 4.0, Xcode >= 9.0, and Python 3. Meanwhile, it is recommended to use GCC >= 7.4.0 and Boost >= 1.65.1. This effectively drops official support for Ubuntu 16.04 when using distribution-provided Boost packages -- NFD may still work on this platform, but we provide no official support for it. Additionally, this release drops support for CentOS 7. New features - Allow Ethernet face MTU to adjust to changes in underlying interface MTU (3257) - Allow face MTU to be overriden via management (5056) - Deduplicate received link-layer packets when link-layer reliability is enabled (5079) - Add support for the HopLimit Interest element (4806) - Add counter for unsolicited data Improvements and bug fixes - Fix PIT entry rejection in MulticastStrategy upon receiving the same Interest (5123) - If no face exists when a route is added via nfdc, nfdc will attempt to create it (4332) - Attach PIT tokens after CS hit (5090) - nfdc cs erase will now erase up to the specified count (4744) - Improve LpReliability logging (5080) - Use standard path for Unix stream socket on Linux (5039) - Adjust timeout sensitivity and avoid ignoring additional probe responses in ASF strategy (4983, 4193) - Bug fixes in config file processing (4489) - Fix incompatibility with version header in C++20 - Fix integer overflow in PIT FaceRecord (4979) - Various improvements to documentation, test suites, and authors list Removals - Delete deprecated uses of default SigningInfo (4804) - Remove Endpoint IDs from egress APIs (4843, 4849, 4973)
NFD version 0.7.0 New features: - Support only NDN packet format version 0.3 (4805, 4581, 4913) - Initial support for PitToken (4532) - Random Forwarding Strategy that chooses a random outgoing face, excluding the incoming face of an Interest packet (4992) Improvements and bug fixes: - Avoid cs::Entry construction during Content Store lookup (4914) - Make use of ndn-cxx's RttEstimator in LpReliability, AsfStrategy, and AccessStrategy (4887) - Increase pcap buffer size in Ethernet faces (2441) - Make congestion marking less aggressive (5003). The updated implementation is closer to the CoDel algorithm (RFC 8289) - Pull FaceTable construction out of Forwarder class (4922, 4973) - Enable direct certificate fetch in RibManager (2237) - Refuse to start NFD if both localhop_security and auto_prefix_propagate are enabled in the configuration file (4989) - Fix crash in self-learning strategy when the out-record of a PIT entry does not exist (5022) - Use a separate validator and a separate configuration section in nfd.conf for prefix announcements (5031). The default configuration will accept any prefix announcement. - Documentation improvements
NFD VERSION 0.6.6 Note that this is the last release that encodes to NDN packet format version 0.2.1. A future release will continue to decode v0.2.1 format, but will encode to v0.3 format. New features - Initial code changes for self-learning for broadcast and ad hoc wireless faces (4281) - EndpointId field in PIT in-record and out-record (4842) - FaceEndpoint parameter in Forwarding and Strategy API (4849) Improvements and bug fixes - Fix to properly handle consumer retransmission in AsfStrategy (4874) - Fix compilation error when dropping privileges is not supported, e.g., on Android platform (4833) - Replace all uses of BOOST_THROW_EXCEPTION with NDN_THROW, and custom nfd::getExtendedErrorMessage with standard boost::diagnostic_information for error message formatting (4834) - Fix compilation against recent versions of Boost libraries (4890, 4923) - Fix display of satisfied/unsatisfied Interests in nfd-status-http-server (4720) - Move NFD_VERSION{,_BUILD}_STRING to version.cpp to avoid re-compilation when the git commit hash changes - Code optimizations, modernizations, and deduplications: - Switch to use ndn-cxx's getRandomNumberEngine() - Switch to std::thread and thread_local - Code reorganization: - Move entire rib subdir to daemon/rib, except for RibManager, which is moved to daemon/mgmt (4528) - Move NFD-specific files from core/ to daemon/ folder (4922) - Eliminate scheduler::{schedule,cancel} wrappers - Merge ManagerBase with NfdManagerBase (4528) - Introduce and make use of NullLinkService and NullTransport (4528) - Test suite refactoring - IdentityManagementFixture renamed to KeyChainFixture and no longer derives from BaseFixture - Introduce ClockFixture - unit-tests-{core,tools} no longer require a global io_service - Eliminate use of Selectors in CS tests (4805) - Update documentation Removals - Support for unit-tests.conf (use NDN_LOG to customize)
NFD version 0.6.5 Note that this is the last release that encodes to NDN packet format version 0.2.1. A future release will continue to decode v0.2.1 format, but will encode to v0.3 format. New features ============ - Self-learning forwarding strategy (4279) - Support IPv6-only WebSocket channels (4710) - Add satisfied and unsatisfied counters to forwarder status management and tools (4720) - Report face MTU in faces/list and faces/query datasets (4763) Improvements and bug fixes ========================== - Stop using the global scheduler in RIB (4528) - Reimplement auto prefix propagation on top of the readvertise framework (3819) - Don't set SO_BINDTODEVICE on Android (4761) - Set EthernetTransport UP/DOWN based on netif state (3352) - Update WebSocket++ to 0.8.1 - Add EndpointId field in NextHop record (4284) - Seed the global PRNG with more entropy - Use ndn-cxx scheduler::ScopedEventId (4698) - Improvements with systemd integration (2815) Removed ======= - Remove obsolete upstart files - Delete deprecated ClientControlStrategy (3783)
NFD version 0.6.4 This minor release fixes a regression introduced in version 0.6.3 that prevents NFD from starting when RIB security configuration is enabled (4759). For details of new and improved features since version 0.6.2, refer to the release notes of version 0.6.3.
NFD version 0.6.3 Note that this is the last release that encodes to NDN packet format version 0.2.1 <https://named-data.net/doc/NDN-packet-spec/0.2.1/>__. A future release will continue to decode v0.2.1 format, but will encode to v0.3 format <https://named-data.net/doc/NDN-packet-spec/0.3/>__. 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. New features ============ - Allow MTU of datagram faces to be overridden (4005, 4789) - Implement nfdc cs erase command (4318) - Initial framework to realize self-learning feature - RIB code refactoring (4650, 4723, 4683) - Add facility to execute functions on the RIB and main threads (4279, 4683) - Incorporate PrefixAnnouncement into Route and RibEntry (4650) - Add official support for CentOS 7 (4610) Improvements and bug fixes ========================== - Make LRU the default CS replacement policy (4728) - Refactor logging to use ndn-cxx logging framework (4580) - Directly use asio::ip::address::from_string instead of ndn-cxx provided helpers (Boost.Asio >= 1.58 includes necessary fixes) - Avoid use of deprecated {get,set}FinalBlockId - Improve and simplify code with modern C++ features - Improve test cases - Improve documentation
NFD version 0.6.2 Note that this is the last release that process packets with NDN packet format version 0.2.1 (https://named-data.net/doc/NDN-packet-spec/0.2.1/) semantics. A future release will continue to decode v0.2.1 format, but will process packets with v0.3 (https://named-data.net/doc/NDN-packet-spec/0.3/) semantics. New features: ------------- - afterContentStoreHit, afterReceiveData strategy trigger (Issue 4290) - Cs::erase method and cs/erase management command (Issue 4318) - nfdc cs config to configure parameters of NFD Content Store at run time (Issue 4050) - Support for IPv6 subnets in white-/blacklists of NFD config file (Issue 4546) - Configurable IP subnets for "local" TCP faces (Issue 4546) Improvements and bug fixes: --------------------------- - Replace PIT straggler timer with a per-strategy decision (Issue 4200) - Add isSatisfied and dataFreshnessPeriod properties to PIT entries (Issue 4290) - Prevent potential nullptr dereference in FaceManager (Issue 4548) - Enforce NameTree maximum depth universally (Issue 4262) - Correctly handle removed fragments in LpReliability (Issue 4479) - More hints, aliases, and visual improvements in nfdc command (Issue 4498) - Fix listing of face flags in the HTML status page produced by nfd-status-http-server - Upgrade build environment to latest version of waf and other improvements Removals: --------- - onInterestUnsatisfied pipeline stage (Issue 4290)
PreviousNext