-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRELEASE_NOTES
More file actions
350 lines (243 loc) · 14.2 KB
/
RELEASE_NOTES
File metadata and controls
350 lines (243 loc) · 14.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
++++++++++++++++++++++++
OFSwitch13 release notes
++++++++++++++++++++++++
This file contains OFSwitch13 release notes (most recent releases first).
Release 4.0.0 (Apr 02, 2019)
============================
- BE AWARE THAT this release brings incompatible API changes in respect to
prior OFSwitch13 versions.
- Refactoring the OpenFlow queue:
* The OFSwitch13Queue base class implements the queue interface, extending
the ns3::Queue<Packet> class to allow compatibility with the CsmaNetDevice
used by OFSwitch13Port. Internally, it holds a collection of N (possibly
different) queues, identified by IDs ranging from 0 to N-1. The Enqueue
method uses the ns3::QueueTag to identify which internal queue will hold
the packet.
* Specialized subclasses can perform different output scheduling algorithms
by implementing the Peek, Dequeue, and Remove methods. The last two methods
must call the NotifyDequeue and NotifyRemoved methods respectively, which
are used to update statistics and keep consistency with the base class.
* The OFSwitch13PriorityQueue implements the specialized priority queuing
discipline for a collection of N priority queues, identified by IDs ranging
from 0 to N-1 with decreasing priority (queue ID 0 has the highest
priority). The output scheduling algorithm ensures that higher-priority
queues are "always" served first. The OFSwitch13PriorityQueue::QueueFactory
and OFSwitch13PriorityQueue::NumQueues attributes can be used to configure
the type and the number of internal priority queues, respectively.
* The OpenFlow port queue can be configured by the
OFSwitch13Port::QueueFactory attribute at construction time.
- Overriding the OFSwitch13Helper::InstallSwitch method. When the first
parameter is a node container, the method returns an OpenFlow device
container. When the first parameter is a node pointer, the method returns the
OpenFlow device pointer. For the latter, there's the optional second
parameter of a device container that will be configured as switch ports.
- The OFSwitch13Device::FlowTableSize, GroupTableSize, and MeterTableSize
attributes can now be adjusted at any time.
- New OFSwitch13Port::GetPortDevice, GetPortQueue and GetSwitchDevice methods.
- New OFSwitch13Device::GetDpId method as an alias for the GetDatapathId
method.
- New OFSwitch13Device::GetDatapathStruct and OFSwitch13Port::GetPortStruct
methods returning a pointer to the ofsoftswitch13 library structures.
- Renaming OFSwitch13Device::GetOFSwitch13Port method to GetSwitchPort.
- Renaming OFSwitch13Device attributes and trace sources to better reflect what
they really represent: PipelineCapacity attribute was renamed to CpuCapacity,
PipelineLoad traced value was renamed to CpuLoad, and LoadDrop trace source
was renamed to OverloadDrop. The methods GetPipelineLoad and
GetPipelineCapacity were also renamed to GetCpuLoad and GetCpuCapacity. These
changes also reflects on the OFSwitch13StatsCalculator: GetEwmaPipelineLoad
and GetAvgPipelineUsage were renamed to GetEwmaCpuLoad and GetAvgCpuUsage.
- Updating OFSwitch13Device::Get* methods for improved datapath stats. The
GetFlowEntries, GetGroupEntries, and GetMeterEntries methods were replaced by
GetFlowTableEntries, GetGroupTableEntries, and GetMeterTableEntries. The
following new methods were included: GetDatapathTimeout, GetFlowTableUsage,
GetGroupTableUsage, GetMeterTableUsage, GetNControllers, GetBufferEntries,
GetBufferSize. The BufferUsage traced value was removed, but the method with
the same can be used to get this value on demand.
- Improving OFSwitch13StatsCalculator with more statistics. It can now dump
individual flow table stats. This is an optional feature (disabled by
default), that can be enabled by the FlowTableDetails attribute.
- Renaming OFSwitch13StatsCalculator column names in first row, removing any
special character from them.
- Increasing the maximum number of OpenFlow switch ports to 4096
(see DP_MAX_PORTS at lib/ofsoftswitch13/udatapath/dp_ports.h)
- Increasing the maximum number of output queues on ports to 32
(see NETDEV_MAX_QUEUES at lib/ofsoftswitch13/lib/netdev.h)
- Removing the NetBee library dependence when compiling the ofsoftswitch13
library. The packet inspection is now performed by the packet_parse method
at lib/ofsoftswitch13/udatapath/packet_handle_std.c.
- Improving ofsoftswitch13 library performance and fixing memory leak errors.
- Merging new commits from the CPqD ofsoftswitch13 library.
- This version is compatible with ofsoftswitch13 library release v4.0.x and
ns-3 versions 3.28 or later (including patches). There is no backward
compatibility with older ns-3 versions.
Release 3.3.0 (Sep 29, 2018)
============================
- Fix incorrect bitwise comparison when checking port configuration.
- Fix incorrect ns-3 version comparison that was preventing module
configuration in ns-3.28.1
- Introducing a new OFSwitch13Device PipelineTables attribute, allowing a
custom number of pipeline flow tables in the switch.
- The OFSwitch13Device PipelineTables, FlowTableSize, GroupTableSize, and
MeterTableSize attributes must now be adjusted at construction time. You can
use the OFSwitch13Helper::SetDeviceAttribute to accomplish this task.
- Renaming OFSwitch13Device::GetFlowEntries (void) to GetSumFlowEntries (void)
and the OFSwitch13StatsCalculator::GetEwmaFlowEntries (void) to
GetEwmaSumFlowEntries (void) to better describe that these methods return the
sum of entries in all pipeline tables.
- Merging new commits from the CPqD ofsoftswitch13 library.
- Preparing patches for ns-3.29.
- This version is compatible with ofsoftswitch13 library release v3.3.x and
ns-3 versions 3.28 and 3.29 (including patches). There is no backward
compatibility with older ns-3 versions.
Release 3.2.2 (Jul 05, 2018)
============================
- Fixing errors when compiling the project with gcc 7.3.0 in Ubuntu 18.04.
- Moving the project from the mercurial repository in the BitBucket to a new
git repository in the GitHub, and updating the documentation to reflect these
changes.
- Configuring the ofsoftswitch13 project as a submodule within the OFSwitch13
project, which will automatically handle source code compatibility.
- Updating the waf configuration script to automatically detect the library
source code at lib/ofsoftswitch13 folder.
- This version is compatible with ofsoftswitch13 library release v3.2.x and
ns-3 version 3.28 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 3.2.1 (May 22, 2018)
============================
- Updating OFSwitch13Queue and OFSwitch13InternalHelper to avoid using
deprecated ns-3 queue API when setting queue size and mode.
- This version is compatible with ofsoftswitch13 library release v3.2.x and
ns-3 version 3.28 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 3.2.0 (May 22, 2018)
============================
- Updating OFSwitch13Queue to make it work with ns-3.27 release. Special thanks
to Stefano Avallone for improving ns-3 queue environment and providing the
patch to update OFSwitch13.
- Fixing the NetBee library repository link on module documentation.
- This version is compatible with ofsoftswitch13 library release v3.2.x and
ns-3 version 3.27 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 3.1.1 (May 12, 2018)
============================
- Including a new counter on the OFSwitch13StatsCalculator to measure the
pipeline load regarding the number of packets.
- New OFSwitch13Queue::QueueFactory attribute for the object factory used to
create internal OpenFlow queues on output ports.
- Fixing small bugs when handling packet tags and refilling meter tokens.
- This version is compatible with ofsoftswitch13 library release v3.1.x and
ns-3 version 3.26 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 3.1.0 (May 29, 2017)
============================
- Improving the OFSwitch13Device with the PipelineCapacity attribute that can
be used to limit the traffic throughput within the pipeline to a specific
data rate.
- Improving the OFSwitch13Device with the FlowTableSize, GroupTableSize, and
MeterTableSize attributes, that can be used to define the maximum number of
entries in pipeline tables.
- Improving the OFSwitch13Queue with the NumQueues attribute that can be used
to define the number of output queues available for use.
- Updating some ofsoftswitch13 library defines to allow more entries on each
datapath table (flow, meter, and group).
- Including the meter ID parameter on OFSwitch13Device::MeterDrop trace source.
- Including new trace sources and private member accessors on OFSwitch13Device
that can be used for monitoring datapath performance.
- Renaming some OFSwitch13Device private member accessors.
- Refactoring the OFSwitch13StatsCalculator to dump statistics in a better way.
- Improving the logical port example with a stateless tunnel application.
- Adjust the size of queue interface to avoid dropping packets when we still
have space on internal queues.
- Improving the way switches and controllers deals with TCP sockets from
OpenFlow channels using the new OFSwitch13SocketHandler class.
- Updating the default TCAM delay attribute on switch device to better reflect
real hardware operation.
- This version is compatible with ofsoftswitch13 library release v3.1.x and
ns-3 version 3.26 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 3.0.0 (Feb 10, 2017)
============================
- Starting using the Semantic Versioning (http://semver.org) on this project.
So, BE AWARE THAT this release brings incompatible API changes in respect to
prior OFSwitch13 versions.
- The OFSwitch13Queue was updated to match the changes introduced in the Queue
API by ns-3.26. No more backward compatibility is available for ns-3.25 or
prior versions.
- Including support for multiple controllers on the same OpenFlow network
domain.
- Including support to build switch ports over VirtualNetDevices to work as
logical ports.
- Renaming examples files to ofswitch13-*.cc and including the new
ofswitch13-logical-port example.
- Removing the need of registering the switch at the controller before the
connection start.
- Removing the controller address attribute from the OpenFlow device. It now
must be indicated by the helper as a parameter to the
StartControllerConnection () device method.
- Creating the OFSwitch13StatsCalculator for switch performance monitoring.
- Implementing a simplified OpenFlow version-negotiation in OpenFlow device.
- Create the SocketReader class to read OpenFlow messages from TCP sockets
safely and independently.
- Creating the RemoteController and RemoteSwitch classes, which can be used to
independently store information of several remote connections, allowing the
implementation of multiple controller functionalities.
- Refactoring the OFSwitch13Controller class:
* Splitting the DpctlCommand into 'execute' and 'schedule' versions;
* Removing dependence from OFSwitch13Device class;
* Renaming ConnectionStarted () method to HandshakeSuccessful () to reflect
the method semantic;
* Implementing the handshake procedure;
* Implementing barrier reply, hello and features reply handlers;
* Using constant pointers to RemoteSwitch objects to avoid mistakes.
- Refactoring the OFSwitch13Helper class:
* Using the OFSwitch13Helper as a base class and implementing extended
helpers for configuring an OpenFlow network domain with internal controller
applications (OFSwitch13InternalHelper) or a real external controller
(OFSwitch13ExternalHelper);
* Supporting the configuration of OpenFlow networks domains with multiple
controllers;
* Removing the dependence of installing the controller before the switches;
* Introducing the CreateOpenFlowChannels () member function to effectively
connect switches to controllers after installing switches and controllers
into respective nodes (the use of this function is mandatory).
- This version is compatible with ofsoftswitch13 library release v3.0.x and
ns-3 version 3.26 (including patches). There is no backward compatibility
with older ns-3 versions.
Release 2.0.3 (Sep 12, 2016)
============================
- Bugfix: wrong variable type on priority output queue selection.
Release 2.0.2 (Apr 11, 2016)
============================
- Including the QosController example.
- The OpenFlow device is not a NetDevice child anymore. It avoids misleading
interpretation and configuration problems with further ns-3 versions. The
OFSwitch13NetDevice class was renamed to OFSwitch13Deviceto reflect this
change better.
- Replacing the CsmaNetDevice OpenFlow trace source, used by prior versions to
get packets from the CsmaNetDevice port, by a new CsmaNetDevice OpenFlow
receive callback. This new callback avoids problems with internal receive
semantics in the way that CsmaNetDevices configure as OpenFlow ports never
invoke the default receive callback.
- Creating the OFSwitch13DeviceContainer for handling CsmaNetDevices. Note the
change on InstallSwitch* methods on the OFSwitch13Helper.
- By default, 8 priority queues are created for each OFSwitch13Queue and are
available for use.
- Updating the documentation with a better module design description (including
new figures) and the QosController description.
- This version is compatible with ofsoftswitch13 library release v2.0.x and
ns-3 versions 3.22, 3.23 and 3.24.1, and 3.25 (including patches for
ns-3.25).
Release 2.0.1 (Feb 16, 2016)
============================
- Updating the documentation with more details on the differences between this
module and the existing ns-3 one.
- Including patches for already tested ns-3 versions (3.22, 3.23 and 3.24.1).
- Including this release notes file.
- This version is compatible with ofsoftswitch13 library release v2.0.x and
ns-3 versions 3.22, 3.23 and 3.24.1.
Release 2.0.0 (Feb 15, 2016)
============================
- First public release of the OFSwitch13 module, including source code and
documentation.
- This version is compatible with ofsoftswitch13 library release v2.0.x and
ns-3 versions 3.22, 3.23 and 3.24.1.