Skip to content

NFD-0.3.0

@cawka cawka tagged this 03 Feb 07:46
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
Assets 2