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