FNET - Embedded TCP/IP Stack / News: Recent posts

FNET TCP/IP stack: Version 2.7.0 released

Version 2.7.0 change log:
- Added Link-Local Multicast Name Resolution (LLMNR) Server/Responder.
- Added new "host" parameter to example applications, used as a host name for LLMNR. Its value is controlled by FAPP_CFG_PARAMS_HOST_NAME.
- Fixed "ICMP Destination unreachable" handling issue for listening TCP sockets, reported by Yasla.
- Fixed FRDM-K64F startup code, which caused wrong link status.
- Make public fnet_tolower() and other minor changes.

Posted by Andrey Butok 2014-11-21 Labels: FNET

FNET TCP/IP stack: Version 2.6.5 released

Version 2.6.5 change log:
- Fixed DNS query that caused resolution issue with FritzBox DNS server, reported by Lenz.
- Fixed checksum calculation to follow RFC1624(3).
- Added fnet_netif_get_ip6_prefix() and fnet_netif_get_ip6_neighbor_cache().
- Added "stat" command, to the Shell Demo, showing interface statistics, IPv6 prefix list and neighbor cache.
- Cleaned header includes. Now it is enough to add only the fnet_stack folder to Project Search Path without its subfolders.
- Other minor changes.

Posted by Andrey Butok 2014-09-02 Labels: FNET

FNET TCP/IP stack: Version 2.6.4 released.

Version 2.6.4 change log:
- Added support of Kinetis K64FN1M (FRDM-K64F board).
- Added fnet_netif_get_mtu()
- Fixed ARP response, which could cause issue with iOS nodes. Thanks to Markus Muller.
- The assembler .asm files renamed to .s.
- Removed support of obsolete MCF51CN128 and MCF5282 platforms.

Best regards,
Andrey Butok

Posted by Andrey Butok 2014-06-13

FNET TCP/IP stack: Version 2.6.3 released.

Version 2.6.3 change log:
- Added support of Kinetis K60FN1M0 (TWR-K60F120M board).
- Fixed defect in IPv4 TCP segment send function, reported by Dian Nugraha.
- Fixed MCF assembler code to be valid for GCC compiler, thanks to Thomas Buergel.

Best regards,
Andrey Butok

Posted by Andrey Butok 2014-02-04

FNET TCP/IP stack: Version 2.6.2 released.

Version 2.6.2 change log:
- Added IPv6 address support to DNS resolver.
- Added Recursive DNS Server Option (RFC6106) support via router advertisement.
- Added basic MCF5235 support, contributed by Thomas Buergel.
- Fixed MLD-query receive-function that could send a wrong MLD report.
- New configuration parameters:
- FNET_CFG_ND6_RDNSS enabled/disabled RDNSS support.
- FNET_CFG_ND6_RDNSS_LIST_SIZE sets maximum number of entries in the RDNSS address list.
- Other minor changes.... read more

Posted by Andrey Butok 2013-11-15

FNET TCP/IP stack: Version 2.6.1 released.

Version 2.6.1 change log:
- Fixed timeout issue in the DHCP client, reported by Colin Bathe.
- Fixed race condition in UDP-send function that can cause data corruption, reported by Tomas.
- Fixed MLD multicast group leave function.
- Many other minor changes and fixes.

Best regards,
Andrey Butok

Posted by Andrey Butok 2013-08-28

FNET TCP/IP Stack has got Golden "IPv6 Ready Logo"

FNET TCP/IP Stack has got Golden "IPv6 Ready Logo"
Logo ID:02-C-001017
Note: Phase-2 (Golden), Core Protocols, Host.
https://www.ipv6ready.org/db/index.php/public/logo/02-C-001017

FNET is the first open-source, bare-metal TCP/IP stack that has got it!
Correct me, if I am wrong;)
Andrey Butok

Posted by Andrey Butok 2013-08-15

