Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 1 | NFD version 0.3.0 |
| 2 | ----------------- |
| 3 | |
| 4 | Release date: February 2, 2015 |
| 5 | |
| 6 | Changes since version 0.2.0: |
| 7 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 8 | New features |
| 9 | ^^^^^^^^^^^^ |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 10 | |
| 11 | - **Build** |
| 12 | |
| 13 | + The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions |
| 14 | do not have proper support for C++11 features. |
| 15 | |
| 16 | - **Faces** |
| 17 | |
| 18 | + Enable detection of WebSocket connection failures using ping/pong messages (:issue:`1903`) |
| 19 | |
| 20 | + In EthernetFace: |
| 21 | |
| 22 | * Avoid putting the NIC in promiscuous mode if possible (:issue:`1278`) |
| 23 | |
| 24 | * Report packets dropped by the kernel if debug is enabled (:issue:`2441`) |
| 25 | |
| 26 | * Integrate NDNLP fragmentation (:issue:`1209`) |
| 27 | |
| 28 | - **Forwarding** |
| 29 | |
| 30 | + Strategy versioning (:issue:`1893`) |
| 31 | |
| 32 | + New Dead Nonce List table to supplement PIT for loop detection (:issue:`1953`) |
| 33 | |
| 34 | + Abstract retransmission suppression logic (:issue:`2377`) |
| 35 | |
| 36 | + New forwarding strategy for access router (:issue:`1999`) |
| 37 | |
| 38 | - **Management** |
| 39 | |
| 40 | + Add config file-based strategy selection (:issue:`2053`) |
| 41 | |
| 42 | The sample config file now includes strategy selection for ``/``, ``/localhost``, |
| 43 | ``/localhost/nfd``, and ``/ndn/broadcast`` namespaces as follows: |
| 44 | |
| 45 | :: |
| 46 | |
| 47 | tables |
| 48 | { |
| 49 | ... |
| 50 | strategy_choice |
| 51 | { |
| 52 | / /localhost/nfd/strategy/best-route |
| 53 | /localhost /localhost/nfd/strategy/broadcast |
| 54 | /localhost/nfd /localhost/nfd/strategy/best-route |
| 55 | /ndn/broadcast /localhost/nfd/strategy/broadcast |
| 56 | } |
| 57 | } |
| 58 | |
| 59 | + Implement Query Operation in FaceManager (:issue:`1993`) |
| 60 | |
| 61 | + FaceManager now responds with producer-generated NACK when query is invalid (:issue:`1993`) |
| 62 | |
| 63 | + Add functionality for automatic remote prefix registration (:issue:`2056`) |
| 64 | |
| 65 | + Only canonical FaceUri are allowed in faces/create commands (:issue:`1910`) |
| 66 | |
| 67 | - **Tables** |
| 68 | |
| 69 | + StrategyInfoHost can now store multiple StrategyInfo of distinct types (:issue:`2240`) |
| 70 | |
| 71 | + Enable iteration over PIT and CS entries (:issue:`2339`) |
| 72 | |
| 73 | + Allow predicate to be specified in Measurements::findLongestPrefixMatch (:issue:`2314`) |
| 74 | |
| 75 | + Calculate the implicit digest of Data packets in CS only when necessary (:issue:`1706`) |
| 76 | |
| 77 | - **Tools** |
| 78 | |
| 79 | + Publish ``/localhop/ndn-autoconf/routable-prefixes`` from ``ndn-autoconfig-server`` |
| 80 | (:issue:`1954`) |
| 81 | |
| 82 | + Display detailed NFD software verion in ``nfd-status-http-server`` and ``nfd-status`` |
| 83 | (:issue:`1916`) |
| 84 | |
| 85 | + ``nfdc`` now accepts FaceUri in all commands (:issue:`1995`) |
| 86 | |
| 87 | + Add daemon mode for ``ndn-autoconfig`` to re-run detection when connectivity changes |
| 88 | (:issue:`2417`) |
| 89 | |
| 90 | - **Core** |
| 91 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 92 | + New ``scheduler::ScopedEventId`` class to automatically handle scheduled event lifetime |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 93 | (:issue:`2295`) |
| 94 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 95 | Improvements and bug fixes |
| 96 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 97 | |
| 98 | - **Documentation** |
| 99 | |
| 100 | + NFD Developer's guide has been updated to reflect changes in the codebase |
| 101 | |
| 102 | + Installation instruction updates |
| 103 | |
| 104 | + Update of config file instructions for disabling unix sockets (:issue:`2190`) |
| 105 | |
| 106 | - **Core** |
| 107 | |
| 108 | + Use implementations moved to ndn-cxx library |
| 109 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 110 | + Use ``Signal`` from ndn-cxx (:issue:`2272`, :issue:`2300`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 111 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 112 | + use ``ethernet::Address`` from ndn-cxx (:issue:`2142`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 113 | |
| 114 | + Use MAX_NDN_PACKET_SIZE constant from ndn-cxx (:issue:`2099`) |
| 115 | |
| 116 | + Use DEFAULT_INTEREST_LIFETIME from ndn-cxx (:issue:`2202`) |
| 117 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 118 | + Use ``FaceUri`` from ndn-cxx (:issue:`2143`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 119 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 120 | + Use ``DummyClientFace`` from ndn-cxx (:issue:`2186`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 121 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 122 | + Use ``ndn::dns`` from ndn-cxx (:issue:`2207`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 123 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 124 | + Move ``Network`` class implementation from ``tools/`` to ``core/`` |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 125 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 126 | + Ignore non-Ethernet ``AF_LINK`` addresses when enumerating NICs on OS X and other BSD systems |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 127 | |
| 128 | + Fix bug on not properly setting FreshnessPeriod inside SegmentPublisher (:issue:`2438`) |
| 129 | |
| 130 | - **Faces** |
| 131 | |
| 132 | + Fix spurious assertion failure in StreamFace (:issue:`1856`) |
| 133 | |
| 134 | + Update websocketpp submodule (:issue:`1903`) |
| 135 | |
| 136 | + Replace FaceFlags with individual fields (:issue:`1992`) |
| 137 | |
| 138 | + Drop WebSocket message if the size is larger than maximum NDN packet size (:issue:`2081`) |
| 139 | |
| 140 | + Make EthernetFace more robust against errors (:issue:`1984`) |
| 141 | |
| 142 | + Prevent potential infinite loop in TcpFactory and UdpFactory (:issue:`2292`) |
| 143 | |
| 144 | + Prevent crashes when attempting to create a UdpFace over a half-working connection |
| 145 | (:issue:`2311`) |
| 146 | |
| 147 | + Support MTU larger than 1500 in EthernetFace (for jumbo frames) (:issue:`2305`) |
| 148 | |
| 149 | + Re-enable EthernetFace on OS X platform with boost >=1.57.0 (:issue:`1922`) |
| 150 | |
| 151 | + Fix ``ioctl()`` calls on platforms where libpcap uses ``/dev/bpf*`` (:issue:`2327`) |
| 152 | |
| 153 | + Fix overhead estimation in NDNLP slicer (:issue:`2317`) |
| 154 | |
| 155 | + Replace usage of deprecated EventEmitter with Signal in Face abstractions (:issue:`2300`) |
| 156 | |
| 157 | + Fix NDNLP PartialMessage cleanup scheduling (:issue:`2414`) |
| 158 | |
| 159 | + Remove unnecessary use of DNS resolver in (Udp|Tcp|WebSocket)Factory (:issue:`2422`) |
| 160 | |
| 161 | - **Forwarding** |
| 162 | |
| 163 | + Updates related to NccStrategy |
| 164 | |
| 165 | * Fix to prevent remembering of suboptimal upstreams (:issue:`1961`) |
| 166 | |
| 167 | * Optimizing FwNccStrategy/FavorRespondingUpstream test case (:issue:`2037`) |
| 168 | |
| 169 | * Proper detection for new PIT entry (:issue:`1971`) |
| 170 | |
| 171 | * Use UnitTestTimeFixture in NCC test case (:issue:`2163`) |
| 172 | |
| 173 | * Fix loop back to sole downstream (:issue:`1998`) |
| 174 | |
| 175 | + Updates related to BestRoute strategy |
| 176 | |
| 177 | + Redesign best-route v2 strategy test case (:issue:`2126`) |
| 178 | |
| 179 | + Fix clang compilation error in best-route v2 test case (:issue:`2179`) |
| 180 | |
| 181 | + Use UnitTestClock in BestRouteStrategy2 test (:issue:`2160`) |
| 182 | |
| 183 | + Allow strategies limited access to FaceTable (:issue:`2272`) |
| 184 | |
| 185 | - **Tables** |
| 186 | |
| 187 | + Ensure that eviction of unsolicited Data is done in FIFO order (:issue:`2043`) |
| 188 | |
| 189 | + Simplify table implementations with C++11 features (:issue:`2100`) |
| 190 | |
| 191 | + Fix issue with Fib::removeNextHopFromAllEntries invalidating NameTree iterator |
| 192 | (:issue:`2177`) |
| 193 | |
| 194 | + Replace deprecated EventEmitter with Signal in FaceTable (:issue:`2272`) |
| 195 | |
| 196 | + Refactored implementation of ContentStore based on std::set (:issue:`2254`) |
| 197 | |
| 198 | - **Management** |
| 199 | |
| 200 | + Allow omitted FaceId in faces/create command (:issue:`2031`) |
| 201 | |
| 202 | + Avoid deprecated ``ndn::nfd::Controller(Face&)`` constructor (:issue:`2039`) |
| 203 | |
| 204 | + Enable check of command length before accessing verb (:issue:`2151`) |
| 205 | |
| 206 | + Rename FaceEntry to Route (:issue:`2159`) |
| 207 | |
| 208 | + Insert RIB command prefixes into RIB (:issue:`2312`) |
| 209 | |
| 210 | - **Tools** |
| 211 | |
| 212 | + Display face attribute fields instead of FaceFlags in ``nfd-status`` and |
| 213 | ``nfd-status-http-server`` output (:issue:`1991`) |
| 214 | |
| 215 | + Fix ``nfd-status-http-server`` hanging when nfd-status output is >64k (:issue:`2121`) |
| 216 | |
| 217 | + Ensure that ``ndn-autoconfig`` canonizes FaceUri before sending commands to NFD |
| 218 | (:issue:`2387`) |
| 219 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 220 | + Refactored ``ndn-autoconfig`` implementation (:issue:`2421`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 221 | |
Davide Pesavento | 9f6a7d9 | 2020-10-06 15:21:48 -0400 | [diff] [blame] | 222 | + ``ndn-autoconfig`` will now register also ``/localhop/nfd`` prefix towards the hub |
| 223 | (:issue:`2416`) |
Alexander Afanasyev | 687dba8 | 2015-09-27 15:32:58 -0700 | [diff] [blame] | 224 | |
| 225 | - **Tests** |
| 226 | |
| 227 | + Use UnitTestClock in Forwarder persistent loop test case (:issue:`2162`) |
| 228 | |
| 229 | + Use LimitedIo in FwForwarder/SimpleExchange test case (:issue:`2161`) |
| 230 | |
| 231 | - **Build** |
| 232 | |
| 233 | + Fix build error with python3 (:issue:`1302`) |
| 234 | |
| 235 | + Embed CI build and test running script |
| 236 | |
| 237 | + Properly disable assertions in release builds (:issue:`2139`) |
| 238 | |
| 239 | + Embed setting of ``PKG_CONFIG_PATH`` variable to commonly used values (:issue:`2178`) |
| 240 | |
| 241 | + Add conditional compilation for NetworkInterface and PrivilegeHelper |
| 242 | |
| 243 | + Support tools with multiple translation units (:issue:`2344`) |
| 244 | |
| 245 | Removals |
| 246 | ^^^^^^^^ |
| 247 | |
| 248 | - Remove ``listen`` option from unix channel configuration (:issue:`2188`) |
| 249 | |
| 250 | - Remove usage of deprecated ``MetaInfo::TYPE_*`` constants (:issue:`2128`) |
| 251 | |
| 252 | - Eliminate MapValueIterator in favor of ``boost::adaptors::map_values`` |