-
NFD-0.3.326664730 · ·
Changes since version 0.3.2) Release date: July 1, 2015 New features: - Content Store replacement policy interface (Issue 1207) - Add unit file and instructions for systemd (Issue 1586) - NDN Essential Tools version 0.1 featuring: - ndnpeek, ndnpoke: a pair of programs to request and make available for retrieval of a single Data packet - ndnping, ndnpingserver: reachability testing tools for Named Data Networking - ndndump: a traffic analysis tool that captures Interest and Data 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. Updates and bug fixes: - Avoid loopback new Interest in AccessStrategy (Issue 2831) - Simplified implementation of nfd-status using SegmentFetcher utility class (Issue 2456) Deprecated: - ndn-tlv-peek and ndn-tlv-poke command-line tools: use ndnpeek and ndnpoke programs from NDN Essential Tools repository . Upcoming features: - NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, Issues 2520, 2879, 2763, 2883, 2841, 2866) - Refactored implementation of NFD management (Issues 2200, 2107)
-
NFD-0.3.22d1b6406 · ·
Changes since version 0.3.1 Release date: May 12, 2015 New features: - Tables - Change lookup API to allow async implementations of ContentStore (Issue 2411) - Management - Perform FIB updates before modifying RIB (Issue 1941) Updates and bug fixes: - Documentation - Update planned Features: face enhancements (Issue 2617) - Updated NFD's developer guide to reflect new changes and adding a new section on NFD/ndn-cxx unit testing - Face - Refactor channel acceptors to avoid use of shared pointers (Issue 2613) - Refactor code to avoid deprecated Block::fromBuffer overloads (Issue 2553) - Refactor code to use move semantics for sockets where possible (Issue 2613) - Switch to non-throwing version of websocketpp APIs (Issue 2630) - Forwarding - Extend measurements lifetime in AccessStrategy (Issue 2452) - Management - Stop removed namespace from inheriting ancestor route (Issue 2757) - Fix TestFibUpdates/EraseFace on Ubuntu 14.04 32-bit (Issue 2697) - Tools - Fix hanging of nfdc on wrong input (Issue 2690) - Build - Make build scripts compatible with Python 3 (Issue 2625) - Get rid of the last use of ndn::dns in NFD (Issue 2422) - Update waf build system to version 1.8.9 (Issues 2209, 2657, 2792) - Tweak default pkg-config search paths (Issue 2711) - Use C version of snprintf (Issue 2299) - Emulate std::to_string when it is missing (Issue 2299) - Fix several "defined but not used" warnings with gcc-5 (Issue 2767) - Disable precompiled headers on OS X with clang < 6.1.0 (Issue 2804)
-
NFD-0.3.188964789 · ·
Changes since version 0.3.0 Release date: March 3, 2015 New features: - nfd and nrd daemons are now merged into a single process using separate threads (Issue 2489) - Core - Extend ConfigFile to support passing a parsed ConfigSection (Issue 2495) - Allow customization of Logger and LoggerFactory (Issue 2433) - Make global io_service, scheduler, and global random generator thread-local, and logger thread-safe (Issue 2489) - Forwarding - Introduce exponential back-off interest retransmission suppression mechanism and enable its use in the best-route strategy (Issue 1913) - Strategies are now registered with a macro, making it simpler to introduce new strategies to NFD codebase (Issue 2410) - Tables - ContentStore now recognizes CachingPolicy-NoCache from LocalControlHeader (Issue 2185) Updates and bug fixes: - Faces - Remove Tcp|UdpChannel::connect overloads that perform DNS resolution (Issue 2422) - Properly handle error conditions in UdpChannel::newPeer (Issue 2516) - Fix inconsistency of UDP face timeouts in sample nfd.conf and actual defaults (Issue 2473) - Introduce Face-specific logging macros (Issue 2450) - Refactor handling of LinkType face trait and fix FaceStatus reporting: the link type was not properly propagated (Issue 2563) - Avoid exceptions in NDNLP PartialMessageStore (Issue 2261) - Update websocketpp to version 0.5.1 - Tables - Reduce priority of DeadNonceList log messages from DEBUG to TRACE - Management - Change register/unregister logging in RibManager to INFO level (Issue 2547) - Tools - Change prefix for the local hub prefix discovery <local-prefix-discovery> to be under /localhop/nfd (Issue 2479, Issue 2512) - Tests - Change naming conventions for unit test files and test suite names (Issue 2497) - Fix segfault in TableNameTree test suite when all test logs are enabled (Issue 2564)
-
NFD-0.3.07c10b3bd · ·
Changes since version 0.2.0 Release date: February 2, 2015 New features: - Build - The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions do not have proper support for C++11 features. - Faces - Enable detection of WebSocket connection failures using ping/pong messages (Issue 1903) - In EthernetFace: - Avoid putting the NIC in promiscuous mode if possible (Issue 1278) - Report packets dropped by the kernel if debug is enabled (Issue 2441) - Integrate NDNLP fragmentation (Issue 1209) - Forwarding - Strategy versioning (Issue 1893) - New Dead Nonce List table to supplement PIT for loop detection (Issue 1953) - Abstract retransmission suppression logic (Issue 2377) - New forwarding strategy for access router (Issue 1999) - Management - Add config file-based strategy selection (Issue 2053) The sample config file now includes strategy selection for /, /localhost, /localhost/nfd, and /ndn/broadcast namespaces as follows: tables { ... strategy_choice { / /localhost/nfd/strategy/best-route /localhost /localhost/nfd/strategy/broadcast /localhost/nfd /localhost/nfd/strategy/best-route /ndn/broadcast /localhost/nfd/strategy/broadcast } } - Implement Query Operation in FaceManager (Issue 1993) - FaceManager now responds with producer-generated NACK when query is invalid (Issue 1993) - Add functionality for automatic remote prefix registration (Issue 2056) - Only canonical FaceUri are allowed in faces/create commands (Issue 1910) - Tables - StrategyInfoHost can now store multiple StrategyInfo of distinct types (Issue 2240) - Enable iteration over PIT and CS entries (Issue 2339) - Allow predicate to be specified in Measurements::findLongestPrefixMatch (Issue 2314) - Calculate the implicit digest of Data packets in CS only when necessary (Issue 1706) - Tools - Publish /localhop/ndn-autoconf/routable-prefixes from ndn-autoconfig-server (Issue 1954) - Display detailed NFD software verion in nfd-status-http-server and nfd-status (Issue 1916) - nfdc now accepts FaceUri in all commands (Issue 1995) - Add daemon mode for ndn-autoconfig to re-run detection when connectivity changes (Issue 2417) - Core - New scheduler::ScopedEventId class to automatically handle scheduled event lifetime (Issue 2295) Updates and bug fixes: - Documentation - NFD Developer's guide has been updated to reflect changes in the codebase - Installation instruction updates - Update of config file instructions for disabling unix sockets (Issue 2190) - Core - Use implementations moved to ndn-cxx library - Use Signal from ndn-cxx (Issues 2272 and 2300) - use ethernet::Address from ndn-cxx (Issue 2142) - Use MAX_NDN_PACKET_SIZE constant from ndn-cxx (Issue 2099) - Use DEFAULT_INTEREST_LIFETIME from ndn-cxx (Issue 2202) - Use FaceUri from ndn-cxx (Issue 2143) - Use DummyClientFace from ndn-cxx (Issue 2186) - Use ndn::dns from ndn-cxx (Issue 2207) - Move Network class implementation from tools/ to core/ - Ignore non-Ethernet AF_LINK addresses when enumerating NICs on OSX and other BSD systems - Fix bug on not properly setting FreshnessPeriod inside SegmentPublisher (Issue 2438) - Faces - Fix spurious assertion failure in StreamFace (Issue 1856) - Update websocketpp submodule (Issue 1903) - Replace FaceFlags with individual fields (Issue 1992) - Drop WebSocket message if the size is larger than maximum NDN packet size (Issue 2081) - Make EthernetFace more robust against errors (Issue 1984) - Prevent potential infinite loop in TcpFactory and UdpFactory (Issue 2292) - Prevent crashes when attempting to create a UdpFace over a half-working connection (Issue 2311) - Support MTU larger than 1500 in EthernetFace (for jumbo frames) (Issue 2305) - Re-enable EthernetFace on OS X platform with boost >=1.57.0 (Issue 1922) - Fix ioctl() calls on platforms where libpcap uses /dev/bpf* (Issue 2327) - Fix overhead estimation in NDNLP slicer (Issue 2317) - Replace usage of deprecated EventEmitter with Signal in Face abstractions (Issue 2300) - Fix NDNLP PartialMessage cleanup scheduling (Issue 2414) - Remove unnecessary use of DNS resolver in (Udp|Tcp|WebSocket)Factory (Issue 2422) - Forwarding - Updates related to NccStrategy - Fix to prevent remembering of suboptimal upstreams (Issue 1961) - Optimizing FwNccStrategy/FavorRespondingUpstream test case (Issue 2037) - Proper detection for new PIT entry (Issue 1971) - Use UnitTestTimeFixture in NCC test case (Issue 2163) - Fix loop back to sole downstream (Issue 1998) - Updates related to BestRoute strategy - Redesign best-route v2 strategy test case (Issue 2126) - Fix clang compilation error in best-route v2 test case (Issue 2179) - Use UnitTestClock in BestRouteStrategy2 test (Issue 2160) - Allow strategies limited access to FaceTable (Issue 2272) - Tables - Ensure that eviction of unsolicited Data is done in FIFO order (Issue 2043) - Simplify table implementations with C++11 features (Issue 2100) - Fix issue with Fib::removeNextHopFromAllEntries invalidating NameTree iterator (Issue 2177) - Replace deprecated EventEmitter with Signal in FaceTable (Issue 2272) - Refactored implementation of ContentStore based on std::set (Issue 2254) - Management - Allow omitted FaceId in faces/create command (Issue 2031) - Avoid deprecated ndn::nfd::Controller(Face&) constructor (Issue 2039) - Enable check of command length before accessing verb (Issue 2151) - Rename FaceEntry to Route (Issue 2159) - Insert RIB command prefixes into RIB (Issue 2312) - Tools - Display face attribute fields instead of FaceFlags in nfd-status and nfd-status-http-server output (Issue 1991) - Fix nfd-status-http-server hanging when nfd-status output is >64k (Issue 2121) - Ensure that ndn-autoconfig canonizes FaceUri before sending commands to NFD (Issue 2387) - Refactored ndn-autoconfig implementation (Issue 2421) - ndn-autoconfig will now register also /localhop/nfd prefix towards the hub (Issue 2416) - Tests - Use UnitTestClock in Forwarder persistent loop test case (Issue 2162) - Use LimitedIo in FwForwarder/SimpleExchange test case (Issue 2161) - Build - Fix build error with python3 (Issue 1302) - Embed CI build and test running script - Properly disable assertions in release builds (Issue 2139) - Embed setting of PKG_CONFIG_PATH variable to commonly used values (Issue 2178) - Add conditional compilation for NetworkInterface and PrivilegeHelper - Support tools with multiple translation units (Issue 2344) Removals - Remove listen option from unix channel configuration (Issue 2188) - Remove usage of deprecated MetaInfo::TYPE_* constants (Issue 2128) - Eliminate MapValueIterator in favor of boost::adaptors::map_values
-
NFD-0.2.062a93946 · ·
Changes since version 0.1.0 - Documentation - "NFD Developer's Guide" by NFD authors that explains NFD's internals including the overall design, major modules, their implementation, and their interactions - New detailed instructions on how to enable auto-start of NFD using OSX launchd and Ubuntu's upstart (see contrib/ folder) - Core - Add support for temporary privilege drop and elevation (Issue #1370) - Add support to reinitialize multicast Faces and (partially) reload config file (Issue #1584) - Randomization routines are now uniform across all NFD modules (Issue #1369) - Enable use of new NDN naming conventions (Issue #1837 and #1838) - Faces - WebSocket Face support (Issue #1468) - Fix Ethernet Face support on Linux with libpcap version >=1.5.0 (Issue #1511) - Fix to recognize IPv4-mapped IPv6 addresses in FaceUri (Issue #1635) - Fix to avoid multiple onFail events (Issue #1497) - Fix broken support of multicast UDP Faces on OSX (Issue #1668) - On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (Issue #1651) - Added link layer byte counts in FaceCounters (Issue #1729) - Face IDs 0-255 are now reserved for internal NFD use (Issue #1620) - Serialized StreamFace::send(Interest|Data) operations using queue (Issue #1777) - Forwarding - Outgoing Interest pipeline now allows strategies to request a fresh Nonce (e.g., when the strategy needs to re-express the Interest) (Issue #1596) - Fix in the incoming Data pipeline to avoid sending packets to the incoming Face (Issue #1556) - New RttEstimator class that implements the Mean-Deviation RTT estimator to be used in forwarding strategies - Fix memory leak caused by not removing PIT entry when Interest matches CS (Issue #1882) - Fix spurious assertion in NCC strategy (Issue #1853) - Tables - Fix in ContentStore to properly adjust internal structure when Cs::setLimit is called (Issue #1646) - New option in configuration file to set an upper bound on ContentStore size (Issue #1623) - Fix to prevent infinite lifetime of Measurement entries (Issue #1665) - Introducing capacity limit in PIT NonceList (Issue #1770) - Fix memory leak in NameTree (Issue #1803) - Fix segfault during Fib::removeNextHopFromAllEntries (Issue #1816) - Management - RibManager now fully support CHILD_INHERIT and CAPTURE flags (Issue #1325) - Fix in FaceManager to respond with canonical form of Face URI for Face creation command (Issue #1619) - Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (Issue #1680) - Fix to properly handle optional ExpirationPeriod in RibRegister command (Issue #1772) - Added functionality of publishing RIB status (RIB dataset) by RibManager (Issue #1662) - Fix issue of not properly canceling route expiration during processing of unregister command (Issue #1902) - Enable periodic clean up of route entries that refer to non-existing faces (Issue #1875) - Tools - Extended functionality of nfd-status - -x to output in XML format, see nfd-status xml schema - -c to retrieve channel status information (enabled by default) - -s to retrieve configured strategy choice for NDN namespaces (enabled by default) - Face status now includes reporting of Face flags (local and on-demand) - On-demand UDP Faces now report remaining lifetime (expirationPeriod) - -r to retrieve RIB information - Improved nfd-status-http-server - HTTP server now presents status as XSL-formatted XML page - XML dataset and formatted page now include certificate name of the corresponding NFD (Issue #1807) - Several fixes in ndn-autoconfig tool (Issue #1595) - Extended options in nfdc: - -e to set expiration time for registered routes - -o to specify origin for registration and unregistration commands - Enable all-faces-prefix'' option innfd-autoreg`` to register prefix for all face (on-demand and non-on-demand) (Issue #1861) - Enable processing auto-registration in nfd-autoreg for faces that existed prior to start of the tool (Issue #1863) - Build - Enable support of precompiled headers for clang and gcc to speed up compilation - Other small fixes and extensions
-
NFD-0.2.0-rc268bc1e0d · ·
Changes since version 0.1.0: - Documentation - "NFD Developer's Guide" by NFD authors that explains NFD's internals including the overall design, major modules, their implementation, and their interactions - New detailed instructions on how to enable auto-start of NFD using OSX launchd and Ubuntu's upstart (see contrib/ folder) - Core - Add support for temporary privilege drop and elevation (Issue #1370) - Add support to reinitialize multicast Faces and (partially) reload config file (Issue #1584) - Randomization routines are now uniform across all NFD modules (Issue #1369) - Faces - WebSocket Face support (Issue #1468) - Fix Ethernet Face support on Linux with libpcap version >=1.5.0 (Issue #1511) - Fix to recognize IPv4-mapped IPv6 addresses in FaceUri (Issue #1635) - Fix to avoid multiple onFail events (Issue #1497) - Fix broken support of multicast UDP Faces on OSX (Issue #1668) - On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (Issue #1651) - Added link layer byte counts in FaceCounters (Issue #1729) - Face IDs 0-255 are now reserved for internal NFD use (Issue #1620) - Serialized StreamFace::send(Interest|Data) operations using queue (Issue #1777) - Forwarding - Outgoing Interest pipeline now allows strategies to request a fresh Nonce (e.g., when the strategy needs to re-express the Interest) (Issue #1596) - Fix in the incoming Data pipeline to avoid sending packets to the incoming Face (Issue #1556) - New RttEstimator class that implements the Mean-Deviation RTT estimator to be used in forwarding strategies - Tables - Fix in ContentStore to properly adjust internal structure when Cs::setLimit is called (Issue #1646) - New option in configuration file to set an upper bound on ContentStore size (Issue #1623) - Fix to prevent infinite lifetime of Measurement entries (Issue #1665) - Introducing capacity limit in PIT NonceList (Issue #1770) - Fix memory leak in NameTree (Issue #1803) - Management - RibManager now fully support CHILD_INHERIT and CAPTURE flags (Issue #1325) - Fix in FaceManager to respond with canonical form of Face URI for Face creation command (Issue #1619) - Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (Issue #1680) - Fix to properly handle optional ExpirationPeriod in RibRegister command (Issue #1772) - Added functionality of publishing RIB status (RIB dataset) by RibManager (Issue #1662) - Tools - Extended functionality of nfd-status - -x to output in XML format, see nfd-status xml schema - -c to retrieve channel status information (enabled by default) - -s to retrieve configured strategy choice for NDN namespaces (enabled by default) - Face status now includes reporting of Face flags (local and on-demand) - On-demand UDP Faces now report remaining lifetime (expirationPeriod) - -r to retrieve RIB information - Improved nfd-status-http-server - HTTP server now presents status as XSL-formatted XML page - Several fixes in ndn-autoconfig tool (Issue #1595) - Extended options in nfdc: - -e to set expiration time for registered routes - -o to specify origin for registration and unregistration commands - Build - Enable support of precompiled headers for clang and gcc to speed up compilation - Other small fixes and extensions
-
NFD-0.2.0-rc140ee381e · ·
Changes since version 0.1.0: - Documentation - "NFD Developer's Guide" by NFD authors that explains NFD's internals including the overall design, major modules, their implementation, and their interactions - New detailed instructions on how to enable auto-start of NFD using OSX launchd and Ubuntu's upstart (see contrib/ folder) - Core - Add support for temporary privilege drop and elevation (Issue #1370) - Add support to reinitialize multicast Faces and (partially) reload config file (Issue #1584) - Randomization routines are now uniform across all NFD modules (Issue #1369) - Faces - WebSocket Face support (Issue #1468) - Fix Ethernet Face support on Linux with libpcap version >=1.5.0 (Issue #1511) - Fix to recognize IPv4-mapped IPv6 addresses in FaceUri (Issue #1635) - Fix to avoid multiple onFail events (Issue #1497) - Fix broken support of multicast UDP Faces on OSX (Issue #1668) - On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (Issue #1651) - Forwarding - Outgoing Interest pipeline now allows strategies to request a fresh Nonce (e.g., when the strategy needs to re-express the Interest) (Issue #1596) - Fix in the incoming Data pipeline to avoid sending packets to the incoming Face (Issue #1556) - New RttEstimator class that implements the Mean-Deviation RTT estimator to be used in forwarding strategies - Tables - Fix in ContentStore to properly adjust internal structure when Cs::setLimit is called (Issue #1646) - New option in configuration file to set an upper bound on ContentStore size (Issue #1623) - Fix to prevent infinite lifetime of Measurement entries (Issue #1665) - Management - RibManager now fully support CHILD_INHERIT and CAPTURE flags (Issue #1325) - Fix in FaceManager to respond with canonical form of Face URI for Face creation command (Issue #1619) - Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (Issue #1680) - Tools - Extended functionality of nfd-status - -x to output in XML format, see nfd-status xml schema - -c to retrieve channel status information (enabled by default) - -s to retrieve configured strategy choice for NDN namespaces (enabled by default) - Face status now includes reporting of Face flags (local and on-demand) - On-demand UDP Faces now report remaining lifetime (expirationPeriod) - Several fixes in ndn-autoconfig tool (Issue #1595) - Extended options in nfdc: - -e to set expiration time for registered routes - -o to specify origin for registration and unregistration commands - Build - Enable support of precompiled headers for clang and gcc to speed up compilation - Other small fixes and extensions
-
NFD-0.1.026181531 · ·
Release 0.1.0 Features in Version 0.1.0 ------------------------- This is an incomplete list of features that are implemented in NFD version 0.1.0. - **Packet Format** + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_ + LocalControlHeader, to allow apps to set outgoing face and learn incoming face. - **Faces** + Unix stream socket + UDP unicast + UDP multicast + TCP + Ethernet, currently without fragmentation. .. note:: Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04). Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more detail and implementation progress. - **Management** + Use of signed Interests as commands, with authentication and authorization. + Face management + FIB management + Per-namespace strategy selection + NFD status publishing + Notification to authorized apps of internal events, including Face creation and destruction. - **Tables and forwarding pipelines** support most Interest/Data processing, including selectors. - **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix registration by applications, but no flags yet. - **Strategies** + ``broadcast`` + ``best-route`` + ``ncc``: based on ccnx 0.7 for experimentation + ``client-control``: authorized application can directly control Interest forwarding - **Name-based scoping** + ``/localhost``: communication only within localhost using "local" Faces (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests and Data packets + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face) - **Support configuration file**, which is in the Boost INFO format. - **Applications** + Tools to discover hubs on NDN testbed. + peek/poke and traffic generators for testing and debugging. + ``nfdc``, a command-line tool to configure NFD. + ``nfd-status``, a command-line tool to query NFD status. + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP. Planned Functions and Features for Next Releases ------------------------------------------------ - NACK A packet sent back by a producer or a router to signal the unavailability of a requested Data packet. The protocol specification for NACK is in progress. - New strategies Additional strategies, including self-learning that populates the FIB by observing Interest and Data exchange. - Hop-by-hop Interest limit mechanism For congestion control - Face enhancements Add fragmentation support for Ethernet face, may add support for new types such as WiFi direct and WebSockets. - Tables Experiment and evaluate different data structures and algorithms. - RIB management Move to more scalable data structures and support all flags in prefix registrations. - Tunnel management For hub nodes to authenticate incoming tunnel requests and maintain the tunnels. - Extensible name-based scoping Configurable organization-based scoping