FNET TCP/IP stack: Version 2.6.0 released.

Version 2.6.0 change log:
- Added Multicast Listener Discovery Version 1 (MLDv1), enabled by FNET_CFG_MLD.
- New IPv6 socket options:
- IPV6_MULTICAST_HOPS changes the hop limit to use for outgoing multicast IPv6 packets.
- IPV6_JOIN_GROUP joins a multicast group on a specified local interface.
- IPV6_LEAVE_GROUP leaves a multicast group on a specified interface.
- Other minor changes.... read more

Posted by Andrey Butok 2013-08-07

FNET TCP/IP stack: Version 2.5.0 released.

Version 2.5.0 change log:
- Added support of Kinetis K70FN1M0 (TWR-K70F120M board).
- Added support of Modelo MCF54418 (TWR-MCF5441x board).
- Added support of two Ethernet modules by FEC driver (for MCF54418).
- Added support of uCOS-III, thanks to Jon Elliott.
- Added "bind/unbind" IPv6 address commands to the Shell Demo.
- Added "cookie" parameter to interrupt handlers.
- New/renamed configuration parameters:
- FNET_CFG_CPU_ETH_RMII enables/disables RMII mode.
- FNET_CFG_CPU_ETH_RMII_10T sets 10Mbps or 100Mbps in RMII mode.
- FNET_CFG_CPU_ETHx enables/disables Externet-x module.
- FNET_CFG_CPU_ETHx_MAC_ADDR defines default MAC address of Externet-x module.
- FNET_CFG_CPU_ETHx_MTU defines default MTU of Externet-x module.
- FNET_CFG_CPU_ETHx_PHY_ADDR defines default PHY address used by Ethernet-x module.
- FNET_CFG_CPU_ETH_PHY_ADDR_DISCOVER enables/disables PHY addresses discover.
- FNET_CFG_DEFAULT_IF defines default interface.
- FNET_CFG_OS_TIMER enables/disables OS-specific timer initialization/release.
- Others.
- Other internal changes.... read more

Posted by Andrey Butok 2013-06-06

FNET TCP/IP stack: Version 2.4.0 released.

Version 2.4.0 change log:
- Added multiple-session support to the HTTP server.
- Added HW Checksum Calculation support by ENET module (for K60).
- New configuration parameters:
- FNET_CFG_HTTP_SESSION_MAX defines maximum number of simultaneous user-session that can be handled by the HTTP server.
- FNET_CFG_CPU_ETH_HW_TX_PROTOCOL_CHECKSUM enables/disables insertion of protocol checksum by Ethernet-module.
- FNET_CFG_CPU_ETH_HW_TX_IP_CHECKSUM enables/disables insertion of IPv4 header checksum by Ethernet-module.
- FNET_CFG_CPU_ETH_HW_RX_PROTOCOL_CHECKSUM enables/disables discard of frames with wrong protocol checksum by Ethernet-module.
- FNET_CFG_CPU_ETH_HW_RX_IP_CHECKSUM enables/disables discard of frames with wrong IPv4 header checksum by Ethernet-module.
- FNET_CFG_CPU_ETH_HW_RX_MAC_ERR enables/disables discard of frames with MAC layer errors by Ethernet-module.
- Other minor changes.... read more

Posted by Andrey Butok 2013-03-25

FNET TCP/IP stack: Version 2.3.0 released.

Version 2.3.0 change log:
- Passed the "IPv6 Ready Logo" Phase-2 IPv6 Core Protocols Conformance Tests, for host.
- Added the Path MTU Discovery for IPv6, which is disabled /enabled by FNET_CFG_IP6_PMTU_DISCOVERY.
- Other minor changes.

Best regards,
Andrey Butok

Posted by Andrey Butok 2013-02-15

FNET TCP/IP stack: Version 2.2.1 released.

