Alexander Afanasyev | 6701911 | 2016-10-03 14:22:54 -0700 | [diff] [blame^] | 1 | NFD version 0.5.0 |
| 2 | ----------------- |
| 3 | |
| 4 | Release date: October 4, 2016 |
| 5 | |
| 6 | .. note:: |
| 7 | Version 0.5.0 introduces several breaking changes to the internal API (forwarding pipelines, |
| 8 | strategy interface, tables) and wire format of management protocol |
| 9 | |
| 10 | .. note:: |
| 11 | As of version 0.5.0, NFD requires a modern compiler (gcc >= 4.8.2, clang >= 3.4) and a |
| 12 | relatively new version of Boost libraries (>= 1.54). This means that the code no longer compiles |
| 13 | with the packaged version of gcc and boost libraries on Ubuntu 12.04. NFD can still be |
| 14 | compiled on such systems, but requires separate installation of a newer version of the compiler |
| 15 | (e.g., clang-3.4) and dependencies. |
| 16 | |
| 17 | Changes since version 0.4.1 |
| 18 | |
| 19 | New features |
| 20 | ^^^^^^^^^^^^ |
| 21 | |
| 22 | - Add Adaptive SRTT-based Forwarding strategy (:issue:`3566`) |
| 23 | |
| 24 | - **breaking change** Introduce configurable policy for admission of unsolicited data packets into |
| 25 | the content store (:issue:`2181`). Currently available policies: |
| 26 | |
| 27 | * ``DropAllUnsolicitedDataPolicy`` (**the new default**): drop all unsolicited data packets |
| 28 | * ``AdmitLocalUnsolicitedDataPolicy`` (the old default): allow unsolicited data packets from local |
| 29 | applications to be cached (e.g., with a lower priority), drop all other unsolicited data |
| 30 | * ``AdmitNetworkUnsolicitedDataPolicy``: allow unsolicited data packets from the network to be |
| 31 | cached (e.g., with a lower priority), drop all other unsolicited data |
| 32 | * ``AdmitAllUnsolicitedDataPolicy``: cache all unsolicited data packets |
| 33 | |
| 34 | - Introduce mechanism to update properties (e.g., flags, persistency) of an existing Face |
| 35 | (:issue:`3731`). Note that the corresponding ``nfdc`` command will be available in the next |
| 36 | release. |
| 37 | |
| 38 | Updates |
| 39 | ^^^^^^^ |
| 40 | |
| 41 | - **breaking change** Strategy API update. FIB entry is no longer supplied to the |
| 42 | ``Strategy::afterReceiveInterest`` method (i.e., FIB lookup is not performed by the forwarding |
| 43 | pipelines). When necessary, a strategy can request FIB lookup using ``Strategy::lookupFib`` |
| 44 | (:issue:`3664`, :issue:`3205`, :issue:`3679`, :issue:`3205`) |
| 45 | |
| 46 | - **breaking change** ForwarderStatus dataset can now be requested only with |
| 47 | ``/localhost/nfd/status/general`` interest (:issue:`3379`) |
| 48 | |
| 49 | - Optimizations of tables and forwarding, including reduced usage of ``shared_ptr`` (:issue:`3205`, |
| 50 | :issue:`3164`, :issue:`3687`) |
| 51 | |
| 52 | - Display extended diagnostic information if NFD crashes (:issue:`2541`) |
| 53 | |
| 54 | - Visualize NACK counters in ``nfd-status`` output (:issue:`3569`) |
| 55 | |
| 56 | - Extend management to process the new ``LocalFieldsEnabled`` attribute when creating/updating Faces |
| 57 | (:issue:`3731`) |
| 58 | |
| 59 | - Switch logging facility to use Boost.Log (:issue:`3562`) |
| 60 | |
| 61 | - Refactor implementation of ``nfdc`` tool, which now supports a new command-line syntax and |
| 62 | retrieval of status datasets (:issue:`3749`, :issue:`3780`). This is the first step in |
| 63 | implementing an interactive mode for ``nfdc`` (:issue:`2542`). |
| 64 | |
| 65 | - ``nfd-status`` tool has been merged into ``nfdc`` with a wrapper script provided for backwards |
| 66 | compatibility (:issue:`3658`) |
| 67 | |
| 68 | - Refactor implementation of RIB Manager to make it uniform with other managers (:issue:`2857`) |
| 69 | |
| 70 | - Miscellaneous code refactoring (:issue:`3738`, :issue:`3164`, :issue:`3687`, :issue:`3205`, |
| 71 | :issue:`3608`, :issue:`3619`, :issue:`2181`) |
| 72 | |
| 73 | - Update WebSocket++ to version 0.7.0 (:issue:`3588`) |
| 74 | |
| 75 | - Updates to reflect the latest changes in ndn-cxx library (:issue:`3760`, :issue:`3739`, |
| 76 | :issue:`2950`, :issue:`2063`) |
| 77 | |
| 78 | Bugfixes |
| 79 | ^^^^^^^^ |
| 80 | |
| 81 | - Ensure ``NccStrategy`` explores all potential upstreams (:issue:`3411`) |
| 82 | |
| 83 | - Add missing processing of NACK in ``pit::Entry::hasUnexpiredOutRecords`` (:issue:`3545`) |
| 84 | |
| 85 | - Fix issue with WebSocket-based Face creation when IPv4-mapped IPv6 loopback addresses are |
| 86 | considered non-local (:issue:`3682`) |
| 87 | |
| 88 | - Make sure that the outgoing Interest pipeline uses the newest in-record when sending out an |
| 89 | Interest (:issue:`3642`) |
| 90 | |
| 91 | - Properly delete PIT in-record and out-record when face is destroyed (:issue:`3685`) |
| 92 | |
| 93 | - Fix ``Pit::find`` leak of ``NameTreeEntry`` (:issue:`3619`) |
| 94 | |
| 95 | - Fix ``Pit::erase`` crash when Interest name contains implicit digest (:issue:`3608`) |
| 96 | |
| 97 | - Fix use-after-free in ``Rib::erase`` and ``RibManagerFixture::clearRib`` (:issue:`3787`) |
| 98 | |
| 99 | Deprecations |
| 100 | ^^^^^^^^^^^^ |
| 101 | |
| 102 | - ``ClientControl`` forwarding strategy. The NextHopFaceId is now honored universally |
| 103 | (:issue:`3783`) |
| 104 | |
| 105 | - ``StrategyInfoHost::getOrCreateStrategyInfo``, which is renamed to |
| 106 | ``StrategyInfoHost::insertStrategyInfo`` (:issue:`3205`) |
| 107 | |
| 108 | Deletions |
| 109 | ^^^^^^^^^ |
| 110 | |
| 111 | - Previously deprecated BroadcastStrategy (:issue:`3206`) |
| 112 | |
| 113 | - Unused command-line tool ``nrd`` (:issue:`3570`) |
| 114 | |
| 115 | - ``SegmentPublisher`` and ``RibStatusPublisher``, both replaced by ``ndn::Dispatcher`` |
| 116 | (:issue:`2857`) |
| 117 | |
| 118 | - ``CommandValidator``, which has been replaced by ``CommandAuthenticator`` (:issue:`2063`) |