| NFD version 0.3.0 |
| ----------------- |
| |
| Release date: February 2, 2015 |
| |
| Changes since version 0.2.0: |
| |
| 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`) |
| |
| Improvements 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 (:issue:`2272`, :issue:`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 OS X 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`` |