Tags: iai-ceni/NFD
Tags
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)
NFD version 0.6.1 New features: ------------- - (potentially breaking change) nfd-status-http-server now requires Python 3 - Congestion detection and signaling for TCP, UDP, and Unix stream transports. This feature can be managed through the configuration file and nfdc, and is enabled by default (Issues 4362, 4465) - nfdc cs info command that shows CS hits and CS misses (Issues 4219, 4438) - Support for non-listening UDP channels (Issue 4098) - IPv6 UDP multicast transport (Issue 4222) - Strategy notification for packet drops in LpReliability (Issue 3823) - NonDiscovery and PrefixAnnouncement encoding/decoding in GenericLinkService (Issues 4280, 4355) Improvements and bug fixes -------------------------- - Added more ways in nfdc for a user to ask for help, including 'nfdc foo help', 'nfdc foo --help', and 'nfdc foo -h' (Issue 4503) - Added privilege elevation in MulticastUdpTransport that was preventing NFD from running with effective non-root user (Issue 4507) - Fixed crash when configuration file lacks an 'authorizations' section (Issue 4487) - Made the exit status consistent across all tools - Fixed build when std::to_string is not available (Issue 4393) - Made AsfStrategy less sensitive, switching the path only after multiple timeouts. The number of timeouts is configurable via a strategy parameter (Issue 4193) - Introduce depth limit in the Measurements table, limit the accepted prefix length for RIB, FIB, and StrategyChoice management commands (Issue 4262) - Improved test cases and documentation
NFD version 0.6.0 New features ------------ - Generic prefix readvertise capability with specific support of readvertise-to-NLSR (Issue 3818) - Unicast Ethernet faces, including close-on-idle, persistency change, fragmentation and reassembly features (Issues 4011, 4012) - Capability to create permanent TCP faces (Issue 3167) - Configuration option to make UDP multicast and Ethernet multicast faces "ad hoc" (Issues 4018, 3967) - Replace `Link` with `ForwardingHint` as part of Interest processing (Issue 4055) - `ForwardingHint` stripped when Interest reaches producer region (Issue 3893) - New capabilities in multicast strategy: - Nack support (Issue 3176) - Consumer retransmission (Issue 2062) - Per-upstream exponential suppression of retransmissions (Issue 4066) - Wildcard matching on interface names for whitelist/blacklist (Issue 4009) - Optional best-effort link-layer reliability feature in NDNLPv2 (Issue 3931) - Support for `LpReliability` flag in faces/create and faces/update (Issue 4003) - Advisory limit of `NameTree` depth (Issue 4262) - Contributing guide (https://github.com/named-data/NFD/) and code of conduct (https://github.com/named-data/NFD/) (Issue 3898) Updates ------- - Allow forwarding of Interest/Data to ad hoc face regardless if the Interest/Data came from the same face (Issue 3968) - Interpret omitted `FreshnessPeriod` as "always stale" (Issue 3944) - Duplicate nonce from same face is no longer considered "loop" (Issue 3888) - Refactor nfdc command-line tool `../manpages/nfd` (Issues 3864, 3866) - Accept `LocalUri` in `ProtocolFactory` and `FaceManager` (Issue 4016) - Abstract `Nack` processing out of `BestRouteStrategy2` (Issue 3176) - Rework `FacePersistency` handling in faces/create and faces/update (Issue 3232) - Enable changing persistency in faces/update command - Reject faces/create request if the face already exists - RIB updates to follow API changes in ndn-cxx library (Issue 3903) - Switch to V2 security framework (Issue 4089) - Use `NetworkMonitor`, `NetworkInterface`, `lp::isLessSevere` from ndn-cxx (Issues 4021, 4228) - Move `Channel` and subclasses into `nfd::face` namespace - Improve consistency of logging in channels (Issue 2561) - Change `ndn-autoconfig` tool to register `/` prefix instead of `/ndn` (Issue 4201) - Documentation improvements Bugfixes -------- - In ASF strategy add check for FaceInfo existence before using it (Issue 3968) - Avoid setting TransportState to FAILED if connection is closed cleanly (Issue 4099) - Fix regression `ndn-autoconfig` continue proceeding with existing face (Issue 4008) - Decode `CachePolicy` without requiring `allowLocalFields` (Issue 3966) - Fix support for link-local IPv6 addresses (Issue 1428) - Fix potential misaligned memory accesses (Issue 4191) Deletions --------- - Deprecated code, including `faces/enable-local-control` and `faces/disable-local-control` management commands (Issue 3988) - `NetworkInterfaceInfo` class, replaced by `ndn::net::NetworkInterface` from ndn-cxx (Issue 4021) - Legacy nfdc and nfd-status invocations The following legacy nfdc sub-commands are deleted, use the corresponding `nfdc face ...`, `nfdc route ...`, `nfdc strategy ...` commands: - `register` - `unregister` - `create` - `destroy` - `set-strategy` - `unset-strategy` - `add-nexthop` - `remove nexthop` - `nfd-status` no longer accepts command line arguments (Issue 4198). Individual datasets can be requested using `nfdc channel list`, `nfdc face list`, `nfdc fib list`, `nfdc route list`, and `nfdc strategy list` commands. - `nfdId` from `nfdc status` output (Issue 4089) - Prohibited endpoint set, making it possible to create faces that connect NFD to itself (Issue 4189)
PreviousNext