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
fromndn-autoconfig-server
(issue #1954)Display detailed NFD software verion in
nfd-status-http-server
andnfd-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 fromtools/
tocore/
Ignore non-Ethernet
AF_LINK
addresses when enumerating NICs on OS X and other BSD systemsFix 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
andnfd-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