docs: Prepare release notes for version 0.3.0
Change-Id: If0ae14cbf97ee3d9b92a3467d0b6592c10e66698
Refs: #2462, #2352, #2209
diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst
index bfb47b9..b5376ab 100644
--- a/docs/RELEASE_NOTES.rst
+++ b/docs/RELEASE_NOTES.rst
@@ -3,6 +3,259 @@
NFD Release Notes
=================
+NFD version 0.3.0 (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 (: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 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 version 0.2.0 (changes since version 0.1.0)
-----------------------------------------------
@@ -21,109 +274,82 @@
- **Core**
- + Add support for temporary privilege drop and elevation (`Issue #1370
- <http://redmine.named-data.net/issues/1370>`_)
+ + Add support for temporary privilege drop and elevation (:issue:`1370`)
+ Add support to reinitialize multicast Faces and (partially) reload config file
- (`Issue #1584 <http://redmine.named-data.net/issues/1584>`_)
+ (:issue:`1584`)
- + Randomization routines are now uniform across all NFD modules
- (`Issue #1369 <http://redmine.named-data.net/issues/1369>`_)
+ + Randomization routines are now uniform across all NFD modules (:issue:`1369`)
- + Enable use of new NDN naming conventions
- (`Issue #1837 <http://redmine.named-data.net/issues/1837>`_ and
- `#1838 <http://redmine.named-data.net/issues/1838>`_)
+ + Enable use of new NDN naming conventions (:issue:`1837` and :issue:`1838`)
- **Faces**
- + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support
- (`Issue #1468 <http://redmine.named-data.net/issues/1468>`_)
+ + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support (:issue:`1468`)
- + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0
- (`Issue #1511 <http://redmine.named-data.net/issues/1511>`_)
+ + 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 <http://redmine.named-data.net/issues/1635>`_)
+ + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri`` (:issue:`1635`)
- + Fix to avoid multiple onFail events
- (`Issue #1497 <http://redmine.named-data.net/issues/1497>`_)
+ + Fix to avoid multiple onFail events (:issue:`1497`)
- + Fix broken support of multicast UDP Faces on OSX
- (`Issue #1668 <http://redmine.named-data.net/issues/1668>`_)
+ + 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 <http://redmine.named-data.net/issues/1651>`_)
+ + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (:issue:`1651`)
- + Added link layer byte counts in FaceCounters
- (`Issue #1729 <http://redmine.named-data.net/issues/1729>`_)
+ + Added link layer byte counts in FaceCounters (:issue:`1729`)
- + Face IDs 0-255 are now reserved for internal NFD use
- (`Issue #1620 <http://redmine.named-data.net/issues/1620>`_)
+ + Face IDs 0-255 are now reserved for internal NFD use (:issue:`1620`)
- + Serialized StreamFace::send(Interest|Data) operations using queue
- (`Issue #1777 <http://redmine.named-data.net/issues/1777>`_)
+ + 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 <http://redmine.named-data.net/issues/1596>`_)
+ + 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 <http://redmine.named-data.net/issues/1556>`_)
+ (:issue:`1556`)
- + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used
- in forwarding strategies
+ + 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 <http://redmine.named-data.net/issues/1882>`_)
+ + Fix memory leak caused by not removing PIT entry when Interest matches CS (:issue:`1882`)
- + Fix spurious assertion in NCC strategy
- (`Issue #1853 <http://redmine.named-data.net/issues/1853>`_)
+ + Fix spurious assertion in NCC strategy (:issue:`1853`)
- **Tables**
+ Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
- (`Issue #1646 <http://redmine.named-data.net/issues/1646>`_)
+ (:issue:`1646`)
- + New option in configuration file to set an upper bound on ContentStore size
- (`Issue #1623 <http://redmine.named-data.net/issues/1623>`_)
+ + 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 <http://redmine.named-data.net/issues/1665>`_)
+ + Fix to prevent infinite lifetime of Measurement entries (:issue:`1665`)
- + Introducing capacity limit in PIT NonceList
- (`Issue #1770 <http://redmine.named-data.net/issues/1770>`_)
+ + Introducing capacity limit in PIT NonceList (:issue:`1770`)
- + Fix memory leak in NameTree
- (`Issue #1803 <http://redmine.named-data.net/issues/1803>`_)
+ + Fix memory leak in NameTree (:issue:`1803`)
- + Fix segfault during Fib::removeNextHopFromAllEntries
- (`Issue #1816 <http://redmine.named-data.net/issues/1816>`_)
+ + Fix segfault during Fib::removeNextHopFromAllEntries (:issue:`1816`)
- **Management**
- + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags
- (`Issue #1325 <http://redmine.named-data.net/issues/1325>`_)
+ + 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 <http://redmine.named-data.net/issues/1619>`_)
+ + 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 <http://redmine.named-data.net/issues/1680>`_)
+ + 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 <http://redmine.named-data.net/issues/1772>`_)
+ + Fix to properly handle optional ExpirationPeriod in RibRegister command (:issue:`1772`)
- + Added functionality of publishing RIB status (RIB dataset) by RibManager
- (`Issue #1662 <http://redmine.named-data.net/issues/1662>`_)
+ + 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 <http://redmine.named-data.net/issues/1902>`_)
+ + 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 <http://redmine.named-data.net/issues/1875>`_)
+ + Enable periodic clean up of route entries that refer to non-existing faces (:issue:`1875`)
- **Tools**
@@ -140,10 +366,9 @@
* 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 <http://redmine.named-data.net/issues/1807>`_)
+ (:issue:`1807`)
- + Several fixes in ``ndn-autoconfig`` tool
- (`Issue #1595 <http://redmine.named-data.net/issues/1595>`_)
+ + Several fixes in ``ndn-autoconfig`` tool (:issue:`1595`)
+ Extended options in ``nfdc``:
@@ -151,12 +376,10 @@
* ``-o`` to specify origin for registration and unregistration commands
+ Enable ``all-faces-prefix'' option in ``nfd-autoreg`` to register prefix for all face
- (on-demand and non-on-demand)
- (`Issue #1861 <http://redmine.named-data.net/issues/1861>`_)
+ (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 <http://redmine.named-data.net/issues/1863>`_)
+ + Enable processing auto-registration in ``nfd-autoreg`` for faces that existed prior to
+ start of the tool (:issue:`1863`)
- **Build**
@@ -165,6 +388,8 @@
- `Other small fixes and extensions
<https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
+****************************************************************************
+
NFD version 0.1.0
-----------------