-
Notifications
You must be signed in to change notification settings - Fork 83
/
RELEASE-NOTES.txt
487 lines (438 loc) · 23.1 KB
/
RELEASE-NOTES.txt
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
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
===============================================
Release notes for ExaNIC software release 2.7.4
===============================================
This release adds the support for newer RHEL and RHEL-derived
distributions as well as Ubuntu 23.04. It also fixed some minor
compilation warnings and fixes as captured in change log.
Supported distributions
-----------------------
The following Linux distributions are officially supported and have been tested
with this release:
* RHEL 9.2 (kernel 5.14.0-284.11.1)
* RHEL 8.8 (kernel 4.18.0-477.10)
* Rocky Linux 9.2 (kernel 5.14.0-284.11.1)
* Rocky Linux 8.8 (kernel 4.18.0-477.10.1)
* Debian 12 (kernel 6.1)
* Ubuntu 23.04 (kernel 6.2)
While we strive for broad Linux compatibility in our software, Cisco TAC may not
be able to provide support for other distributions or custom kernels.
Supported firmware versions
---------------------------
There are no dependencies between specific versions of software and specific
versions of firmware. However, if a problem is encountered, please update to
the latest firmware version before contacting support. The following firmware
versions have been tested with this release:
* ExaNIC X25: 20211215 / 20220629 (25G) / FDK 2.10.1
* ExaNIC X100: 20220223 / 20210618 (40G) / FDK 2.10.1
* ExaNIC X40: 20211125 / 20190219 (40G) / FDK 2.10.1
* ExaNIC X10: 20210604 / 20180215 (bridging/mirroring) / FDK 2.10.1
* ExaNIC GM: 20201126
* ExaNIC HPT: 20210323
* ExaNIC V5P: 20180117 / FDK 2.10.1
* ExaNIC V9P: 20210204 / FDK 2.10.1
* ExaNIC V9P-3: 20210407 / FDK 2.10.1
Note on userspace/kernel compatibility
--------------------------------------
We highly recommend updating all components of ExaNIC software (i.e. drivers,
libraries and utilities) at the same time if possible. There is an exasock ABI
change in 2.7.x and thus the kernel exasock module must be upgraded for the new
exasock to function if upgrading from 2.6.x or earlier. This is not the case
for other components, e.g. new libexanic can be used with old kernel modules
and vice versa, however it is impractical for us to test the full matrix of
possibilities for every supported configuration.
Note on new K35-P/K35-Q/GM/HPT
------------------------------
SmartNIC K35-P/K35-Q (ExaNIC X10/X40) continue to be manufactured and supported
for customers not ready to migrate to the newer SmartNIC K3P-P/K3P-Q (ExaNIC
X25/X100). Unfortunately, due to some parts previously used on this family no
longer being available, new revisions of these cards will require 2.7.0+ to be
used for firmware update functionality. In addition, newer revisions of the
Nexus NIC GM/HPT will require 2.7.1+ for firmware update. These cards can be
identified by Cisco branding and serial numbers, or 'flash organization not
currently supported' error from exanic-fwupdate. Strictly it is only necessary
to upgrade exanic-fwupdate, however as noted above we recommend upgrading all
components together if possible.
Change log
----------
2.7.4 [2023-12-21]
* added the support for RHEL 8.8, 9.2, Rocky Linux 8.8, 9.2, Debian 12, Ubuntu 23.04
* fixed some compilation warnings
* added few security related compilation options
* fixed issue with exasock-stats not showing the stats for multicast
* added new example application to send preloaded tcp frames from any slot
2.7.3 [2022-10-13]
* replacing ndo_do_ioctl with ndo_siocdevprivate on latest kernels(>5.15.0) when dealing with SIOCDEVPRIVATE ioctl
* adding extra check for CAP_SYS_ADMIN before hot reload
2.7.2 [2022-08-15]
* driver: fixed minor build issues on Centos stream 9, Rocky Linux 9, RHEL8, Centos8, Rocky8
* exasock: fixed keepalive issue
* exasock: fixed slow release of TCP sockets in exasock module
* exasock: fixed exasock epoll hang issue after issuing many connections
* exasock: various improvements for exasock TCP server mode
* exasock: adding latency measurements points and latency module in exasock
* exasock: adding listening TCP sockets profiling capability and new application to provide
profiling information to the user
* exasock: improved TCP server connection acceptance latency, changed the way polling mechanism
works
* driver: fixed minor locking issue in exanic_netdev_ate_send_ctrl function exanic-netdev.c
* libexanic: adding logic to detect potential hw overruns
2.7.1 [2021-09-15]
* driver: fix arithmetic overflow error in clock frequency adjustment
* driver: fix bug causing hangs at module load/unload on Ubuntu systems
* exanic-fwupdate: fix .bit file flashing on X100
* exanic-fwupdate: support S29GL-S flash family for new GM/HPT hardware
2.7.0 [2021-08-05]
* Multiple fixes and improvements to 25G Ethernet support
* Support for mirroring on Nexus SmartNIC K3P-Q (X100) (with compatible
mirroring firmware)
* Support for Cisco-branded revisions of Nexus SmartNIC K35-S/K35-Q (X10/X40)
and GM/HPT, resolves 'flash organization not currently supported' error
* driver: fix compilation on RHEL 8.4
* driver: fix deadlock on module load/unload when using NetworkManager
* exasock: fix hangs in TCP server applications
* FDK exanic-xvcserver: fix excess bits sent to JTAG chain in some cases;
users of this utility should upgrade
2.6.1 [2021-04-30]
* Support for Nexus SmartNIC (ExaNIC) V9P-3 with faster FPGA
* driver: provide minimal functionality even if card initialization fails, to
enable firmware update to working firmware
* driver: fix kernel panic on driver unload when card is unsupported
* exasock: fix routing on Ubuntu 20.xx / Linux kernel 5.4.68+
* exasock: fix assertion failure during multicast group removal
* exanic-fwupdate: fix segmentation fault after an error occurs
* FDK spam example: add option to set DST MAC address
2.6.0 [2021-02-10]
* Initial support for 25G Ethernet (requires firmware with 25G support)
* Ability to read and display Cisco serial numbers on Cisco branded cards
* driver: fix issues with setting ports to 100M
* driver: strip FCS/CRC bytes on kernel ethX network interface by default, can
be overridden with ethtool -K ethX rx-fcs on (does not affect libexanic)
* driver: support for receiving bad frames on kernel ethX network interface
with ethtool -K ethX rx-all on (does not affect libexanic)
* driver: fix module information reading for 10Gtek QSFP-DD modules
* driver: fix failure to load on kernel 5.7+ with ethtool_check_ops error
* driver: fix compilation issues on kernel 5.9+
* exasock: fix segfault getting receive timestamp
* exasock: fix off-by-one bounds check error in epoll_ctl_add()
* exasock: epoll code needs to check if socket still exists before polling
* exanic-config: display serial number by default
* exanic-config: display customer application ID for FDK images
2.5.0 [2020-07-30]
* exasock: support for bonded ExaNIC devices in active-backup mode
* exasock: support for sendmmsg()
* exasock: support for listening to multiple multicast groups, and for receiving
both multicast and unicast, on the same UDP socket
* exanic-config: add options to disable padding and CRC insertion on TX, subject
to firmware support (coming soon to X25/X100, check firmware changelog)
* exanic-fwupdate: fix two race conditions, one causing a crash on hot reload
* driver: improve allocation of TX feedback slots, to avoid running out of TX
feedback slots before TX buffer memory
* driver: retry reading card serial number if first attempt fails
* driver: fix possible race condition during driver unload
* Compile fixes for RHEL 8.2 / kernel versions up to v5.8
* New improved perf-test utilities with fine-grained control over transmit and
receive modes
* Support for ExaNIC X100
2.4.1 [2020-01-06]
* driver: fix kernel panic with Linux kernel versions 4.16 and 4.17 as a
result of i2c_bit_add_bus changes
* driver: fix QSFP port logic by removing the step of setting power
override on port up and port down
* driver: add ATE enabled status check before passing frames to ATE callback
function to avoid interfering with DMA traffic from non-ATE devkit ports
* libexanic: fix bug introduced in 2.4.0 which causes exanic_acquire_handle to
fail with with unsupported ExaNICs
* exasock: make override-unsafe function wrappers safe to call during static
initialization
2.4.0 [2019-10-28]
* Support for ExaNIC V9P
* Drop support for legacy Z1 and Z10 NICs
* Remove raw i2c bit-banging from userspace software in favour of kernel API
(this will result in minor incompatibilities when running older versions of
the ExaNIC driver and newer versions of utilities)
* driver: ethtool GEEPROM and SEEPROM support for ExaNIC EEPROM access
* driver: fix compilation errors for some CentOS/RHEL 6 kernel versions
introduced in 2.3.1
* libexanic: remove exanic_get_sfp_info, exanic_get_qsfp_info,
exanic_get_sfp_diag_info and exanic_get_qsfp_diag_info
(transceiver data should now be accessed through ethtool API)
2.3.1 [2019-10-09]
* Basic support for extra ExaNIC FDK MMIO regions BAR 1 and BAR 4
* libexanic: make ATE register names more descriptive
* exasock: avoid accelerating DNS queries from libc to prevent userspace
and kernel file entry divergence
* exasock: avoid invoking libc for poll() called with bypass sockets and
negative file descriptors
* exasock: produce trace output to stderr instead of stdout
* exasock: increase the maximum time to wait for ATE DMA echos from 1ms to
5ms
* exasock: fix kernel siphash.h header availability check
* exasock: fix hanging bug in close for sockets that belong to epoll instances
but have not been connected
* exasock: fix deadlock between exasock_reclaim_sync and various operations
introduced in 2.3.0
* exasock: kernel module compilation fix for Linux kernel versions 5.2 and later
* driver: fix error handling when attempting to acquire the same ATE
connection multiple times from software
* driver: ethtool -p support (physical identification) for compatible firmware
* exanic-benchmarker-stac-t0: ATE connection ID and STAC-T0 spec compliance
fix
2.3.0 [2019-05-03]
* libexanic: avoid receiving partial frames after a software overflow
* libexanic: fix throughput regression in exanic_transmit_frame introduced
in 2.2.1 (observed at high rate)
* exasock: support for Exablaze Accelerated TCP Engine (ATE) which allows
sending TCP payloads from FPGA logic
* exasock: fix race condition between poll and close causing possible crash
* exasock: improve handling of ACKs for segments that have been sent on the
wire but not yet committed to the TX buffer
* exasock: improve legibility of trace output for multithreaded programs
* exasock: fix TX buffer leak when closing/opening connections
* exasock TCP extensions: return EPIPE rather than EAGAIN on connection close
* driver: compile fix for Linux 4.20+
* driver: ethtool -m support for QSFPs
* driver: fix missing unmap of FDK memory at unload
* exanic-clock-sync: log maximum clock offset at PPS pulse
2.2.2 [2018-12-21]
* exasock: various TCP passive open bug fixes, including syn-ack retransmit
* exasock: fix epoll issue where adding to epoll instances causes socket to
become dormant
* exasock: fix exasock_ip_cleanup() list traversal error leading to potential
crash
2.2.1 [2018-10-25]
* libexanic: add exanic_transmit_frame_ex() with support for EXA_FRAME_WARM
flag for keeping cache warm
* exasock: graceful TCP connection shut down after socket close()
* exasock: fix issue where epoll() would sometimes fail to wake up when TCP
data is processed in the kernel
* exasock: improve handling of SOL_SOCKET socket options
* exasock: add extension API functions for exasock version detection
* exasock: fix potential kernel oops due to double free of ARP table entries
* driver: log link up/down to kernel log
* driver: support for ethtool -m (SFP module information)
* driver: compile fix for Linux 4.18
* exanic-config: improve error message when no ExaNICs are found
* exanic-clock-sync: better error handling if system clock drift is too large
* exanic-fwupdate: set PCIe error mask to avoid a crash during hot reload on
some systems
* exanic-fwupdate: prevent hot reload if device is in use
2.2.0 [2018-06-22]
* exasock: support SO_KEEPALIVE
* exasock: add MSG_EXA_WARM flag for keeping cache warm
* exasock: add --no-auto flag to disable acceleration by default
(in this case, user can enable per socket with SO_EXA_NO_ACCEL=0)
* exasock: support recvmmsg
* exasock: support TCP_USER_TIMEOUT
* exasock: support TCP_KEEPCNT, TCP_KEEPIDLE, TCP_KEEPINTVL
* exasock: fix parsing of VLAN ID (ignore traffic class bits)
* exanic-config: support wildcards in device/port
* exanic-config: allow changing PPS output edge (rising/falling)
* exanic-config: support two-step mode on GM (requires new firmware)
* exanic-clock-sync: fix calculations for PPS offset ns
* exanic-clock-sync: set PPS termination for HPT and V5P
* exanic-fwupdate: improve hot reload handling, retry if required
* compile fixes for Linux 4.17 and RHEL 7.5
2.1.1 [2018-05-21]
* exasock: improve interoperability of TCP reset handling after FIN receipt
2.1.0 [2018-02-20]
* Support for ExaNIC V5P
* exasock: support for policy-based routing
* exasock: process outstanding TCP data in kernel if user space lags
(avoids poor TCP behaviour for applications that poll insufficiently)
* exasock: multiple improvements to retransmit behaviour
* exasock: add SO_EXA_MCAST_LISTEN socket option - alternative
to IP_ADD_MEMBERSHIP when joining group is not required or
listening to multiple interfaces
* exasock: intercept __poll (used in gethostbyname)
* driver: fix compile on Linux kernel 4.14+
* driver: fix jumbo frames on Linux kernel 4.10+
* driver: add txbuf_size_min parameter (allows increasing kernel
transmit buffer size for higher kernel throughput)
* exanic-fwupdate: internal redesign, now faster
* exanic-fwupdate: now supports .fw.gz and .bit as well as .fw
* exanic-config: fix 'sfp status' for some SFPs/QSFPs (I2C protocol issue)
* devkit: add exanic-xvcserver for JTAG access over PCIe
2.0.1 [2017-11-03]
* Support for firmware update without reboot (card must be running
firmware 20171019 or later)
* Support for mirroring/bridging on X10 (with corresponding firmware)
* libexanic: speed up exanic_expand_timestamp() on X10-GM/HPT
* exasock: fix segmentation fault with certain dynamic libraries
* exasock: fix TCP window calculation at connection open (SYN-ACK)
* exanic-clock-sync: support reading configuration from file
* exanic-clock-sync: algorithm improvements to improve stability
* exanic-clock-sync: calculate and display Allan deviation
* exanic-clock-sync: avoid possible integer overflow in Linux clock_adjtime
* exanic-clock-sync: allow selection of PPS edge (rising/falling)
* exanic-fwupdate: allow additional comment lines in .fw files
2.0.0 [2017-08-04]
* Support for ExaNIC X40 with 40G firmware
* libexanic: new timestamping functions for both ns and ps resolution;
exanic_timestamp_to_counter() is still supported but deprecated
* exasock: new exasock-stat utility (netstat for bypass sockets)
* exasock: support disabling acceleration per-socket, via a socket option
or exasock_disable_acceleration() helper function
* exasock: support socket timeouts (SO_RCVTIMEO and SO_SNDTIMEO)
* exasock: support FIONBIO ioctl to set non-blocking mode
* exasock: support POLLRDNORM and POLLWRNORM in poll()
* exasock: support TCP listening sockets in epoll()
* exasock: update TCP ACK numbers even if receive buffer is not polled by user
* exasock: fix SO_LINGER
* exasock: fix possible deadlock when sending TCP packets with send window full
* exasock: fix multicast packet receive filtering for multiple interfaces
* exasock: avoid double-receiving VLAN tagged packets
* exasock: avoid spinning in epoll() when no bypass sockets
* exasock: fix failure to unload module after unsuccessful TCP connection
* driver: support changing MTU to >1500 bytes for jumbo frames
* driver: fix race condition that could result in a crash if /dev/exanicX was
opened while the driver was still mid-initialization
* exanic-clock-sync: fix bug in parsing of arguments
* exanic-clock-sync: fix PPS race condition resulting in occasional bad values
* exanic-clock-sync: improve PPS calculations for better sync precision
* exanic-config: improve SFP compatibility in 'sfp status'
* exanic-config: fix QSFP Rx power calculation
* exanic-config: report configuration of PPS input/output
* exanic-config: check that local-loopback succeeds when requested
* exanic-config: suppress printing feature flags when 'off' to reduce clutter
* exanic-config: add -v (verbose) option, overrides the above and also prints
extra information (currently, Tx buffer sizes for each port)
1.8.1 [2017-01-04]
* Support for ExaNIC X10-HPT (X10 variant with sub-ns timestamp resolution)
* exasock: fix connect() for UNIX domain sockets
* exasock: respond to TCP keep-alive requests
* exasock: improve logic for handling out of order segments
* exasock: avoid incorrectly clearing pending ACK on exasock_tcp_build_header
* driver: fix for hardware timestamping on CentOS 6
* driver: avoid lock up if hardware stops transferring data mid-frame (the
root cause, occuring on flapping 1G links, is fixed in firmware 20170104)
* utils: improved synchronisation algorithm in exanic-clock-sync
* utils: support for enabling port local-loopback in exanic-config on X10/X40
(requires X10 firmware 20160825 or later / X40 firmware 20161019 or later)
1.8.0 [2016-09-06]
* Support for ExaNIC X10-GM (X10 variant with hardware PTP Grandmaster)
* utils: support PPS out on ExaNIC X10/X10-GM/X40
* utils: support PPS with termination off on ExaNIC X10/X10-GM/X40
* driver: support hardware timestamping through Linux APIs
* driver: expose hardware clock via Linux PTP infrastructure to allow
use of unmodified ptpd
* exasock: support SO_TIMESTAMPING to receive hardware timestamps
1.7.3 [2016-04-18]
* Support for ExaNIC X40
* driver: compile fixes on certain kernels
* driver: avoid livelock when receiving bad CRC packets at line rate
* driver: address issue when bringing port down/up with apps still attached
* exasock: support SO_BINDTODEVICE socket option for receive
* exasock: support struct ip_mreq/ip_mreqn to IP_MULTICAST_IF socket option
* exasock: support FIONBIO ioctl
* exasock: respect /proc/sys/net/ipv4/tcp_slow_start_after_idle
* exasock: fix logic choosing source interface for multicast UDP send
* exasock: fix hang removing signal handler
* exasock: fix hang in socket shutdown
* utils: show customer version in exanic-config (for devkit firmware)
* utils: support single-ended PPS on X2
* utils: timing calibration improvements in perf-test utils
1.7.2 [2015-10-12]
* Support for ExaNIC X10
* Implement 'Link detected' status in ethtool (also fixes issue with
NetworkManager attempting to bring up unconnected interfaces)
1.7.1 [2015-09-06]
* exasock: Fix for issue where extension API would sometimes produce
bad IP checksums due to a gcc optimization
1.7.0 [2015-08-07]
* exasock: Add exasock extension API for TCP acceleration
* exanic-capture: Add snap length option to limit captured payload
1.6.0 [2015-07-17]
* exasock: Support for accelerating VLAN and alias interfaces
* exasock: epoll optimizations to reduce calls to kernel epoll
* exasock: Fix for connections going AWOL with certain 3.x kernels -
in some cases TCP ACKs could stop being sent on a connection
* exanic-capture: Support filtering (hardware-based)
* exanic-capture: Set interface to promiscuous mode
* exanic-capture: Include CRC errored frames in capture
* Compile fix for recent kernels 3.10+ (rt_genid function)
* Add support for Avago SFP modules in 100Mbit mode.
1.5.0 [2015-03-27]
* Add 100Mbit support (requires firmware 2015-03-27 or later; currently
supported with Finisar FCLF-8520-3/8521-3/FCMJ-8520-3/8521-3).
* Improved analog parameters for passive cables.
* Add interrupt coalescing to kernel driver to reduce interrupt rate
(can be disabled with ethtool -C rx-usecs 0)
* Add support for local loopback of ports in exanic-config (can be used
for testing or in conjunction with mirroring to obtain local mirroring)
* exasock: fix rare TCP bug with out of order packets
1.4.2 [2014-10-22]
* exasock: Fix for certain 3.0.x kernels (e.g. SLES11): would compile
but fail to work.
* exasock: Minor bug fixes
1.4.1 [2014-09-25]
* exasock: Fix overflow in IP header checksum calculation which would
cause connections to certain IP address ranges to fail.
1.4.0 [2014-09-16]
* exasock: Implement epoll and readv/writev
* exasock: Improved multithreading (now using reader-writer locks)
* exasock: Tracing support for debugging
* exasock: Allow kernel to receive a copy of multicast frames
* exasock: Miscellaneous bug fixes and compatibility improvements
1.3.1 [2014-06-13]
* exasock: Fix for segmentation fault
* exasock: Compatibility improvements to setsockopt/getsockopt
* Compile fixes for various kernel versions and compilers
* Experimental support for POWER8 systems
* Report permanent hardware address in ethtool -P
* Redhat/CentOS and Debian/Ubuntu packaging
1.3.0 [2014-05-09]
* exasock: Bug fixes and improvements to TCP support
* Include exasock as part of normal make flow, and load automatically
* Signal quality tweaks for interoperability with third party NICs
* Support upcoming FPGA development kit
* Allocate memory on device's NUMA node rather than forcing node 0
* Measure CPU clock speed in perf-test utils rather than relying on /proc
1.3.0beta1 [2014-04-14]
* exasock: Beta TCP support
* exasock: Improved locking for multi-threaded applications
* Beta flow steering and flow hashing support (requires firmware
2014-04-14 or later)
* Beta version of ptpd for ExaNIC
1.2.2 [2014-03-31]
* New exanic-capture utility which can write pcap files (replaces
exanic-rx-raw)
* Improved receive-side settings for twinax direct attach cables
* Compile fix for kernel 3.8+
1.2.1 [2014-02-28]
* Further improved signal quality for twinax direct attach cables
* Port speed and autonegotiation settings now persist across a reboot
* Performance test utilities now print statistics by default
1.2.0 [2014-02-11]
* Improved signal quality for twinax direct attach cables
* Beta release of ExaNIC sockets acceleration library (exasock)
* Add support for ExaNIC X2
* Add support for 1GbE (requires firmware 2014-02-06 or later)
* exanic-config now shows all cards when run with no arguments
* Add filtering API to libexanic (hardware filtering not yet available)
1.1.2 [2013-12-16]
* Add some commands back to exanic-config as an alternative to using
ifconfig/ethtool
* exanic-config now shows status of bypass only flag
* Kernel driver now uses interrupt mode if available
* Releasing under GPL
1.1.1 [2013-12-03]
* Fix memory leak in driver
* Compile fixes for recent kernels
1.1.0 [2013-12-02]
* Add support for ExaNIC X4
* ExaNICs now show up as standard Linux network interfaces
* Network configuration is now done via standard Linux network mechanisms
instead of exanic-config or exanic.conf
* Removed "friendly name" for ports. Ports can now be looked up by their
Linux network interface name
* Runtime configuration is no longer stored in /dev/shm/exanic
* Add exanic_receive_chunk() and exanic_receive_abort() API functions
to allow applications to read frames one chunk at a time
* Relax TX region allocation so that non-power-of-2 region sizes are allowed
* Change ioctl numbers to conform to Linux standard
1.0.5 [2013-09-06]
* Initial release of ZIP
1.0.4 [2013-08-12]
* Set MAC address commands and API functions now take full 6 octets
(in anticipation of new firmware that can set all 6 octets)
* Fixes to exanic-load-config