blob: acc6c157b17c02ef4593e28c76266228fcec1d49 [file] [log] [blame]
Alexander Afanasyev687dba82015-09-27 15:32:58 -07001NFD version 0.3.0
2-----------------
3
4Release date: February 2, 2015
5
6Changes since version 0.2.0:
7
8New features:
9^^^^^^^^^^^^^
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
92 + New scheduler::ScopedEventId class to automatically handle scheduled event lifetime
93 (:issue:`2295`)
94
95Updates and bug fixes:
96^^^^^^^^^^^^^^^^^^^^^^
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
110 + Use Signal from ndn-cxx (:issue:`2272`, :issue:`2300`)
111
112 + use ethernet::Address from ndn-cxx (:issue:`2142`)
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
118 + Use FaceUri from ndn-cxx (:issue:`2143`)
119
120 + Use DummyClientFace from ndn-cxx (:issue:`2186`)
121
122 + Use ndn::dns from ndn-cxx (:issue:`2207`)
123
124 + Move Network class implementation from ``tools/`` to ``core/``
125
126 + Ignore non-Ethernet ``AF_LINK`` addresses when enumerating NICs on OSX and other BSD systems
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
220 + Refactored ndn-autoconfig implementation (:issue:`2421`)
221
222 + ndn-autoconfig will now register also ``/localhop/nfd`` prefix towards the hub (:issue:`2416`)
223
224- **Tests**
225
226 + Use UnitTestClock in Forwarder persistent loop test case (:issue:`2162`)
227
228 + Use LimitedIo in FwForwarder/SimpleExchange test case (:issue:`2161`)
229
230- **Build**
231
232 + Fix build error with python3 (:issue:`1302`)
233
234 + Embed CI build and test running script
235
236 + Properly disable assertions in release builds (:issue:`2139`)
237
238 + Embed setting of ``PKG_CONFIG_PATH`` variable to commonly used values (:issue:`2178`)
239
240 + Add conditional compilation for NetworkInterface and PrivilegeHelper
241
242 + Support tools with multiple translation units (:issue:`2344`)
243
244Removals
245^^^^^^^^
246
247- Remove ``listen`` option from unix channel configuration (:issue:`2188`)
248
249- Remove usage of deprecated ``MetaInfo::TYPE_*`` constants (:issue:`2128`)
250
251- Eliminate MapValueIterator in favor of ``boost::adaptors::map_values``