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

FNET TCP/IP stack: Version 3.9.3 released

  • Version 3.9.3
    • Fixed all mDNS warnings in the Bonjour Conformance test.
    • Improved SW event response, thanks to Michal Hanak.
    • Reduced default timer period to 10ms, for better time precision.
    • Other minor fixes.

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-09-05 Labels: fnet

FNET TCP/IP stack: Version 3.9.2 released

  • Version 3.9.2
    • Fixed possible wrong sending of TCP ACK, thanks to Richard Green.
    • Renamed IPv4-specific files and definitions from "ip|IP" to "ip4|IP4".
    • Renamed ICMPv4-specific files and definitions from "icmp|ICMP" to "icmp4|ICMP4".
    • Cleaned code style using "Auristic Style v3.0.1"

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-08-17

FNET TCP/IP stack: Version 3.9.1 released

  • Version 3.9.1
    • Fixed possible failure during reassembly of out of order IPv4 datagrams.
    • Deprecated FNET_CFG_DNS_RESOLVER, which is covered by existing FNET_CFG_DNS.
    • Add possibility to run several DNS clients/resolvers simultaneously, defined by FNET_CFG_DNS_MAX.

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-07-13

FNET TCP/IP stack: Version 3.9.0 released

  • Version 3.9.0
    • Added SNTPv4 (Simple Network Time Protocol) client.
    • Fix possible buffer overflow in the DNS client/resolver.
    • Added S32R274 platform, thanks to Andrian Onea.

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-06-16

FNET TCP/IP stack: Version 3.8.2 released

  • Version 3.8.2
    -Added RFC6763 Service Type Enumeration to the mDNS server, enabled by FNET_CFG_MDNS_SERVICE_TYPE_ENUMERATION.
    -Simplified user API for adding of mDNS TXT record keys.
    -Fixed possible infinite loop caused by a malformed mDNS packet.
    -Fixed HTTP server release issue when there are open CGI sessions.
    -Fixed minor issues detected by Coverity tool.

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-05-15

FNET TCP/IP stack: Version 3.8.1 released

  • Version 3.8.1:
    • Fixed MCF compilation issues. Thanks to Frank Lombardo.
    • Other minor fixes.

Best regards,
Andrey Butok

Posted by Andrey Butok 2017-02-15

FNET TCP/IP stack: Version 3.8.0 released

  • Version 3.8.0:
    • Added TLS:
      • Added TLS server API.
      • Added mbedTLS library support, placed in third_party/mbedtls-2.4.0.
      • Added shell_mbedtls example.
    • Changed the fnet_socket_t descriptor type from fnet_int32_t to void*.
      So now, fnet_socket_accept() and fnet_socket() return FNET_NULL instead of FNET_ERR.
    • Fixed fnet_mempool_free(), thanks to Paul.
    • Fixed FNET_CFG_CPU_VECTOR_PRIORITY_MAX for Kinetis.... read more
Posted by Andrey Butok 2017-01-06

