-----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.