Version 2.2.1 change log:
- Fixed data corruption bug, that can occur using UDP services (e.g. DHCP) with enabled both IP4 and IPv6.
- Updated FreeRTOS specific code. Thanks to Christophe Graulle.
- Added basic BOOTP protocol support, as special mode of DHCP client service. Thanks to Peter Baertschi.
- New configuration parameters:
* FNET_CFG_DHCP_BOOTP defines DHCP or BOOTP protocol to be used.
* FNET_CFG_DHCP_PORT_CLIENT defines DHCP client port number.
* FNET_CFG_DHCP_PORT_SERVER defines DHCP server port number.

Posted by Andrey Butok 2013-01-16

FNET TCP/IP stack: Version 2.2.0 released.

Version 2.2.0 change log:
- Added support of the Qorivva Power Architecture:
- Added support of MPC5668G.
- Added support of CodeWarrior Development Studio for MPC55xx/MPC56xx Ver. 2.10.
- Added Shell and Benchmark demo-applications for MPC5668GKIT. Without on-chip flash driver.
- Other minor changes.

Best regards,
Andrey Butok
FNET Community

Posted by Andrey Butok 2012-12-20

FNET TCP/IP stack: Version 2.1.1 released.

Version 2.1.1 change log:
- Improved IPv6 support. Passed 80% of the "IPv6 Ready Logo" Phase-2 (Golden) Tests.
- Fixed wrong IPv4 group address mapping to Ethernet multicast address, for little-endian platform (Kinetis).

Best regards,
Andrey Butok
FNET Community

Posted by Andrey Butok 2012-12-11

FNET TCP/IP stack: Version 2.1.0 released.

Version 2.1.0 change log:
- Improved IPv6 support. Passing 65% of the "IPv6 Ready Logo" Phase-2 (Golden) Tests.
- Added RAW socket support.
- Added PING service, using RAW sockets and supporting both IPv4 and IPv6.
- Added ping command to the FNET demo applications.
- Added basic FreeRTOS support, contributed by Christophe Graulle.
- Added the IPV6_UNICAST_HOPS socket option.
- Added multiple-session support to the TELNET server.
- Added possibility to set the socket-listen backlog to zero value.
- Added new configuration parameters:
- FNET_CFG_RAW enables/disables RAW socket support.
- FNET_CFG_PING enables/disables PING service.
- FNET_CFG_TELNET_SESSION_MAX defines maximum number of simultaneous user-session that can be handled by the Telnet server.
- Fixed some bugs.... read more

Posted by Andrey Butok 2012-11-29

FNET TCP/IP stack: Version 2.0.0 released.

