FNET TCP/IP stack: Version 0.5.0 released.
FNET Home page: http://fnet.sourceforge.net/
Please, submit your feature requests and feedbacks here:
Please, submit your bug reports here:
FNET brief information:
The FNET is a free, open source software project (under GNU GPLv3) for building embedded communication software using the Freescale processors.
The stack provides following protocols and services:
* Supported platforms:
- Reindeer - MCF5282 (M5282EVB).
- Kirin2 - MCF52235 (M2235EVB).
- Kirin3 - MCF52259 (M2259EVB).
- Lasko - MCF51CN128 (TWR-MCF51CN).
- Other Freescale platforms to be supported soon.
* Available as:
- Stand-alone version. No underlying RTOS is required, although it can be used with it.
* Supported Compilers:
- Freescale CodeWarrior for ColdFire Version 7.1.
- Freescale CodeWarrior for Microcontrollers Version 6.2.
* BSD-style Socket layer API
- User Datagram Protocol (UDP).
- Transmission Control Protocol (TCP).
- Internet Protocol (IPv4).
- Internet Control Message Protocol (ICMP).
- Address Resolution Protocol (ARP).
* Network Interfaces:
- Ethernet interface.
- Loopback interface.
- HTTP/0.9 server. Both SSI and CGI are supported.
- DHCP client.
- TFTP client.
- Static File System.
- CFM Flash driver.
- GUI File System Generation Tool.
- TFTP Bootloader.
- Shell Application.
* Doxygen User Documentation.
Changes in 0.5.0 (since last public version):
- Added TFTP client.
- Added Coldfire Flash Module (CFM) driver.
- Added FNET TFTP Bootloader.
- Fixed DHCP client.
- Updated Shell Demo application. Application parameters are saved in the flash.
- Improved Shell library. Added blocking-command and multi-word parameter features.
- A lot of other changes and fixes.
I have downloaded the 2.1.1 version. I have a problem whit the ping comand when i send it from my terminal program. It puts: "Request timed out" but when i do from my command-line environment on the host PC, it goes right.
Any idea of what is happening??
Describe here all your settings (address, netmask etc.) and other conditions (via router, direct connection).
FNET 2.1.0 released
- 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.
Any contribution to the FNET project is appreciated.:smileyhappy:
- Continue improvement of the IPv6 support. "IPv6 Ready Logo" Phase II (Golden) certification, during 2013.
- Add new platforms. K70 and MPC are top candidates.
thank you very much for your work. Since 3 years, I use FNET stack on MCF52233 microcontroller when I have ethernet project.
For a new project, we will need SNMP. Do you plan to add this service to FNET stack during 2013 ?
Thanks for answer,
LES ETUDES ELECTRONIQUES
Implementation of the SNMP server is in my wish list, but there is no concrete plan or schedule.
FNET does not have sponsor => the development is not regular => no concrete plans.
For your new project, please do not rely on availability of FNET SNMP server during 2013.
In any case, your possible contribution to the FNET project is welcome.
I'm successfully using FNET on a Kinetis K60; I need to make my embedded device discoverable on every possible network class, even if built-in programmed IP Address, Subnet Mask and Gateway aren't matched with that target network (example: factory programmed IP,MASK,GW in fnet_user_config.h and the module installed in a network with different setup).
Do you have any hints for me? I think I need a sort of uPnP implementation.
Thanks in advance for your help. :smileyhappy:
FNET 2.0.0 released (http://fnet.sourceforge.net):
- 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 applications 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.
- New user API functions:
- 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.
- FBENCH 2.0.1 released (http://fbench.sourceforge.net):
- "IPv6 Ready" Phase II (Golden) certification, during 2013.
Yes. You may initialize & start & use it without calling fapp_main().
The fapp_main() is just only demo application, that is used mainly as reference or example of the FNET usage.
You may start and use any FNET service from your code. But it is always better to look at the demo source code to avoid many mistakes.
I'm using FNET 1.1.2 on MCF51CN128, because I need to develop a serial to ETH converter to send over UDP some strings read from serial port.
Is it possible and how can I do to send UDP packet to multicast group?
>> Is it possible and how can I do to send UDP packet to multicast group?
In current FNET 1.1.2, you may send multicast UDP packets without any changes, just use the multicast group address (instead of unicast) as destination for sending function. For stack, it is no matter if it is unicast or multicast (destination). The Etherenet driver detects the muticast IP address and generates & places multicast MAC address into output frame.
Current 1.1.2 version does not have support of joining/leaving of multicast group
=> so you are not able to receive multicast packets in FNET.
Fortunately, now I am working on full multicast support and it will be available in the next FNET version 1.2.
It will have:
- IP_MULTICAST_TTL socket option, which defines TTL for outgoing multicast packets.
- IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP socket options,
which joins/leaves IP multicast-group membership.
- Basic support of IGMP protocol.
- Other changes.
Actually it will be ready soon, and if you want to test/try it earlier just write to Andrey.Butok@freescale.com.
I tried to send udp packet to address 22.214.171.124 and I see with wireshark multicast bit flag is active, but the receiver does not receive the packet. I attach capture file.
What is wrong?
The FNET sends multicast datagram (based on your .txt.)
So the issue somewhere in receiving application or stack – no help from me.
Be sure that your receiving-socket has joined the multicast group on the correct interface.
i include the stack into my project and create the fnet_user_config.h in the source folder.
now iam getting the error
"the file 'fnet_config.h' cannot be opened fnet_arp.c"
the file exists in the FNET_STACK folder. Shall i move it to another place ?
I guess you are using CW10.x (or other compiler), as CW7.2 handles it very well.
As your project does not see some header files, it means you should control your project settings to be sure that all paths to header files are there and are correct (it is compiler/IDE dependent).
I try to change/add the FNET folder for the header.
Now I got on every include (from fnet files) the information
what wrong ? I am trying for hours and hours but no difference
I am using CW 10.x.
Further I get the warning
Cannot open file fnet.comp.asm.h
include: Can't continue