libcsp 1.4, 07-05-2015 ---------------------- - new: General rtable interface with support for STATIC or CIDR format - new: CIDR (classless interdomain routing) route table format with netmasks - new: Bridge capability - new: Added routing table (de)serialization functions for load/save - new: Automatic packet deduplication using CRC32 (compile time option) - new: Autogenerated python bindings using ctypesgen - new: Task-less operation with router invocation from external scheduler function - api: Refactor route_if_add to csp_iflist_add - api: Refactor route_set and friends to rtable_set - api: Refactor csp_fifo_qos to csp_qfifo - api: Added defined to be backwards compatible with 1.x - interfaces: Drop packets on LOOP interface not for own address (blackhole) - interfaces: New ZMQHUB interface (using zeroMQ over TCP) - other: Increase stack size from 250 to 1100 for csp_can_rx_task - other: Cleanup in csp_route.c - other: Show incoming interface name in debug message - other: Remove newlines from debug calls - improvement: Reduce debug hook function complexity with valist passing - fix: csp_sleep_ms did not work libcsp 1.3, 07-05-2015 ---------------------- - new: Split long process lists into multiple packets - new: Added posix csp_clock.h - new: cmp clock functions (requires that you provide csp_clock.h implementation) - new: Added SFP (Small fragmentation protocol) for larger data chunks - fix: csp_if_fifo example - fix: NULL char at the end of rps - doc: Updated mtu documentation - other: Tested with FreeRTOS 8.0 - other: Added disable-stlib option to build only object files libcsp 1.2, 25-10-2013 ---------------------- - Feature release - New: CMP service for peek and poke of memory - New: CMP interface statistics struct is now packed - New: Faster O(1) buffer system with reference counting and automatic alignment - New: Thread safe KISS driver with support for multiple interfaces - New: CSP interface struct now holds an opaque pointer to driver handle - New: removed TXBUF from KISS driver entirely to minimize stack usage, added TX lock instead - New: Pre-calculated CRC table .romem or PROGMEM on __avr__ - New: Added buffer overflow protection to KISS interface - New: Allow posting null pointers on conn RX queues - New: Lower memory usage on AVR8 - New: csp_route_save and csp_route_load functions - New: option --disable-verbose to disable filenames and linenumber on debug - Protocol: KISS uses csp_crc32 instead of it own embedded crc32 - Improvement: Use buffer clone function to copy promisc packets - Bugfix: Fix pointer size (32/16bit) in cmp_peek/poke - Bugfix: Issue with double free in KISS fixed - Bugfix: Change rdp_send timeout from packet to connection timeout to make sending task block longer - Bugfix: Fix conn pool leak when using security check and discarding new packets - Bugfix: Add packet too short check for CRC32 - Bugfix: Accept CRC32 responses from nodes without CRC support - Bugfix: Ensure csp_ping works for packets > 256 bytes - Bugfix: Cleanup printf inside ISR functions - Bugfix: Do not add forwarded packets to promisc queue twice - Bugfix: Fix return value bug of csp_buffer_get when out of buffers - Bugfix: Always post null pointer with lowest priority, not highest - Bugfix: Add check on debug level before calling do_csp_debug, fixes #35 - Other: Export csp/arch include files - Other: Remove the use of bool type from csp_debug - Other: Moved csp debug functions to csp_debug.h instead of csp.h - Other: Ensure assignment of id happens using the uint32_t .ext value of the union, quenches warning libcsp 1.1, 24-08-2012 ---------------------- - Feature release - Defacto stable since Feb 2012 - New: I2C interface - New: KISS interface - New: USART drivers for Linux, Mac and Windows - New: Windows/MinGW support - New: MacOSX support - New: Interface register function - New: Interface search function - New: CMP service for remote route updating - New: CMP service for interface statistics - Improvement: Better QoS support - Improvement: Send RDP control messages with high priority - Improvement: WAF distcheck now works - Improvement: Automatic endian discovery - Improvement: Accept packets with CRC32 checksum if compiled without CRC32 support - Improvement: Do not wake the router task if RDP is not enabled - Improvement: Save 102 bytes of RAM by packing route entries - Cleanup: Simplify CAN configuration - Cleanup: Move architecture specific code to src/arch - Bugfix: CSP_MEMFREE gives wrong answer on freertos AVR due to truncation - Bugfix: Fixed wrong 64-bit size_t in csp_service_handler - Bugfix: Fixed problem in csp_if_kiss when out of buffers - Bigfix: Handle bus-off CAN IRQ for AT90CAN128 libcsp 1.0.1, 30-10-2011 ------------------------ - Hotfix release - Bugfix: missing extern in csp_if_lo.h libcsp 1.0, 24-10-2011 ---------------------- - First official release - New: CSP 32-bit header 1.0 - Features: Network Router with promiscous mode, broadcast and QoS - Features: Connection-oriented transport protocol w. flow-control - Features: Connection-less "UDP" like transport - Features: Encryption, Authentication and message check - Features: Loopback interface - Features: Python Bindings - Features: CAN interface w. drivers for several chips - Features: CSP-services (ping, reboot, uptime, memfree, buffree, ident)