Version 2.0.0 change log:
- Added IPv6 support:
- Passed the legacy "IPv6 Ready" Phase I (Silver) Tests.
- Added IPv6, ICMPv6, Stateless address autoconfiguration, Neighbor Discovery.
- Added IPv6 address support to TCP, UDP, Sockets, TFTP, HTTP and Telnet.
- All Demo application is able to work with IPv6. Where it was possible, both IPv4 and IPv6 are enabled.
- Added support of uVision 4.5 Keil compiler for K60N512.
- Added events (rebranded SW interrupts).
- New configuration parameters:
- FNET_CFG_CPU_ETH_ATONEGOTIATION_TIMEOUT defines Ethernet Autonegotiation Timeout.
- FNET_CFG_OS_ISR allows usage of an OS-specific ISR handler.
- FNET_CFG_OS_EVENT enables generation OS-specific event.
- FNET_CFG_IP6 enables/disables IPv6.
- FNET_CFG_IP4 enables/disables IPv4.
- FNET_CFG_ND6_NEIGHBOR_CACHE_SIZE defines the maximum number of entries in neighbor cache.
- FNET_CFG_ND6_PREFIX_LIST_SIZE defines the aximum number of entries in the Prefix list.
- FNET_CFG_ND6_ROUTER_LIST_SIZE defines the maximum number of entries in the Default Router list.
- FNET_CFG_ND6_DAD_TRANSMITS defines the number of consecutive Neighbor Solicitation messages sent while performing Duplicate Address Detection.
- FNET_CFG_NETIF_IP6_ADDR_MAX defines the maximum number of IPv6 addresses per interface.
- FNET_CFG_IP6_FRAGMENTATION enables/disables IPv6 fragmentation.
- others.
- New user API functions:
- fnet_inet_ntop().
- fnet_inet_pton().
- fnet_netif_get_by_number().
- fnet_timer_seconds().
- fnet_timer_ms().
- fnet_netif_get_ip6_addr().
- Many IPv6 specific functions and types.
- A lot of existing API functions and definitions renamed to differentiate IPv4 and IPv6 functionality.
- Added BRTOS support (http://code.google.com/p/brtos/).
- Removed support of IAR Compiler for ColdFire.
- Many other internal changes.... read more

Posted by Andrey Butok 2012-10-16

FNET TCP/IP stack: Version 1.2.2 released.

Version 1.2.2 change log:
- Fixed wrong behavior, using CodeWarrior 10.2 Final Release for Kinetis platform.
- Fixed value of MII speed register, which may be cause of wrong PHY-address detection and wrong connection status.
- Removed the remaining platform-independent Ethernet logic from FEC driver.
- Deleted "useless" length and pad fields from the socket-address structure.
- The connect() function now returns FNET_OK instead of the FNET_ERR_AGAIN error (which is actually is not error).
- Added "cookie" parameter to the timer-event handler.
- Other internal changes. ... read more

Posted by Andrey Butok 2012-02-15

FNET TCP/IP stack: Version 1.2.1 released.

Version 1.2.1 change log:
- Added new configuration parameters:
- FNET_CFG_IP_OPTIONS enables/disables processing of IP options.
- FNET_CFG_TCP_URGENT enables/disables TCP urgent data processing.
- Done different code-size optimizations.
- Enabled the multicast functionality for the Kinetis FEC driver.
- Moved the loopback logic from FEC driver to the Networking layer.
- Renamed fnet_ip_addr_t to fnet_ip4_addr_t.
- Added FNET_IP4_ADDR_STR_SIZE and FNET_MAC_ADDR_STR_SIZE that define maximum size of null-terminated ASCII string representing IPv4 and MAC address.
- Deleted not thread-safe fnet_strok() function. It is recommended to use fnet_strtok_r() instead of it.
- Added "FNET Demo Applications" and "Standard library API" chapters to the User Documentation. ... read more

Posted by Andrey Butok 2012-02-07

FNET TCP/IP stack: Version 1.2.0 released.

Version 1.2.0 change log:
- Added support of the CodeWarrior Development Studio v10.2 for TWR-K60N512 (Kinetis) and M52259EVB (Kirin3) projects.
- Added support of mulicast-group joining & leaving to the socket interface.
- Added Internet Group Management Protocol (IGMP) version 1 and 2.
- Added new socket options:
- IP_MULTICAST_TTL changes IP "time to live" (TTL) value for outgoing multicast datagrams.
- IP_ADD_MEMBERSHIP joins the socket to the supplied multicast group on the specified interface.
- IP_DROP_MEMBERSHIP drops membership to the given multicast group and interface.
- Added new configuration parameters:
- FNET_CFG_CPU_ETH_PROMISCUOUS enables/disables the Ethernet interface promiscuous mode.
- FNET_CFG_CPU_ETH_FULL_DUPLEX enables/disables the Ethernet interface full duplex mode.
- FNET_CFG_MULTICAST enables/disables the multicast group support.
- FNET_CFG_MULTICAST_MAX defines the maximum number of unique multicast memberships may exist at the same time in the whole system.
- FNET_CFG_MULTICAST_SOCKET_MAX defines the maximum number of multicast memberships may exist at the same time per one socket.
- FNET_CFG_IGMP enables/disables the Internet Group Management Protocol (IGMP) support:
- FNET_CFG_IGMP_VERSION defines version of the Internet Group Management Protocol (IGMP).
- FNET_CFG_LOOPBACK_MULTICAST enables/disables the local loopback of multicast datagrams.
- FNET_CFG_LOOPBACK_BROADCAST enables/disables the local loopback of broadcast datagrams.
- Old FNET_CFG_LOOP_xxx parameters renamed to FNET_CFG_LOOPBACK_xxx.
- Added possibility to choose default multicast interface for outgoing multicast packets, for hosts with several network interfaces, in FNET Throughput Benchmark tool.
- Fixed issues in Kinetis Flash and UART drivers.
- Many other minor changes/fixes.

Posted by Andrey Butok 2012-01-09

FNET TCP/IP stack: Version 1.1.2 released.

Version 1.1.2 change log:
- FNET Throughput Benchmark tool:
- Added "IP Don`t Fragment" option.
- Added "IP Time to Live" option.
- Added "Timeout" option (in seconds) for sending. User is able to choose to stop the sending after the number of sent messages or after the timeout.
- Added possibility of joining of a UDP Multicast group by the receiver.
- Added "refresh" button that updates "Local IP address" combo-box, in case a network interface enabled/disabled during work of application.
- Added acknowledge packet, at the end of UDP data transfer session, which contains amount of received data. It helps to determine the amount of data was received and lost during UDP transfer.
- Throughout value in Bytes/sec was replaced by Kbits/sec.
- Other minor improvements in user interface.
- Added the FNET_CPU_INSTRUCTION_ADDR() macro that sets Thumb bit of an address for Kinetis entry point (and does nothing for ColdFire). It is used by the FNET boot-loader and fixes issue caused by SREC files generated by CodeWarrior for Kinetis.
- Fixed issue in MCF52235 initialization for UART number 2.
- Fixed potential issue in initialization of the DNS client application.
- Fixed potential issue in the fnet_str_to_mac() function.
- Fixed the "strict ANSI C" CW compiler errors.
- Fixed some GCC compiler errors and warnings (even if GCC is not supported).
- Other minor changes/fixes.

Posted by Andrey Butok 2011-09-05

FNET TCP/IP stack: Version 1.1.0 released.

Version 1.1.0 change log:
- Added the DNS client/resolver service.
- Added the DNS-server address support to the DHCP client service and to the network interface.
- Added the "dns" resolver command to the FNET Shell application.
- Other minor changes/fixes.

Posted by Andrey Butok 2011-07-20

FNET TCP/IP stack: Version 1.0.0 released.

Version 1.0.0 change log:
- Added Kinetis (ARM Cortex-M4) - MK60N512 support.
- Added support of the IAR Embedded Workbench for ARM compiler, version 6.1.
- Added standard FNET demo applications for the TWR-K60N512 board, including the FNET on-chip Bootloader.
- Added support of little-endian platforms, defined by FNET_CFG_CPU_LITTLE_ENDIAN.
- Added set of functions and macroses that convert values between host and network byte order (like fnet_ntohs(), fnet_htonl() and etc. ).
- Added common on-chip Flash memory driver for Kinetis (FTFL) and ColdFire (CFM) modules.
- Added support of 16 bits and 24 bits addressing in the S-record file format for the FNET Bootloader.
- Added common FEC driver for Kinetis and ColdFire platform.
- Improved response of the Telnet server.
- Added the fnet_telnet_close_session() function, which closes the currently active session of the Telnet Server.
- Added the fnet_println() function that prints formatted text to the stream and terminates it by line separator string.
- Added fnet_serial_flush() function that sends/flushes data from the internal stream buffer to the stream client, it has meaning only for buffered streams.
- Applied optimized version of the IP checksum calculation and the fnet_memcpy() function.
- A lot of the FNET_CFG_MCF_xxxx parameters, which are common to all platforms, were renamed to FNET_CFG_CPU_xxxx.
- Many other changes and fixes.

Posted by Andrey Butok 2011-06-06

FNET TCP/IP stack: Version 0.9.3 released.

Version 0.9.3 change log:
- Fixed stuck issue that may occur during receiving of broadcast UDP datagrams.
- Fixed buffer corruption issue that may occur when the internal static heap buffer has relatively small size.
- Improved stability of nebuf. management.
- FEC Frame buffers and descriptors are allocated statically (before in internal heap). Existing applications should reduce value of the FNET_CFG_HEAP_SIZE in user-configuration file by the value that equals summary size of buffers statically allocated in Ethernet driver. Roughly [NEW_VALUE]=[OLD_VALUE]-(FNET_CFG_MCF_ETH_TX_BUFS_MAX+FNET_CFG_MCF_ETH_RX_BUFS_MAX)* FNET_CFG_ETH_MTU.
- Renamed FNET_CFG_MCF_SERIAL_PORT_DEFAULT to FNET_CFG_CPU_SERIAL_PORT_DEFAULT.
- Added the FNET_CFG_TELNET_SOCKET_BUF_SIZE user-configuration option that defines size of the socket RX & TX buffer used by the Telnet server.
- Added OS folder where it will be placed all OS-specific code.
- Added uCOS-II specific ISR handler.
- Added FNET_CFG_OS and FNET_CFG_OS_operation_system_type set of user-configuration options that define a currently used OS. For this moment there is FNET_CFG_OS_UCOSII only.
- Added "Free heap" information to the Shell-example "info" command.
- Other minor changes/fixes.... read more

Posted by Andrey Butok 2011-03-08

FNET TCP/IP stack: Version 0.9.1 released.

Version 0.9.1 change log:
- Added the FNET_CFG_TCP_DISCARD_OUT_OF_ORDER user-configuration option that enables or disables the discarding of TCP segments that are received out of order.

Posted by Andrey Butok 2011-02-11

FNET TCP/IP stack: Version 0.9.0 released.

Version 0.9.0 change log:
- Added support of the IAR Embedded Workbench for ColdFire Version 1.22.
- Added support of the IAR compiler to the demo applications for the M52259EVB board.
- Added the FNET_CFG_COMP_compiler_type set of user-configuration options that define a currently used compiler.
- Added GPL linking exception to the FNET license (based on http://en.wikipedia.org/wiki/GPL_linking_exception\), to allow static linking to proprietary applications.
- Fixed several issues in the Telnet server, which caused stuck situations.
- Fixed assembler version of the checksum calculation.
- Added the compiler directory where are placed compiler-specific files.
- All inline assembler functions were rewritten to separate ASM files, to make it more portable.
- All standard_abi assembler functions were rewritten to follow register_abi.
- Increased general throughput performance, based on benchmark results.
- Fixed CFM driver initialization.
- Fixed MSS issue, it was set to the lowest value for all cases.
- Added the FNET_CFG_SOCKET_TCP_MSS user-configuration option that defines the default value of the TCP_MSS socket option. By default the selection of the MSS is automatic and is based on the MTU of the outgoing interface. It is done to assist in avoiding of IP fragmentation at the endpoints of the TCP connection.
- Added the FNET_CFG_SHELL_HELP_FORMAT user-configuration option that defines the format of the command-shell help message, that is used by the fnet_shell_help() function.
- Added the FNET_CFG_TELNET_SHELL_ECHO user-configuration option that defines the Echo in the Telnet shell.
- Updated structure of the application parameters, used by the FNET demo applications.
- Updated the FNET ROM file-system image structure and the "FNET File System Generation Tool", to make the file-system image file more portable between different compilers.
- The "fnet.h" header file gives full access to the whole FNET user-API, including the services API.
- Other minor changes/fixes. ... read more

Posted by Andrey Butok 2011-02-04