Embedded TCP/IP stack: FNET Key Features

FNET

FNET Key Features

The core element of the FNET Project is the TCP/IP stack.

The FNET TCP/IP stack enables to connect an embedded system to a TCP/IP network. This stack is implemented as a stand-alone software library for 32-bit MCUs.
It is modular, portable, and written in the C programming language with some platform-specific optimization in assembler. It is distributed in the form of source code, so the compile-time optimizations and configuration are possible (actually, it is the preferred way to configure stack features).

fnet_topview.png
FNET Top View
The stack provides following protocols and services:
  • Supported Platforms:
    • ARM Cortex-M4, Kinetis:
      • MK64FN1M (FRDM-K64F board)
      • MK66FN2M (FRDM-K66F board)
      • MK6DN512 (TWR-K60D100M board)
    • Older Platforms (not supported):
      • ColdFire: MCF51CN128, MCF5282, MCF52235, MCF54418, MCF52259
      • PowerPC: MPC5668G, MPC5566, MPC564xBC, MPC5744P, S32R274.
      • Kinetis: MK70FN1M, MK60FN1M.
      • LPC: LPC54628.
  • Supported Compilers:
    • IAR: Embedded Workbench for ARM, version 7.8
    • GCC: Kinetis Design Studio, version 3.0
  • Bare-metal TCP/IP stack. No underlying RTOS is required, although it can be used with it. FreeRTOS example is provided.
  • Non-blocking Socket API (DGRAM, STREAM, RAW).
  • Core Protocols:
    • TCP (Transmission Control Protocol).
    • UDP (User Datagram Protocol).
    • IPv4.
      • ICMPv4 (Internet Control Message Protocol).
      • IGMP (Internet Group Management Protocol).
      • ARP (Address Resolution Protocol).
    • IPv6.
      • Passed the "IPv6 Ready Logo" Phase-2 IPv6 Core Protocols Conformance Tests, for host.
      • ICMPv6 (Internet Control Message Protocol).
      • MLDv1 (Multicast Listener Discovery).
      • Neighbor Discovery for IPv6.
      • IPv6 Stateless Address Autoconfiguration.
      • Path MTU Discovery for IPv6
  • Network Interfaces:
    • Ethernet (FEC/ENET module).
    • Wi-Fi (QCA4002 module).
    • Loopback.
  • Services:
    • HTTP server:
      • HTTP/1.0 or HTTP/0.9 protocols.
      • GET and POST requests.
      • CGI and SSI.
      • Basic access authentication.
      • HTTP over TLS (HTTPS).
    • TELNET server.
    • DHCPv4 client and server.
    • Auto-IP service. Passed "Phase 1, Link-Local Address Allocation", Bonjour Conformance Test suite Version 1.3.1.
    • DNS client/resolver.
    • Link-Detection service.
    • Multicast DNS (mDNS) "Bonjour" Server/Responder.
    • LLMNR Server/Responder.
    • PING service.
    • SNTP client.
    • TFTP server and client. Both Read and Write requests are supported.
    • TLS using mbedTLS library.
    • ROM File System.
    • On-chip Flash Memory driver.
    • Command line shell.
    • Serial driver.
  • Tools:
  • Applications:
  • Source-code based User documentation, by Doxygen.
  • RFC list supported by the FNET stack:
    • RFC 768 - UDP.
    • RFC 791 - IPv4.
    • RFC 792 - ICMPv4.
    • RFC 793 - TCP.
    • RFC 826 - ARP.
    • RFC 854 - Telnet server.
    • RFC 951 - BOOTP client.
    • RFC 6762 - Multicast DNS server.
    • RFC 1035 - DNS resolver.
    • RFC 1350 - TFTP client and server.
    • RFC 1945 - HTTP v 1.0 server.
    • RFC 1981 - Path MTU Discovery for IPv6.
    • RFC 2131 - DHCP IPv4 client and server.
    • RFC 2236 - IGMPv2.
    • RFC 2460 - IPv6.
    • RFC 3927 - Dynamic Configuration of IPv4 Link-Local.
    • RFC 4330 - Simple Network Time Protocol (SNTP) Version 4.
    • RFC 4861 - Neighbor Discovery for IPv6.
    • RFC 4862 - IPv6 Stateless Address Autoconfiguration.
    • RFC 4443 - ICMPv6.
    • RFC 4795 - Link-Local Multicast Name Resolution (LLMNR) server.

© 2005-2018 by Andrey Butok. http://fnet.sourceforge.net