Version 1.4.2 (2007-10-25)
==========
* TCP CM protocol version was bumped to 3 and improvements were made. NOTE: Version 1, 2 and 3 are NOT compatible.
* Replaced deprecated SPIN_LOCK_UNLOCKED with spin_lock_init().
* Fixed bug when compiling with per-socket statistics and link supervision.
* Fixed a problem with miscalculated statistics in tcp_cm.
* Removed some compiler warnings.
* Fixes for running a 32-bit LINX application on a 64-bit machine.
* Linxdisc updated, version field added to protocol, updated documentation and various buggfixes.
* Added asserts in liblinx. 
	 
Version 1.4.1 (2007-09-21)
==========
* TCP CM protocol version was bumped to 2. Version 1 and 2 are NOT compatible.
* Added support for Linux kernel version 2.6.22
* TCP Connection Manager protocol was incremented.
* Improved keepalive for the tcp cm. 

Version 1.4.0 (2007-09-18)
==========
* Rename option live_timeout in the TCP CM to live_tmo for consistency with older releases.
* Added new linxcfg files, linxcfg.c and linx_cfg_cm.h to MANIFEST.
* Added linxdump patch files to MANIFEST, updated dir-levels in one patch file.
* Updated User's Guide.
* Remove linxcfg_tcp and add the functionality to linxcfg.
* Update manuals and accordingly.
* Endian conversion fix when routing messages using a CM that doesn't use skb buffers. 
* Fixed crash if user tried to create a Ethernet connection from unknown device. 
* Cosmetic linxstat fix.
* Fixed a race between when closing of a socket and a attach is received.
* Fixed bug in linxstat.
* Added linxdisc.h to MANIFEST.
* RLNH controll messages are no longer copied by the ethernet CM.
* Optimizations and buggfixes in the RLNH layer.
* Added "receive_but", i.e. receive any signal except the ones mentioned in the filter.
* Added a linx tcp connection manager.
* Added new linxdisc files to MANIFEST, fixed bug in linxdisc clean make rule.
* Added option to filer output by socket type in linxstat.
* Better collision handling and supervision of peers in linxdisc.
* Support for Linux Kernel 2.6.22 without the ERRORCHECKS=yes option (struct sk_buff changed). 
* Renamed linxdump patches to make it easier to apply them in correct order.
* Allow users to select radix when displaying signo in linxdump.
* Fixed build issue with Linx on SUSE linux.
* Add missing info and fix minor formatting issues in linxstat documentation.
* Add missing kernel version declaration in kernel Makefile.
* Add "batch mode" to linxstat, in batch mode linxstat just print # of LINX sockets.
* Fixed linxdump failing to print signo on 64 bit architectures.
* Added fix for linxdump not being able to save capture files.

Version 1.3.0 (2007-07-05)
==========
* EthCM: MTU is now fetched from the device or set when creating the link. 
* Added link attribute.
* Added linx_get_stat and linx_free_stat to the LINX user api and updated documentation.
* linxstat can now display per socket statistics.
* Changed per socket statistics counters to 64bit.
* Documentation was not updated when the spid field was removed from linx_hunt_param, fixed now.
* Added statistics counter per-socket (enable with SOCK_STAT=yes).
* Fixed memory leak in linxdisc.
* Fixed bug where LINX_INFO_SIGNAL_PAYLOAD could return with a locked spinlock.
* LINX_INFO_NAME now returns 0 and empty string if LINX socket has not been assigned a huntname yet. 
	
Version 1.2.0 (2007-05-14)
==========
* Added the MEM_FRAGMENTATION_SUPPORT=yes build option. Used to enable memory fragmentation handling as part of intra process communication.
* Added Modules.symvers to clean make target.
* Fixed memory leak/wild free in linx_receive() if non EINTR error is returned from recvmsg.
* Fixed a race on SMP where the LINX socket slab cache could be used after it was destroyed.
* Fixed a race on SMP between receiving a fragment of a message and disconnecting the link.
* Fixed a race when receiving a message while closing a socket.
* linx_bmark now supports mixed endian.
* Fixed a bug with no_of_pend_attach counter.
* Updated and changed name for example/simple to example/linx_basic.
* Updated and changed name for example/linx_bmark to bmark/linx_bmark.
* Remove endian conversion of signo when forwarding messages over multihop links.
* Modprobe works after running "make install" as root. Modules can be uninstalled by "make uninstall".
* Renamed some module parameters. max_sock_per_link to linx_max_sockets_per_link, max_num_links to linx_max_links, linx_sockbuf_max to linx_sockbuf_size, linx_osattref_max to linx_max_attrefs and linx_spid_max to linx_max_spids.
* Added error checking of previously missed out memory allocations.
* Removed annoying error message when asking for the name of a dead process.
* Removed debug message from linxdisc.
* Fixed a race between attacher and attachee.
* Updated liblinx/linx.c after a shorter review session.
* Fixed a problem with linxdisc exiting when network load was high on a node.
* Fixed some erroneous information in man page for linx_receive_w_tmo().
* Fix some minor ETHCM statistic bugs (stat.c/stat.h/stat.mk).
* Added two patch files, one for tcpdump and one for libpcap. These two patches are needed for linx message trace.
* Added LINX Message Trace to MANIFEST.
* sendpage() on LINX sockets results in a NOTSUPPORTED instead of a call to sendmsg().
* Fix poll() bug in the LINX kernel module and optimized performace as well.
* linux/config.h -> linux/autoconf.h, added {} around 2-statement else-branch.
* Compile-time configuration of ETH_CM statistics.
* Function call API for Creating/Destroying links.
* Fixed interrupted syscall bug during linx_receive_w_tmo().
* Support for Linux Kernel version 2.6.20 (INIT_WORK fix).
* Added missing ntohl() and fixed strncmp() bug in linxdisc.
* Fixed an erroneous increment of the use count of linx_eth_cm.
* Optimized LINX library.
* Changed send* to return errno EPIPE if dest socket is being closed.
* Removed dependencies on linux/compiler.h from example/linx_bmark
* linx_receive_w_tmo now uses poll() instead of select() due to problems with many file descriptors (>1024) in select().
* Renamed main.c and common.c to linx_bmark.[hc].
* Added internal message trace support, first iteration.
* Removed ioctl() calls disconnect, param_get and param_set.
* Fixed cleanup of /proc when unloading cm.
* Fixed buggy sem-call, was up() should be down().
* Added missing EXPORT_SYMBOL of linx_trace_lock.
* Fixed race in linxstat causing inconsistent results.
* Added LINX_KERNEL_WORKAROUND_1.
* Fixed a lock bug in the rwsem bug workarounds in rlnh_linux.c.
* Made the linx trace symbols exported to make sure linx tracing from CM kernel
  modules can be used.