FNET TCP/IP stack: Version 3.7.0 released

  • Version 3.7.0:
    • Added Multicast DNS (mDNS) "Bonjour" Server/Responder. Thanks to NXP-Semiconductor for support.
    • Passed the Bonjour Conformance Test, Version 1.3.1. (https://developer.apple.com/softwarelicensing/agreements/bonjour.php)
      Bonjour Conformance Test includes "Link-Local Address Allocation", "Multicast DNS" and "Network Interoperability" test phases (48 tests).
    • Removed all instances of recursion.
    • Added FNET_CFG_ASSERT - enables/disables FNET_ASSERT().
    • Fixed Mutex API, thanks to Paul.
    • Other minor changes.... read more
Posted by Andrey Butok 2016-11-10

FNET TCP/IP stack: Version 3.6.1 released

  • Version 3.6.1:
    • Removed application reserved memory regions FAPP_CFG_MEM_REGION_RESERVED_LIST from the boot-loader application.
    • Added multiple memory region support to TFTP .srec generator.
    • Renamed FAPP_CFG_APPLICATION_SIZE to FAPP_CFG_BOOTLOADER_SIZE.
    • Minor cleanings and fixes.
Posted by Andrey Butok 2016-09-13

FNET TCP/IP stack: Version 3.6.0 released

  • Version 3.6.0:
    • Disabled automatic network-interface initialization during fnet_init() call:
      • Only loop-back interface is initialized automatically, if enabled.
      • Moved network interface initialization and IP address parameter settings to user application fapp_netif.c
      • Added fnet_netif_init(), fnet_netif_release() and fnet_netif_is_initialized() to public API.
    • Merged fnet_netif_set_ip4_subnet_mask() to fnet_netif_set_ip4_addr().
    • Obsoleted FNET_CFG_HEAP_SIZE, FNET_CFG_ETH0_IP4_ADDR, FNET_CFG_ETH0_IP4_MASK, FNET_CFG_ETH0_IP4_GW, FNET_CFG_ETH0_IP4_DNS, FNET_CFG_DEFAULT_IF.
      They are replaced by FAPP_CFG user-application ones.
    • Deleted obsolete FNET_CFG_CPU_SRAM_ADDRESS and FNET_CFG_CPU_SRAM_SIZE.
    • Added experimental Write-Caching in Flash driver, enabled by FNET_CFG_FLASH_CACHE. Thanks to Patrice Cavin.
    • Started using C99 structure member initialization. Only members that are needed are defined.
    • Increased reserved flash-memory size for the Boot-loader to 52 Kbytes.
    • Other minor changes and fixes.... read more
Posted by Andrey Butok 2016-09-05

FNET TCP/IP stack: Version 3.5.0 released

  • Version 3.5.0:
    • Improved Auto-IP service to follow RFC3927.
      It has passed the "Phase 1, Link-Local Address Allocation" test cases of the Bonjour Conformance Test suite Version 1.3.1.
    • Implemented Link-Detection service, enabled by FNET_CFG_LINK.
    • Added Link-Detection to the Shell example application.
      Whenever the network interface indicates that it has been disconnected, application disables the bound/discover protocols (DHCP, AutoIP, LLMNR).
      And the application begins again the auto-configuration process (DHCP, AutoIP, LLMNR) whenever the interface has been connected.
    • Added fnet_netif_clear_ip4_addr_conflict(), which clears IPv4 address conflict flag.
    • Allowed nested calling of shell scripts, using fnet_shell_script().
    • Other minor changes and fixes.... read more
Posted by Andrey Butok 2016-08-23 Labels: fnet

FNET TCP/IP stack: Version 3.4.0 released

  • Version 3.4.0:
    • Added fnet_socket_set_callback_on_rx(), which registers the "Socket RX" event handler callback. This event occurs when the socket layer receives any packet for any existing socket, which is enabled by FNET_CFG_SOCKET_CALLBACK_ON_RX.
    • Added Multi-Threading Mutex API, defined by fnet_mutex_api_t. This optional functionality is enabled by FNET_CFG_MULTITHREADING.
    • Removed OS folder. Its functionality was replaced by fnet_mutex_api_t and fnet_socket_set_callback_on_rx().
    • Removed redundant fnet_init_static().
    • Improved compiler auto-detection.
    • Fixed many potential issues found by source code static-analysis.
    • Added FNET_CFG_CPU_ETH_OVERLOAD_IO_INIT that allows alternative Ethernet module pin initialization.
    • Added MPC5744P Flash driver. Thanks to Patrice Cavin. ... read more
Posted by Andrey Butok 2016-08-03

FNET TCP/IP stack: Version 3.3.0 released

  • Version 3.3.0:
    • Added basic Auto-IP service, according to RFC3927 "Dynamic Configuration of IPv4 Link-Local Addresses".
    • Added optional "autoip" parameter to the "dhcp" shell command, which means to start the Auto-IP service automatically if a DHCP server is not found.
    • Added fnet_netif_is_ip4_addr_conflict() to determine if there is IPv4 address conflict. Just one more possibility in addition to fnet_netif_set_callback_ip4_addr_conflict().
    • Application protocol initialization functions return 0 (wrong zero descriptor) if an error occurs (instead of FNET_ERR, in previous versions).
    • Updated Demo WEB pages.
    • Fixed broken HTTP Authentication, that sent data even if the authentication was cancelled.
    • Renaming/cleaning in User-API.... read more
Posted by Andrey Butok 2016-06-09 Labels: fnet

FNET TCP/IP stack: Version 3.2.0 released

  • Version 3.2.0:
    • Added support of Kinetis K60DN512 (TWR-K60D100M board).
    • Added support of Kinetis K66FN2M (FRDM-K66F board).
    • Changed demo application structure:
      • Demo projects moved to "\fnet\fnet_demos\boards\<board_name>\<demo_name>"
      • Port-specific configuration parameters, like a compiler support FNET_CFG_COMP_<name>, a processor type FNET_CFG_CPU_<name>, a default serial port number FNET_CFG_CPU_SERIAL_PORT_DEFAULT and others are defined in example project options. This approach allows to have the same fnet_user_config.h per one type of example for all platforms.
      • Use platform linker files and start up code from Kinetis SDK 2.0, with additional changes required by FNET applications
    • Fixed memory allocation, that could cause data corruption when the memory pool is full. Reported by Paul.
    • Fixed TCP receive. Reported by Eclectice.
    • Fixed ARP resolving, that could cause data corruption. Thanks to Michal Hanak.
    • Fixed ENET register map for MPC5744P. Thanks to Patrice Cavin.
    • Removed examples for old MPC5668G, MK70FN1M, MK60FN1M, MK60N512 and obsolete ColdFire (MCF) platform.... read more
Posted by Andrey Butok 2016-05-06 Labels: fnet

FNET TCP/IP stack: Version 3.1.1 released

  • Version 3.1.1:
    • Improved Flash driver. Now it copies its execution code to RAM by itself, so no need to define an additional FNET_RAM section in linker file.
    • Fixed IPv4 input function, to accept all broadcast Ethernet frames for an interface without a bound IPv4 address. It is used by DHCPv4 client. Reported by Sergej Ruzin.
    • Added MPC5566(Viper) configuration. Thanks to NanoZera.
    • The all source code files (.c, .h) were formatted by the Artistic Style 2.05 tool (http://astyle.sourceforge.net/).
    • Other minor changes.... read more
Posted by Andrey Butok 2016-03-21 Labels: FNET

FNET TCP/IP stack: Version 3.1.0 released

  • Version 3.1.0:
    • HTTP server improvements:
      • Added fnet_http_set_response_status_code(), sets status code in HTTP-response status-line. Can be used by CGI and POST handlers.
      • Added fnet_http_set_response_content_length(), sets content length in HTTP-response header. Can be used by CGI and POST handlers.
      • Added fnet_http_set_response_no_header(), disables sending of HTTP-response status-code and header. Can be used by CGI and POST handlers.
      • Fixed HTTP POST send-handler.
    • Moved "cpu", "compiler" and "os" folders to "port" sub-folder, to combine all port-specific source code in one place.
    • Added ARP User API, that can be used for address probation and conflict detection:
      • Added fnet_arp_send_request(), that sends ARP request.
      • Added fnet_arp_get_mac(), that gets MAC address of valid ARP cache entry.
      • Added fnet_arp_get_entry(), that retrieves a ARP cache entry.
    • Added ARP Cache display information to the "stat" shell command in the demo application.
    • Added optional probing of the newly received address by the DHCPv4 client. Controlled by the fnet_dhcp_params->probe_addr flag.
    • Renamed fnet_netif_ip6_addr_type_t to general fnet_netif_ip_addr_type_t, to be used for both IPv4 and IPv6.
    • Added fnet_netif_[get|set]ip4_addr_type(), replacing fnet_netif[get|set]_ip4_addr_automatic().
    • Changed the default value of the FNET_CFG_CPU_VECTOR_TABLE parameter, for Kinetis platform, to NVIC vector table register (VTOR). Before it was set to a symbol defined in a linker file.
    • Removed obsolete MCF uCOS port.
    • Removed obsolete MCF CodeWarrior 7.2 support.
    • Removed obsolete fnet_<cpu>_stdlib.c.
    • Other minor changes.... read more
Posted by Andrey Butok 2016-03-02

FNET is mirrored on GitHub

FNET was mirrored to https://github.com/butok/FNET for people who prefer GitHub.
SourceForge still stay the main location for the FNET project.

Posted by Andrey Butok 2016-01-29

FNET TCP/IP stack: Version 3.0.0 released

Version 3.0.0 change log:
- Released under the Apache License Version 2.0 (https://en.wikipedia.org/wiki/Apache_License). This is more permissible license than previous one and compatible with GPL 3.0.
- Added possibility to run several instances of DHCP client for multi-interface systems, controlled by the FNET_CFG_DHCP_MAX parameter.
- Added support of the Intel HEX file format by the TFTP Boot-loader (enabled by FAPP_CFG_TFTP_RX_HEX/FAPP_CFG_TFTP_TX_HEX). Thanks to Michal Hanak.
- Added support of IPv4 link-local (169.254/16 prefix) unicast and broadcast as destination address, according to RFC3927.
- Added scope_id to IPv4 socket address structure (same as for IPv6), to eliminate IPv4 address ambiguity in multi-home systems.
- Changed IPv4 multicast group ip_mreq.imr_interface from Interface IPv4 address to Interface Index (same as for IPv6).
- Added fnet_scope_id_t type.
- Added the default-interface parameter to the FNET application parameter get/set list.
- Added FNET_CFG_<interface>_NAME configuration parameter.
- Added fnet_rand() pseudo-random generator. Thanks to Catalin Petrescu.
- Moved port-clock enabling from Kinetis start-up to the driver initialization code.
- Added FNET_CFG_CPU_VECTOR_PRIORITY_MAX configuration parameter.
- Renamed FNET_FS_DIR, FNET_FS_FILE types to fnet_fs_dir_t, fnet_fs_file_t.
- Fixed potential spurious retransmission issue in TCP. Thanks to Vinay.
- Fixed loop-back interface.
- Fixed fnet_isr_vector_init().
- Fixed FBENCH tool stuck on during UDP sending.
- Other minor changes.... read more

Posted by Andrey Butok 2015-12-03

FNET Embedded TCP/IP stack contributed to future versions of ARM mbed OS

Good news;)

The FNET Embedded TCP/IP stack (http://fnet.sourceforge.net/) officially contributed to future versions of ARM mbed: http://media.freescale.com/investor-relations/press-releases/2015/09-10-2015-023151109.aspx

  • “Wireless connectivity, combined with TCP/IP, is the lifeblood of the Internet of Things, and Freescale’s FNET TCP/IP software will serve as the connectivity heart of the ARM mbed OS architecture,” said Zach Shelby, vice president of marketing, IoT business, ARM. ... read more
Posted by Andrey Butok 2015-09-14

FNET TCP/IP stack: Version 2.9.0 released

Version 2.9.0 change log:
-Added fnet_size_t, fnet_index_t, fnet_bool_t, fnet_time_t fnet_uint32_t, fnet_uint16_t and fnet_uint8_t and other types.
-Fixed "MISRA-C :2004 6.3 Typedefs that indicate size and signedness should be used in place of the basic types."
-Fixed "MISRA-C :2004 10.1 The value of an expression of integer type shall not be implicitly converted to a different underlying type ..."
-Fixed "MISRA-C :2004 11.1 Conversions shall not be performed between a pointer to a function and any type other than an integer type."
-Fixed "MISRA-C :2004 12.5 The operands of a logical && or || shall be primary-expressions."
-Fixed "MISRA-C :2004 12.7 Bitwise operators shall not be applied to operands whose underlying type is signed."
-Fixed "MISRA-C :2004 14.6 For any iteration statement there shall be at most one break statement used for loop termination."
-Fixed "MISRA-C :2004 14.9 An if (expression) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement or another if statement."
-Fixed "MISRA-C :2004 19.6 #undef shall not be used"
-Added "extern C" to header files.
-Replaced SOCKET_ERROR and SOCKET_INVALID by FNET_ERR.
-Replaced SOCKET type by fnet_socket_t.
-New configuration parameter:?FNET_CFG_SOCKET_BSD_NAMES enables/disables BSD Socket API names.
-Reworked shell service:
-Added fnet_shell_switch().
-Removed fnet_shell_cmd_type_t.
-Removed support of obsolete MCF52235.
-Other changes.... read more

Posted by Andrey Butok 2015-09-14

FNET TCP/IP stack: Version 2.8.1 released

Version 2.8.1 change log:
- Added KDS 3.0 support.
- Fixed "MISRA-C 2004 15.2 An unconditional break statement shall terminate every non-empty switch clause."
- Redraw the FNET Top View diagram.
- Other minor changes.

Best regards,
Andrey Butok

Posted by Andrey Butok 2015-08-03

FNET TCP/IP stack: Version 2.8.0 released

Version 2.8.0 change log:
- Added possibility to get a DNS resolved host-name TTL. Improved fnet_dns_handler_resolved_t.
- Fixed "MISRA-C:2004 10.5 if the bitwise operators ~ and << are applied to an operand of underlying type unsigned char or unsigned short, the result shall be immediately cast to the underlying type of the operand."
- Fixed "MISRA-C:2004 10.6 A U suffix shall be applied to all constants of unsigned type."
- Fixed "MISRA-C:2004 12.6 The operands of logical operators should be effectively Boolean."
- Fixed "MISRA-C:2004 12.9 The unary minus operator shall not be applied to an expression whose underlying type is unsigned."
- Fixed "MISRA-C:2004 12.10 The comma operator shall not be used."
- Fixed "MISRA-C:2004 13.1 Assignment operators shall not be used in expressions that yield a Boolean value."
- Fixed "MISRA-C:2004 13.5 The three expressions of a for statement shall be concerned only with loop control."
- Fixed "MISRA-C:2004 14.3 Before preprocessing, a null statement shall only occur on a line by itself."
- Fixed "MISRA-C:2004 14.8 The statement forming the body of a switch, while, do� while or for statement shall be a compound statement."
- Fixed "MISRA-C:2004 14.10 All if ... else if constructs shall be terminated with an else clause."
- Fixed "MISRA-C:2004 15.3 The final clause of a switch statement shall be the default clause."
- Fixed "MISRA-C:2004 16.3 Identifiers shall be given for all of the parameters in a function prototype declaration."
- Fixed "MISRA-C:2004 16.4 The identifiers used in the declaration and definition of a function shall be identical."
- Fixed "MISRA-C:2004 16.5 Functions with no parameters shall be declared and defined with the parameter list void."
- Fixed "MISRA-C:2004 19.11 All macro identifiers in preprocessor directives shall be defined before use."
- Fixed "MISRA-C:2004 19.15 Precautions shall be taken in order to prevent the contents of a header file being included twice."
- Fixed "MISRA-C:2004 20.2 The Names of Standard Library macros, objects and functions shall not be reused."
- Fixed MPC Green Hills compiler warning, thanks to Patrice Cavin.... read more

Posted by Andrey Butok 2015-06-18

FNET TCP/IP stack: Version 2.7.5 released

Version 2.7.5 change log:
- Fixed compilation error for Classical CW.
- Fixed compilation warnings for KDS 2.0.
- Fixed "MISRA-C:2004 2.2 Source code shall inly use ISO9899:1990 'C' style comments."
- Fixed "MISRA-C:2004 2.4 Sections of code should not be 'commented out'".
- Fixed "MISRA-C:2004 4.1 Only those escape sequences that are defined in the ISO C standard shall be used".
- Fixed "MISRA-C:2004 5.2 Identifiers in an inner scope shall not use the same name as an identifier in an outer scope, and therefore hide that identifier".
- Fixed "MISRA-C:2004 8.1 Functions shall have prototype declaration and the prototype shall be visible at both the function definition and call ".
- Fixed "MISRA-C:2004 8.3 For each function parameter the type given in the declaration and definition shall be identical, and the return types shall also be identical".... read more

Posted by Andrey Butok 2015-05-22

FNET TCP/IP stack: Version 2.7.4 released

Version 2.7.4 change log:
- Fixed potential crash in checksum calculation, thanks to Patrice Cavin.
- Fixed compilation error of boot example in KDS 2.0, K64.
- Fixed issue of the erased memory check.
- Added FAPP_CFG_CHECK_FLASH_BEFORE_WRITE enable/disables checking of the flash memory if is erased before write.
- Added MPC5744P configuration, thanks to Patrice Cavin.

Best regards,
Andrey Butok

Posted by Andrey Butok 2015-05-06

FNET TCP/IP stack: Version 2.7.3 released

Version 2.7.3 change log:
-Added handling of ICMPv6 errors by transport protocols.
-Fixed fnet_inet_ptos(), reported by Kiyoshi
-Fixed checksum calculation, reported by Abhilash.
-Fixed SRAM start address for K64, reported by Kiyoshi.
-Fixed possible flash write error for K60N.
-Fixed KDS 2.0 compilation issue of assembler code.

Best regards,
Andrey Butok

Posted by Andrey Butok 2015-04-23