-
Notifications
You must be signed in to change notification settings - Fork 19
/
ChangeLog
293 lines (131 loc) · 9.14 KB
/
ChangeLog
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
-----Etherate 1.18 2018-06
[MINOR] Fixed issue #51; Max jitter value isn't max jitter in results list
-----Etherate 1.17 2018-04
[MINOR] Fixed issue #50; Frame order detection is wrong
[FEATURE] Added enhancement #49; Update compile checks
[MAJOR] Fixed issue #48; Rx loop for speed test is missing pointer reference
[MAJOR] Fixed issue #47; Unsafe reference
[MAJOR] Fixed issue #46; "Message too long" when running test
[MINOR] Fixed issue #44; The average FPS and max FPS are always the same
[FEATURE] Added enhancement #43; Replace sendto() with send()
[MINOR] Fixed issue #42; -h option says "on the wire"
[MINOR] Fixed issue #39; -l option requires sudo
[MINOR] Fixed issue #36; Kernel version checks on CentOS
[MINOR] Fixed issue #9; fail to compile on AlpineLinux
[MINOR] Various calloc() calls were missing a return value check
[MINOR] Correct some typos in the code and more cody tidying
-----Etherate 1.16 2018-01
[FEATURE] Added enhancement #38; Remove -fstack-protector-all compile flag
[FEATURE] Added enhancement #37; Add packet pacing feature
[MINOR] Correct some typos in the code and more cody tidying
-----Etherate 1.15 2017-10
[FEATURE] Added enhancement #35; Add test stats output when stopping with CTRL+C
[MINOR] Fixed issue #34; MTU test frame count
[MINOR] Fixed issue #27; VLAN tag not included frame size and rate limit
[MINOR] Fixed issue #26; Rx host shows Rx rate lower that Tx host's Tx rate
[MINOR] Fixed issue #24; Doubling of stats on Rx host
[MINOR] Code tidy up with typos and styling
-----Etherate 1.14 2017-09
[MAJOR] Fixed issue 22; Test not starting
-----Etherate 0.13 Beta 2017-07
[FEATURE] Added enhancement #20; Test if interface is IFF_UP && IFF_RUNNING
[MAJOR] Fixed issue #19; Quality Tests are stil very buggy
[MINOR] Fixed issue #23; Regression bug with speed limit display on Rx host
[MINOR] Fixed issue #11; Uneeded +1 with result print on latency_test()
[MINOR] Updated documentation regarding usage and troubleshooting
[MINOR] Cody tidy up with perrors, more work to standardise lower case naming of variables, typos etc
-----Etherate 0.12 Beta 2017-05
[FEATURE] Added enhancement #16; PACKET_QDISC_BYPASS
[FEATURE] Added enhancement #13; Remove the htonll() and ntohll() functions
[FEATURE] Added enhancement #18; Inline the build_tlv() and build_sub_tlv() functions
[MINOR] Finally finished migrating from C++ to C
[MINOR] Fixed issue #17; Multiple ioctl() calls have no error checking
[MINOR] Fixed issue #15; cli_args() IF_NAME copy error
[MINOR] Fixed issue #14; Make strncpy() zero value safe
[MINOR] Fixed issue #12; Function prototype is missing parameter setup_frame()
[MINOR] Fixed error with double close() on socket file descriptor
[MINOR] Fixed missing net/if.h include
[MINOR] Added error check for fclose() in cli_args()
[MINOR] Cody tidy up, started to standardise lower case naming of variables
-----Etherate 0.11 Beta 2017-03
[MAJOR] Fixed issue #5; -Q option not working, 100% frame loss
[MINOR] Fixed issue #8; LeakSanatisor found leak with "-h" and several "return"s
[MINOR] Fixed issue #7; File descriptors left open in list_interfaces()
[MINOR] Fixed issue #6; Interface selectiom not working by name and list_interfaces() shows the wrong MAC address
[MINOR] Fixed seg fault when missing arguments to -Q, "sudo ./etherate -I 11 -Q -r"
[MINOR] Fixed blocks at exit used for delay_test() not being free()'ed
[MINOR] Tidied exit codes to use EXIT_SUCCCESS/EXIT_FAILURE
-----Etherate 0.10 Beta 2016-09
[FEATURE] Added DEI option for single and double tagged VLANs.
[FEATURE] Added -C option to load a custom frame from file.
[MINOR] The default Ethertype has been changed from 0xABCD as several other applications use this, to 0x3333 which is still unassigned by IANA
[MINOR] The network socket was being declared inside the loop and closed outside, only the last socket was being closed.
[MINOR] Various strict coding issues corrected when compiling with -Wall -ftrapv such as signed/unsigned comparisons, operator behaviour --a vs a-- vs a-=1 etc. Still lots to do to pass "-pedantic".
[MINOR] Syntax passing bug in -L option fixed.
[MINOR] Migrated to uint*_t/int*_t to standardise sizes and standardised return values with ints.
[MINOR] More code cleaning, adding the defaults.cpp file to tidy main().
-----Etherate 0.9 Beta - 2016-04
[FEATURE] Added max and avg frames per second stats.
[MINOR] Added warning and padding for frames less than 46 bytes.
[MINOR] Fixed code, comment and documentation typos.
[MINOR] Migrated from select() to poll() to non-block recvfrom(), faster for unidirectional single flow.
-----Etherate 0.8 Beta - 2016-03
[FEATURE] Added CLI arg -F to set max frames per second limit.
[FEATURE] Set the default Ethertype for the Etherate payload frame to be 0xABCD for easy identification.
[FEATURE] Added -L option to build an MPLS label stack and -E to specify LSR src/dst MAC.
[FEATURE] Added -P option to add pseudowire control word to header stack.
[MAJOR] Fixed issue with delay calculation not waiting and loop exceeding by 1.
[MAJOR] Fixed issue with VLAN tag not being restored after build_headers().
[MINOR] Added MTU check to resolve MTU issues with QinQ.
[MINOR] Fixed uninitialised value for IF_NAME.
[MINOR] Fixed code, comment and documentation typos.
[MINOR] Wrote the initial INSTALL file.
-----Etherate 0.7 Beta - 2015-10-10
[FEATURE] First draft of the link quality test is implemented.
[MINOR] Added a pause on the RX host for the first test frame to come though (so the hosts are testing in sync).
[MINOR] I was a very naughty boy and used a goto, this has now been removed.
[MINOR] Fixed code, comment and documentation typos.
-----Etherate 0.6 Beta - 2015-09-13
[MAJOR] Rewrite to structs and functions to improve efficiency (major because this was 10G performance impacting).
[MAJOR] Moved to a TLV based header (major because this was 10G performance impacting).
[MAJOR] Added htonll() and ntohll() function (major because this was 10G performance impacting).
[MINOR] Fixed minor memory leaks.
[MINOR] Removed most of the nasty global variables.
[MINOR] Fixed code, comment and documentation typos.
[MINOR] General code tidy up to improve readability.
[MINOR] Fixed rounding and display errors when using -m and -M.
-----Etherarte 0.5 Beta - 2015-07-11
[MINOR] Fixed MTU sweeps that are bigger than interface max MTU size.
[MINOR] Add bigger delay averages to account for interrupt coalescing.
-----Etherarte 0.4 Alpha - 2014-11-04
[FEATURE] Code for single VLAN tagging an priority codes is working (double tag/QinQ needs further research).
[FEATURE] Both hosts display the number of non-test frames received during a test.
[FEATURE] Code for interface selection by index and by name is now working.
[FEATURE] Added rate limit in bits per second using -M option (previously just -m for bytes per second).
[FEATURE] Option to transmit without sync is coded, -g will skip strait to transmission.
[FEATURE] Added MTU sweep feature.
[MAJOR] Finalised delay calculation code (calculates mean delay based on 5 samples).
[MINOR] Fixed the interface selection by ID/index.
[MINOR] TX host can receive dying gasp from RX (RX could already receive dying gasp from TX).
[MINOR] Fixed hanging of RX host on recv().
[MINOR] Further clean up of code.
[MINOR] Further clean up of CLI output.
[MINOR] Non test frame receive count is fixed.
-----Etherate 0.3 Alpha - 2014-01-10
[FEATURE] Add code for testing with VLAN tagging, priority codes, QinQ tagging and QinQ priorities, -v 25 -p 3 -q 2025 -o 4.
[MAJOR] Sometimes locking to the wrong interface such as "eth0" even though it was disabled or disconnected and specifically selecting another interface like "wlan0" (for example).
[MAJOR] Promiscuous mode was not entering/exiting properly. Rather than XOR IFF_PROMISC on and off, copy interface flags to ifFlags then OR IFF_PROMISC, then restore the stored ifFlags value. Looks like a problem with ifreq.
[MINOR] Typos in the CLI output.
[MINOR] Further clean up of code.
[MINOR] Standardise changelog tags;
[FEATURE] == New working feature added to Etherate
[MAJOR] == Fixed a bug in Etherate code that affects the operations of the program or one of the test modes or test results
[MINOR] == Fixed a bug that doesn't stop Etherate from running properly like typos, formatting, documentation errata, code tidies
-----Etherate 0.2 Alpha - 2013-06-30
[MAJOR] Added promiscuous mode, frames addressed anything other than FF:FF:FF:FF:FF:FF and the NICs burnt in address wasn't being received but were being sent (e.g. TX wasn't receiving dst==00:04:00:00:00:01).
[MAJOR] Using a custom MAC like 00:00:5E:00:00:02 on the RX host was being overwritten, typo in code. Now both TX and RX can use any MAC.
[MAJOR] Using wrong IANA unassigned MAC, using MAC allocated to Lexmark. Changed to 00:00:5E:00:00:0[1-2].
[MINOR] Typos in the UI/CLI output.
[FEATURE] Added code to check CLI arguments that have two parts like "-i 2", the second option (the value) supplied was casuing Etherate to Seg Fault.
-----Etherate 0.1 Alpha - 2013-03
Code isn't even finished or tested yet. We can send and receive data and measure the speed with basic max speed, frame size and frame count limit options.