blob: 051931a83b47eb70ab4768d5aac9303aa529adcd [file] [log] [blame]
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``