* Replace use of init_MUTEX_LOCKED with init_MUTEX followed by up.
* Fixed an issue with hunt.
* Fixed some issues with changes in the linux kernel.
* Fixed bug in skbuff handling causing hangs on ethernet driver level.
* Moved linx in procfs from /proc to /proc/net.
* The linx module was split in two. LINX now consist of linx.ko and a module for CM, linx_*_cm.ko
* Fixed bug causing links not to reconnect when the device MAC address is changed.
* Fixed bug causing bug (crash) when a connected ethernet device is completely removed.
* linx_bmark updated.
* Reworked the timeout wrappers.
* Removed ifdefs around use of Connection ID.
* Modified build. Asserts are no longer on by default.

Version 1.1.0 (2006-11-10)
==========

* Fixed a problem regarding cleanup of orphan sk-buffers.
* Fixed problems with removal of the LINX kernel module.
* Updated the linx_bmark example with a throughput benchmark.
* Updated the linx_bmark example with a liblinx api/socket api option.
* Corrected bug causing the payload buffer used with sendto() and sendmsg()
  to be modified on little endian systems.
* Improved handling of distribution related kernel version dependencies.
* Some fixes regarding socket reference counting.
* Some variables were not safe when running SMP.
* Fixed problems when exceeding max_num_links limit.
* Added limits and verification of kernel module parameters.
* Use vmalloc() to allocate spid and attref arrays, kmalloc() can't handle required sizes.
* Removed bad __init/__exit tags.
* Extra version handling for FC4 and Monta Vista 401.
* Fixed a bug in eth_cm/linux.c eth_conn_add_connection(). Connection id overwritten.
* Fix a memory leak, a double free, and a NULL-ref.
* Arguments when loading kernel module added.
* Default hunt signal is now allocated by the linx kernel module.
* Fixed a small bug regarding attach reference counting.
* Introduced a retry count while sending through sendto() in linxdisc.
* All linx_* function calls in liblinx now calls abort() if the LINX handle is invalid.
* Fix bug in conversion from LINX_OSTIME to struct timeval in receive_w_tmo.
* Fix linxdisc no longer loses its node_name upon a reread of the conf-file.
* linxdisc now dynamically adapts to renaming of remote nodes.
* Added linx_free_name() call to liblinx.
* Build options to the kernel module are now checked.
* Fix linxdisc no longer exits when a network interface it depends on is taken down
* Improved SMP and 64-bit support

Version 1.0.3 (2006-09-15)
==========
* Go to linx_panic() when return value from linx_internal_sendmsg() is below zero
* Added User's Guide
* Corrected problem when retrieving the hunt name of a socket while the socket is being closed.
* Fix a problem with arbitrary spids sent to linx_attach().
* Fix problem with dropped hunts when more than two links are used.
* Fix a hole when linx_free_buf() could return without clearing *sig.
* Clear prev and next pointers when sig_adm block is unlinked.
* x86_64 support added.
* Basic SMP support added (big tasklet lock).
* Added node name condifuration to linxdisc.
* Bug fixed memory leak in linx_attach.
* Bug fixed problem unloading linx.ko.
* Added LINX_INFO_SIGNAL_PAYLOAD

Version 1.0.2 (2006-08-18)
==========
* Fixed race-conditions in connect/disconnect and create/destory
* Optimized send-receive latency and throughput by improved receive queue locking.
* Possible to hunt on your self now.
* Field signal_reference removed from struct linx_info_signal
* Field common_filter_offset removed from struct linx_info_filters
* Field critical_filter_offset removed from struct linx_info_filters
* Field common_sigselect renamed to sigselect in struct linx_receive_filter_param
* Field common_sigselect_size renamed to sigselect_size in struct linx_receive_filter_param

Version 1.0.1 (2006-08-11)
==========
* Fixed problem with receive of signals larger than 4096 bytes.
* Fixed memory leak in hunt.c.
* Removed dead code and NULL-pointer reference in af_linx.c.
* Removed reference after free.
* Fixed race-conditions.
* Optimizations, minor locking changes.
* Cleanup of comments in header files.
* Removed unnecessary stack dumps.
* "Deferred queue exhausted" was changed to a warning.
* Fixed a bug in linxdisc where it got stuck in a non-interruptible state.

Version 1.0 (2006-07-31)
==========
* Initial Release


Enea <linx@enea.com>
