Martin
I would recommend using TargetTCP from Blunk Microsystems.
Blunk Microsystems' embedded TCP/IP protocol stack, TargetTCPT, is a fast,
reliable, re-entrant TCP/IP protocol stack implementation designed
specifically for high-performance embedded networking. TargetTCPT has been
extensively tested and demonstrated interoperable with Windows, UNIX, and
other TCP/IP protocol stacks.
TargetTCPT is a robust, high performance product that is exceedingly well
commented. In customer benchmarks, it has performed much faster than both
the Linux and other commercial TCP/IP protocol stacks. Also, the code has a
small footprint and is well suited to memory constrained environments.
TargetTCPT is written in 100% ANSI C and is designed to be portable. It is
developed and maintained on TargetOST, Blunk Microsystems' full-featured
royalty-free real time operating system, and has been used with several
others, including pSOS and iTRON.
TargetTCPT is shipped as royalty-free, Site licensed source code. The code
may be used on projects that are directly managed from the licensed site.
Use by off-site contractors and employees working from home offices is
specifically allowed.
a.. RFC-compliant with a full protocol suite. Supports TCP, UDP, IP, ICMP,
multicasting, IGMPv2, ARP, AutoIP, Ethernet, PPP (with CHAP, CHAT, and PAP),
and Wi-Fi. Includes servers for FTP, RARP, and Telnet. Includes clients for
DNS, DHCP, RARP, SNMPv1 (with integrated MIB II agent), and TFTP.
a.. Standard Berkeley sockets application program interface with
enhancements:
a.. connect(), recv(), and send() timeouts can be set by setsockopt().
b.. MSG_WAITALL flag makes recv() block until all requested bytes have
been received.
c.. setsockfunc() installs a socket callback function, supporting event
driven programming and allowing a single task to service both socket and
other events.
d.. setsockopt() IP_TOS and IP_TTL options set the IP header
type-of-service and time-to-live values on a per socket basis.
a.. Supports RISC processors without requiring an extra data copy within the
Ethernet driver to align packets. The IP, TCP, and UDP headers are 4-byte
aligned within the stack, allowing fast access to the 32-bit fields in these
structures. Application data remains unaligned, eliminating an extra copy
required by Berkeley derived implementations.
a.. Using the Berkeley sockets API, only one copy of application data is
performed. This applies to inbound and outbound transfers using both UDP
datagrams and TCP streams. A zero-copy API is provided that eliminates the
copy associated with the sockets API.
a.. Supports unnumbered serial links (RFC1716) to avoid having to waste IP
addresses or create artificial subnets on targets with multiple network
interfaces.
a.. Supports TCP out-of-band data and urgent data mark. Both socket callback
functions and select() are used to notify applications when a connected peer
has entered urgent mode.
a.. Easy to administer. The DHCP client may be configured to use gateway and
DNS server addresses supplied by the server. The RARP client may be
configured to use the RARP server as a default gateway. PPP connections can
be configured to be a default gateway and to request a DNS server address
from the remote peer.
a.. Integrated. The Telnet server is integrated with the TargetOST command
line monitor, allowing full access to built-in commands and easy
extensibility. The FTP server is integrated with TargetFFST, Blunk
Microsystems' embedded flash file system. The TFTP client is integrated with
the TargetOST runtime library, allowing access to remote files via fopen(),
and with the TargetOST loader, which accepts both ELF and S-record formats.
a.. High Performance. No data copies are performed within the stack.
Matching of IP fragment lists, ARP address records, and TCP sockets is done
with a fast hashing function. The 16-bit checksum for TCP and UDP is
calculated in assembly language (for PowerPC, ColdFire, and 68K). Access to
the assembly language "add with carry" instruction enables the calculation
to be done with fast 32-bit accesses.
a.. Clearly documented network driver interface supports concurrent use of
multiple network interfaces. Ethernet and PPP drivers for the MCF5272,
MC68360, MPC860, DP83815, 82559, and other controllers are available
separately. Blunk Microsystems provides low cost bids on custom drivers.
a.. Built-in TCP/IP protocol decoder. When enabled by a compile-time flag, a
short summary of every received or transmitted packet is printed to stdout
on an ongoing basis.
a.. Compact and configurable. Applications typically require approximately
30 KB of code from the TargetTCPT library and can be configured to use as
little as 32 KB of RAM data.
a.. Shipped with four sample applications: an RFC868 time client, a chargen,
discard, and echo client, a chargen, discard, and echo server, and an HTML
client that cycles through a list of URLs, downloading each site's home
page.
a.. Developed using TargetOST, Blunk Microsystems' real-time operating
system, the source code is 100% ANSI C and is easily ported to both other
real-time kernels and to polling environments that do not use a kernel. A
pSOS port is provided for the Trimedia processor.
a.. Integrated with CodeWarriorT, the embedded IDE from Metrowerks.
CodeWarriorT includes an integrated source level de*, compiler,
assembler, linker, editor, and project manager (make). The TargetTCPT sample
applications are supplied with CodeWarriorT project files.
a.. Site licensed. Includes source code, User's manual, sample applications,
and one year of technical support.
a.. The price is still just $9,800.00. No royalties are charged and
TargetTCP may be used on an unlimited number of projects at the licensed
site.
Blunkmicro Systems - Major Account Sales
46 Front Street - Santa Cruz, CA 95060
(831) 459 7673 direct (831) 459 9316 fax
We develop, market and support the Target line of real-time development
solutions
for embedded platforms. Specifically, we ship TargetOS, TargetFFS,
TargetTCP,
TargetSNMP, and Motorola's award winning Codewarrior tools for a variety of
embedded microprocessors. CodeWarrior's cross-platform tools support
assembly,
C, C++, and Java programming languages.
CodeWarrior is used by more than 200,000 developers in 80 countries to
create platforms and applications for both desktop and embedded systems from
a single, unique Integrated Development Environment.
Visit www.metrowerks.com/embedded for more information on CodeWarrior for
embedded!
============================================================================
==========
"Speed is fine but accuracy is final" - Wyatt Earp -
Quote:> Hi to all,
> I am locking for a concept how to best implement an TCP/IP stack under a
> RTOS. I've already searched the internet about this topic but I couldn't
> find any paticular descriptions concerning this problem. I already have an
> idea how it could eventually work In my opinion it would be the best to
> implement the stack as a user task who gets the transfer request via a
> mailbox. The advantage is if multiple request are transmitted to the
> listen_task dynamically a new task is going to be created and responsible
> for the transfer. After the transfer is completed the task is going to be
> terminated. I am not sure if that will work, so it would be great if
anyone
> who does have experience in that could give me a hint. It is only for
privat
> use.
> Thank a lot
> Martin