-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathCHANGES
356 lines (265 loc) · 12.9 KB
/
CHANGES
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
350
351
352
353
354
355
356
Legend:
[+] New/improved feature
[B] Bug fixed
[K] Known issue
[O] Other
[A] API semantics
Change log
==========
v0.13.3
[+] openflow extension EXT-244
[+] openflow extension EXT-320
v0.13.2
v0.13.1
[+] added experimental matches from OFDPA-2:
VRF, OVID, ALLOW_VLAN_TRANSLATION, ACTSET_OUTPUT
[B] fixed invalid length fields for experimental OXM matches
[B] ensure all padding fields are set to value 0
v0.13.0
[+] thread pool
v0.12.2
[B] cofport_stats default port_no fixed
[O] improved testing on travis
v0.12.1
[A] queue_type be public enum
[B] fix ctimespec operator
v0.12.0
[+] crofsock: revised tx-queueing strategy (default txqueue size limited
to 128 messages), API changes to crofctl and crofdpt: all transmission
methods return the queueing result when sending an openflow message:
MSG_QUEUED, MSG_QUEUED_CONGESTION, MSG_QUEUEING_FAILED_*
[B] crofchantest: thread sanitizer friendly
[B] build-system: update OpenSSL dependency
[A] typos in functions fixed
v0.11.2
[B] cofmsg: fix copy of cofmsg_features_reply
[+] crofconn: handle_rx_messages optimization
v0.11.1
[+] coxmatch: added outputter for ppp(oe) experimental oxmatches
[+] crofconn: hello timeout values decreased
[B] crofconn: call handle_closed in case echo_request_expired
[+] use of __FUNCTION__ instead of __PRETTY_FUNCTION__ is sufficient
[O] Documentation updated wrt. dependencies
[B] crofbase: prevent shadowing of cthread callbacks
v0.11.0
[B] made ofp_version atomic
[B] multiple thread related issues found with tsan
[B] crofsock: txqueue order of barrier requests
[+] crofbase: allow set_ctl without creation of a new instance
[B] ctimespec: invalid calculation and data race fixed
[+] travis: print log of failed tests
[+] log exceptions caught in thread
[+] cdptid and cdpid are now basic types
[+] cthread: timer cleanup
[B] tests are now included in dist release
[+] rofl journal replaced with glog
[+] reset txbuffer before sending to comply with ovs and ofagent
[+] clang format added
[+] cthread: cleanup locking and api
[B] heap-use-after-free in crofconn
[B] crofbase: return if accept fails with EAGAIN
[+] cthread: set name of thread
[B] crofbase: heap-use-after-free fixed
[B] crofsock: heap-use-after-free fixed
[B] cthread: use pthread_join so finalize a thread
[B] debug log of OF version number fixed
v0.10.9
[+] fixed issues with compilation under GCC6
[+] Extended behaviour of method rofl::crofbase::set_dpt()
v0.10.8
[B] crofdpt: do not automatically assign xid to experimenter
messages
v0.10.7
[B] crofsock: fixed bug in congestion management
[+] cthread: allow level-triggered file descriptors
v0.10.6
[B] crofsock: prevent infinite loop
In case txqueues are not empty tx is rescheduled. The
flag to do so was not cleared and this would cause an
infinite loop. Reset the flag to prevent this.
[B] crofsock: crofsock: set tx_fragment_pending in tx saturation
A packet in the txbuffer would not be sent in case tx
was saturated tx_fragment_pending is set to resend the
packet, that was already cleared from the txqueues.
[B] crofsock: txqueue_size_tx_threshold checking fixed
If txqueue_pending_pkts == 1, the calculation of
txqueue_size_tx_threshold might lead to a never cleared
FLAG_TX_BLOCK_QUEUEING flag.
[B] cthread: don't throw in destructor
[B] crofchantest: fix increments done in threads
num_of_ctl_established and num_of_accepts are incremented
from diffrent threads, hence the test randomly fails or
succeeds.
[B] crofsocktest: fix timeout
timeout was already -1 in CPPUNIT_ASSERT
[K] TLS support broken
crofsocktest: disabling TLS test
[B] cthread: fix edge-triggered behaviour of epoll
pipe still uses level-triggered scheme
[B] crofsock: don't let handle_write_event run at state STATE_CLOSED
[B] crofsock: do not wakeup tx in case its blocked
[B] crofconn: fixed potential race condition during connection
establishment (HELLO negotiation)
[B] crofsock: add rxthread wakeup handler
call recv_message() after connect/EINPROGRESS continuation
in state STATE_TCP_CONNECTING
[B] crofsock: fixed bug in listening mode
v0.10.5
[B] version is broken, do not use
v0.10.4
[B] crofchan: fixed a bug introduced in v0.10.3 while fixing
the other bug: actively established connections must not be
removed upon handle_closed()
[B] cthread: check timer for expiration again before calling
handle_timeout()
[B] crofsock: allow transmission of Echo-Request/Reply messages
even when flow-control is blocking transmission of other
messages received from the application layer
v0.10.3
[O] added cclockid class to prevent invalid use of class ctimespec
[+] crofsock: use SO_LINGER option for coordinated shutdown
[+] crofsock: make backlog for listening mode configurable, defaults to
64 established TCP connections
[B] crofconn: fixed potential race condition causing a Hello expiration
[A] crofchan: send CLOSE notification to application when replacing
an existing connection object (restart)
[B] crofchan: fixed bug in handle_closed(): conn was not removed from
crofchan::conns map leading to a double free
v0.10.2
[+] more verbose exception handling
[+] asserts to thread handlers
[+] cthread: ignore signals in event loop
[B] coxmatches::copy_matches(): copy experimental matches properly
v0.10.1
[B] fixed a race condition in crofsock::send_from_queue()
v0.10.0
[+] revised workflow
[+] enhanced flow control
[+] revised exceptions structure
[+] new journaling subsystem replacing logging facility
v0.7.0
[+] New internal threading model, running rofl's main ioloop by
application not necessary any more
[O] Revised API of classes cofmsg_group_mod and cofgroupmod
v0.6.2
[O] merged logging related pull request #1
[B] fixed stalling situation in crofsock under higher load
[B] making class indent thread aware
[B] fixed buffer bloat like situation in crofqueue under high loads
[O] fixed hex output in some coxmatch classes (Fixed issue #14)
[O] fixed hex output for classes cofgroupmod and cofmsg_group_mod
for group-id. Fixes issue #13.
v0.6.1
[B] Distributing missing ctspaddress.h
[B] Fix versioning.m4 for subpackage and out-of-repository builds
v0.6.0
[K] Prevent compilation with buggy GCC versions (-O3 opt.)
[+] Workaround for automake 1.14 subdir-objects bug(13928).
[+] Fixed some LLVM related warnings and errors (clang/clang++)
[+][hal] Added NF port extensions
[+][pipeline] Added missing support for OFPP_TABLE
[+][pipeline] Added NF port type extensions
[+][pipeline] Added L2 (ETH_DST, VLAN) l2hash matching algorithm
[B][pipeline] Fixed issue #40 (bug) => set cookie field in Packet-In messages based on flow entry
[+][common] All crofsock instances run in dedicated own thread
[+][common] Revised thread support in ciosrv
[+][common] Revised classes crofconn and crofsock => new scheduling for OpenFlow messages
[+][common] Revised classes crofctl, crofdpt and crofchan => API updated
[B][common] Doxygen documentation updated
[+][common] New thread API added to rofl::cioloop
v0.5.3
[B][pipeline] Issue #40 (bug) => invalid cookie field in Packet-In messages for OpenFlow 1.3
(won't fix), fix available in 0.6.0
[B][hal] Updated misleading documentation concerning flow_mod_add/modify calls
v0.5.2
[B][common] Fixed issue #39 (bug) => set flag keep_on_runnin gin method cioloop:run() to false, when
terminating the loop
[B][common] Fixed issue #38 (bug) => handling so far uncaught exception in etherswitch::operator<<()
[B][common] Fixed issue #37 (bug) => cofactions::drop_action()
[+][common] Fixed issue #36 (enhancement) => making cofactions::count_action_type() const method
[B][common] Fixed issue #33 (bug) => added fragmentation support for overlong OFP messages to OpenFlow 1.2
[B][pipeline] Fixed default table action for OF1.3 according to spec (backported)
v0.5.1
[B][pipeline] Fixed improper byte counter setting for group statistics
[B][pipeline] Fixed bug in the destruction of of1x_stats_group_desc_msg_t
v0.5.0
[+][common] Improved OF1.3 support and other fixes
[+][common] Set more useful defaults for cofmsg (e.g. OFP_NO_BUFFER for buffer-id)
[+][pipeline] Improved tracing and logging
[+][pipeline] Improved OF1.3 support
[+][pipeline] Changed default behaviour for table matches/actions bitmaps; all capabilities enabled by default.
[+][pipeline] Added placeholders for WLAN/CAPWAP matches and actions
[+][pipeline] Added PBB_ISID support
[B][pipeline] Fixed group ID 0 is valid
[+][examples] Improved ethswctld, now supporting OF1.0, OF1.2 and OF1.3 simultaneously
v0.4.6
[B][pipeline] Fixed bug during OUTPUT action for unknown ports, that could lead to a leakage of PKTs in exceptional situations.
v0.4.5
[B][pipeline] Fixed critical bug in __of1x_destroy_all_entries_from_timer_group() leading to a memory corruption
v0.4.4
[B][common] cmacaddr: use right macros in sscanf #29
[B][pipeline] Fixed critical bug in __of1x_get_time_ms() for 32bit compilers leading to dead-lock in timers.
v0.4.3
[B][common] Fixed bug for match ARP_THA used invalid constants for OXM type
[B][common] cofmatch.h: added method get_ipv6_flabel_value() and get_ipv6_flabel_mask(), according to spec
[B][common] Minor changes to coxmatch.h
[B][common] cofportstatsarray: corrected minor issue in output operator
[B][common] cofmsg_flow_removed::unpack(): invalid length for unpacking matches
[B][common] caddress.h: added missing dump of port number #11
[B][common] Fixed preconditions for nw_tos and nw_proto in OF1.0 #2(reopened)
[B][pipeline] Fixed bug in __of1x_process_instructions(), WRITE_METADATA corrected
[B][pipeline] Fixed metaports for multi-process deployments
[B][pipeline] Fixed bug in __of1x_dump_matches() for IPV6_FLABEL
v0.4.2
[K] Automake 1.4 compilation. Please refer to the README.
[B][common] Fixed bug cofactions in method append_action()
[B][pipeline] Fixed compilation issues for 32 bit systems
v0.4.1
[K] Automake 1.4 compilation. Please refer to the README.
[B][common] OpenFlow 1.0.1 clarified handling of wildcards #2
[B][common] Fixed bug in port stats for OFP1.2; corrected length check
[+][pipeline] Async APIs not shown in doxygen documentation #1
v0.4.0
v0.4RC2
[K] Automake 1.4 compilation. Please refer to the README.
[+][hal] Improved doxygen documentation
[+][pipeline] Improved doxygen documentation
[+][pipeline] Unified the criteria used to align matches and actions in the pipeline. Changed constructors to use Host Byte Order.
v0.4RC1
[K] Automake 1.4 compilation. Please refer to the README.
[+] Change in the build system. Documentation is compiled via 'make doc'.
[+][common] Added a new frame class for L2TPv3 (RFC3931): fl2tpv3frame to rofl/common/protocols
[+][common] Added a new logging concept in rofl/common/logging.h: 8 output streams exist
for levels emerg, alert, crit, error, warn, info, notice, debug whose
destinations can be freely configured
[B][common] Fixed a bug in handling of OXM TLVs of type VLAN_VID
[+][common] Added namespaces for OFP versions 1.0, 1.2, 1.3
[+][common] Revised workflow and split of crofdpt_impl and crofctl_impl
[+][common] New logging subsystem
[B][common] Fixed a bug in reverse mapping of pipeline matches to OXM-TLVs
[+][common] Reimplementation of main io loop in ciosrv
- semantics of timer support haven changed
- each timer is referred to by a uint32_t timer_id assigned by the cioloop IO subsystem
- canceling or resetting timers must be done using this timer_id, the opaque value cannot
be used anymore
[+][common] Added experimental OF13 support to various statistics classes including support for duration fields
[+][common] Added experimental OpenSSL support
[+][common] Refactored crofbase interface.
[+][hal] Renamed old Abstract Forwarding API (afa) to Hardware Abstraction Layer (hal). Renamed Forwarding module(fwd_module) to Driver (driver)
[+][pipeline] Changed pipeline to work in Network Byte Order (NBO).
[+][pipeline] Split Packet Processing API calls from other headers, and distributed via "_pp.h" headers to enable inlining.
[+][pipeline] Refactored pipeline platform interfaces.
[+][pipeline] Added monitoring support.
[+][pipeline] Added flow_mod fast validation against flow table and group table capabilities
[+][pipeline] Added support for send_len on OUTPUT actions to CONTROLLER meta-port
[B][pipeline] Fixed VLAN (present/not present) behaviour (all versions)
[B][pipeline] Fixed several bugs for OF1.0 behaviour
v0.3.4
[+][common] Added LLC basic frame support in fetherframe.h/cc
[B][common] fixed bug for OF10. Added cofaclist instance (named actions) to avoid use of cofinlist for OF1.0
[B][pipeline] missing _DEPENDENCIES of matching algorithms library added
v0.3.3
[B][pipeline] Fixed race condition on accessing num_of_outputs of a matched entry
[B][pipeline] Fixed critical bugs related to of1x_modify_flow_entry_loop(): i) improper behaviour according to spec ii) leak when no rules were modified iii) corruption of state when more than one flow was modified
v0.3.2.1
[+] Adding README and CHANGES