mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-04-16 08:43:17 +00:00
Removed the old lwIP homepage from the example web server filesystem and replaced it with a simple web page with short information about the lwIP project. Previously the web pages in the example web server was a large portion of the final .tar.gz file.
This commit is contained in:
parent
1be416fe0e
commit
ef6b7099ba
@ -1,191 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - Documentation</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Documentation]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>Documentation</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="os.html">Using lwIP with and without an operating
|
|
||||||
system</a>.
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<li>The lwIP source archive contains documentation on how to port lwIP
|
|
||||||
and how to write applications using the native API. They can also be
|
|
||||||
found here: <a href="doc/sys_arch.txt">sys_arch.txt</a>, <a
|
|
||||||
href="doc/rawapi.txt">rawapi.txt</a>.
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<li>Selected messages from the mailinglist: <a
|
|
||||||
href="maillist/msg00231.html">lwIP memory buffers and allocators</a>,
|
|
||||||
<a href="maillist/msg00227.html">Threads, semaphores and raw interface
|
|
||||||
question</a>, <a href="maillist/msg00242.html">Threads, semaphores and
|
|
||||||
raw interface question [2]</a>. <a href="maillist/msg00460.html">Some notes on using lwIP with the development enviroment ADS
|
|
||||||
1.1 from ARM.</a>
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<li>A report describing the design and implementation of an old
|
|
||||||
version of lwIP. The algorithms and data structures used both in the
|
|
||||||
protocol implementations and in the sub systems such as the memory and
|
|
||||||
buffer management systems are described. Also included in this report
|
|
||||||
is a reference manual for the lwIP sequential API and some code
|
|
||||||
examples of using lwIP. <a href="doc/lwip.pdf">PDF</a>, <a
|
|
||||||
href="doc/lwip.ps.gz">.ps.gz</a>.
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<li>Slides from a presentation that talks a bit about lwIP: <a
|
|
||||||
href="doc/pres.pdf">PDF</a> (86k), <a href="doc/pres.ps.gz">.ps.gz</a>
|
|
||||||
(36k).
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
For more documentation regarding lwIP and a proxy architecture to
|
|
||||||
support TCP/IP communication for small clients, look in <a
|
|
||||||
href="/~adam/publications.html">Adam Dunkels' masters thesis</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
The <a href="mailinglist.html">lwIP mailing list</a> can be used to
|
|
||||||
discuss lwIP.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
For questions or suggestions, please contact the author at <a
|
|
||||||
href="mailto:Adam Dunkels <adam@sics.se>">Adam Dunkels
|
|
||||||
<adam@sics.se></a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:01 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Documentation]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,232 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - Download</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Download]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>Download</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
lwIP is avaliable for download provided that you read and accept <a
|
|
||||||
href="licence.html">this</a> BSD-style license.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Release versions</h3>
|
|
||||||
<p align="justify">
|
|
||||||
The latest version is 0.5.3. (Older versions are also provided for an
|
|
||||||
unknown reason.)
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Version 0.5.3 (latest): <a
|
|
||||||
href="download/?f=lwip-0.5.3.tar.gz">lwip-0.5.3.tar.gz</a>
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<font size="-2">
|
|
||||||
Obsolete versions: <a
|
|
||||||
href="download/?f=lwip-0.5.2.tar.gz">lwip-0.5.2.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.5.1.tar.gz">lwip-0.5.1.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.5.0.tar.gz">lwip-0.5.0.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.4.2.tar.gz">lwip-0.4.2.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.4.1.tar.gz">lwip-0.4.1.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.4.tar.gz">lwip-0.4.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.3.1.tar.gz">lwip-0.3.1.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.3.tar.gz">lwip-0.3.tar.gz</a>
|
|
||||||
<a
|
|
||||||
href="download/?f=lwip-0.2.tar.gz">lwip-0.2.tar.gz</a>
|
|
||||||
</font>
|
|
||||||
<br>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Development version</h3>
|
|
||||||
<p align="justify">
|
|
||||||
The latest development code from the CVS is also avaliable <a
|
|
||||||
href="download/?f=lwip-cvs.tar.gz">here</a>. Note that this code may
|
|
||||||
very well be unstable and might not even compile.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Source code online</h3>
|
|
||||||
<p align="justify">
|
|
||||||
Joe MacDonald has put an HTML version of the latest lwIP source code
|
|
||||||
online at <a
|
|
||||||
href="http://www.deserted.net/lwIP/">http://www.deserted.net/lwIP/</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Ports</h3>
|
|
||||||
<p align="justify">
|
|
||||||
Florian Shulze has ported lwIP to DJGPP/MS-DOS and to Visual C++
|
|
||||||
6.0/Win32. They can be downloaded <a
|
|
||||||
href="http://homepages.fh-giessen.de/~hg10836/dev/djgpp/lwipdjgpptest-0.1.zip">here</a>
|
|
||||||
(DJGPP/MS-DOS) and <a
|
|
||||||
href="http://homepages.fh-giessen.de/~hg10836/crowproductions/dev/lwip-win32-msvc-0.1.zip">here</a>
|
|
||||||
(Visual C++ 6.0/Win32).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Add-ons/drivers/applications</h3>
|
|
||||||
|
|
||||||
<h4>DHCP client</h4>
|
|
||||||
<p align="justify">
|
|
||||||
Leon Woestenberg from Axon Digital Design B.V. has written a CS8900a
|
|
||||||
network interface driver and is currently developing a DHCP client for
|
|
||||||
lwIP. They can both be found <a
|
|
||||||
href="http://www.esrac.ele.tue.nl/~leon/lwip/">here</a>. The plan is
|
|
||||||
to eventually integrate Leon's DHCP client in the main lwIP
|
|
||||||
distribution.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>IGMPv2 implementation</h4>
|
|
||||||
<p align="justify">
|
|
||||||
Steve Reynolds of Citel Technologies Ltd. has donated his IGMPv2
|
|
||||||
implementation for lwIP to the community. It is avaliable for download
|
|
||||||
<a href="download/igmpfiles.zip">here</a> (note that the copyright and
|
|
||||||
license differs slightly from lwIP - read the license in the igmp.c
|
|
||||||
file). The plan is to integrate his code into the main lwIP
|
|
||||||
distribution.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>Alternative BSD socket layer</h4>
|
|
||||||
<p align="justify">
|
|
||||||
Paul Sheer has incorporated lwIP into his PaulOS system and has
|
|
||||||
written an alternative BSD socket layer. It is avaliable for download
|
|
||||||
<a href="download/bsdsocket.c">here</a>. It is copyright Paul Sheer
|
|
||||||
and licensed under the <a
|
|
||||||
href="http://www.gnu.org/licenses/gpl.html">GNU GPL</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:06 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Download]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
44
proj/unixsim/apps/fs/index.html
Normal file
44
proj/unixsim/apps/fs/index.html
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head><title>lwIP - A Lightweight TCP/IP Stack</title></head>
|
||||||
|
<body bgcolor="white" text="black">
|
||||||
|
|
||||||
|
<table width="100%">
|
||||||
|
<tr valign="top"><td width="80">
|
||||||
|
<a href="http://www.sics.se/"><img src="img/sics.gif"
|
||||||
|
border="0" alt="SICS logo" title="SICS logo"></a>
|
||||||
|
</td><td width="500">
|
||||||
|
<h1>lwIP - A Lightweight TCP/IP Stack</h1>
|
||||||
|
<p>
|
||||||
|
The web page you are watching was served by a simple web
|
||||||
|
server running on top of the lightweight TCP/IP stack <a
|
||||||
|
href="http://www.sics.se/~adam/lwip/">lwIP</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
lwIP is an open source implementation of the TCP/IP
|
||||||
|
protocol suite that was originally written by Adam Dunkels
|
||||||
|
of the Swedish Institute of Computer Science but now is
|
||||||
|
being actively developed by a team of developers
|
||||||
|
distributed world-wide. Since it's release, lwIP has
|
||||||
|
spurred a lot of interest and has been ported to several
|
||||||
|
platforms and operating systems. lwIP can be used either
|
||||||
|
with or without an underlying OS.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The focus of the lwIP TCP/IP implementation is to reduce
|
||||||
|
the RAM usage while still having a full scale TCP. This
|
||||||
|
makes lwIP suitable for use in embedded systems with tens
|
||||||
|
of kilobytes of free RAM and room for around 40 kilobytes
|
||||||
|
of code ROM.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
More information about lwIP can be found at the lwIP
|
||||||
|
homepage at <a
|
||||||
|
href="http://www.sics.se/~adam/lwip/">http://www.sics.se/~adam/lwip/</a>.
|
||||||
|
</p>
|
||||||
|
</td><td>
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -1,169 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - lwIP source code licence</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>lwIP source code licence</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
Copyright (c) 2001, Swedish Institute of Computer Science.
|
|
||||||
All rights reserved.<br>
|
|
||||||
<br>
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:<br>
|
|
||||||
<ol>
|
|
||||||
<li> Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.<br>
|
|
||||||
<br>
|
|
||||||
<li> Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the
|
|
||||||
distribution.<br>
|
|
||||||
<br>
|
|
||||||
<li> Neither the name of the Institute nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from
|
|
||||||
this software without specific prior written permission. <br>
|
|
||||||
</ol>
|
|
||||||
<br>
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS `AS IS' AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGE. <br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:01 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,266 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - Links</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Links]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>Links</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lwIP pages:
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.esrac.ele.tue.nl/~leon/lwip/">Leon Woestenberg's lwIP page</a>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Companies using lwIP in their products:
|
|
||||||
<ul>
|
|
||||||
<li>UK based <a href="http://www.tangentdevices.co.uk/">Tangent Devices Ltd</a> are incorporating lwIP in their film
|
|
||||||
and video post-production equipment.
|
|
||||||
<li><a href="http://www.axon.tv">Axon Digital Design BV</a> in The
|
|
||||||
Netherlands is merging lwIP with their current IP stack for use in the
|
|
||||||
Synapse modular broadcasting system.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Projects using lwIP:
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://www.cdt.luth.se/projects/arena/">The ARENA Project</a> - Hockey players equipped with pulse and breathing sensors running lwIP.<br>
|
|
||||||
<li><a href="http://bart.sm.luth.se/eis2001/">The Embedded Internet Systems 2001 Student Project</a> - Flow meter and belt tension sensors
|
|
||||||
running lwIP.<br>
|
|
||||||
<li><a href="http://dcdev.allusion.net/">KOS</a> - The KOS operating system for
|
|
||||||
Sega Dreamcast uses lwIP.<br>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Other small TCP/IP implementations:
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://dunkels.com/adam/uip/">uIP</a> - A very small TCP/IP
|
|
||||||
implementation, suitable for systems with hundreds of bytes free RAM
|
|
||||||
and a few kilobytes of free code space.<br>
|
|
||||||
<li><a href="http://ucip.sourceforge.net/">uC/IP</a> - uC/IP is a BSD-based
|
|
||||||
TCP/IP protocol stack for microcontrollers.<br>
|
|
||||||
<li><a href="http://liquorice.sourceforge.net">Liquorice</a> - Liquorice
|
|
||||||
includes a TCP/IP stack.<br>
|
|
||||||
<li><a href="http://www.nenie.org/cpcip/">CPC/IP</a> - A TCP/IP stack for
|
|
||||||
Amstrad CPCs.<br>
|
|
||||||
<li><a href="http://lng.sourceforge.net/">LUnix</a> - LUnix contains a small
|
|
||||||
TCP/IP stack.<br>
|
|
||||||
<li><a href="http://www.sweetcherrie.com/jolz64/jos/">JOS</a> - JOS includes a
|
|
||||||
TCP/IP implementation.<br>
|
|
||||||
<li><a href="http://www.csonline.net/bpaddock/tinytcp/default.htm">TinyTCP</a> - A very slim
|
|
||||||
TCP, IP, and FTP implementation.<br>
|
|
||||||
<li><a href="http://kyllikki.fluff.org/hardware/wwwpic2/">WWWpic2</a> - Small
|
|
||||||
HTTP/TCP/IP implementation for a PIC.<br>
|
|
||||||
<li><a href="http://www.rmbeales.fsnet.co.uk/files/html/picserver/picservd.htm">PIC Web Server</a> - Small HTTP/TCP/IP/SLIP PIC implementation.<br>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Very small web servers:
|
|
||||||
<ul>
|
|
||||||
<li><a href="http://world.std.com/~fwhite/ace/">webACE</a> - World's Smallest
|
|
||||||
Web Server.<br>
|
|
||||||
<li><a href="http://www-ccs.cs.umass.edu/~shri/iPic.html">iPIC</a> - A Match
|
|
||||||
Head Sized Web Server.<br>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Related RFCs:
|
|
||||||
<ul>
|
|
||||||
<li>J. Postel, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc791.txt">Internet Protocol</a>, RFC791, September 1981.
|
|
||||||
<li>J. Postel, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc792.txt">Internet Control Message Protocol</a>, RFC792, September 1981.
|
|
||||||
<li>J. Postel, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc768.txt">User Datagram Protocol</a>, RFC768, August 1980.
|
|
||||||
<li>J. Postel, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc793.txt">Transmission Control Protocol</a>, RFC793, September 1981.
|
|
||||||
<li>D. D. Clark, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc813.txt">Window and Acknowledgement Strategy in TCP</a>, RFC813, July 1982.
|
|
||||||
<li>D. D. Clark, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc817.txt">Modularity and Efficiency in Protocol Implementation</a>, RFC817, July 1982.
|
|
||||||
<li>R. Braden, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc1122.txt">Requirements for Internet Hosts -- Communication Layers</a>, RFC1122, October 1989.
|
|
||||||
<li>T. Mallory and A. Kullberg, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc1141.txt">Incremental Updating of the Internet Checksum</a>, RFC1141, January 1990.
|
|
||||||
<li>A. Rijsinghani, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc1624.txt">Computation of the Internet Checksum via Incremental Update</a>, RFC1624, May 1994.
|
|
||||||
<li>R. Braden, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc1337.txt">TIME-WAIT Assasination Hazards in TCP</a>, RFC1337, May 1992.
|
|
||||||
<li>B. Carpenter, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc1958.txt">Architectural Principles of the Internet</a>, RFC1958, June 1996.
|
|
||||||
<li>M. Allman, V. Paxson and W. Stevens, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc2581.txt">TCP Congestion Control</a>, RFC2581, April 1999.
|
|
||||||
<li>S. Parker and C. Schmechel, <a
|
|
||||||
href="ftp://ftp.ietf.org/rfc/rfc2398.txt">Some Testing Tools for TCP Implementors</a>, RFC2398, August 1998.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
Related publications:
|
|
||||||
<ul>
|
|
||||||
<li>V. Jacobson. Congestion avoidance and control. In <i>Proceedings of
|
|
||||||
the SIGCOMM '88 Conference</i>, Stanford, California, August 1988.
|
|
||||||
<li>V. Jacobson. 4.3BSD TCP header prediction. <i>ACM Computer
|
|
||||||
Communications Review</i>, 20(2), April 1990.
|
|
||||||
<li>P. Karn and C. Partridge. Improving round-trip time estimates
|
|
||||||
in reliablie transport protocols. In <i>Proceedings of the SIGCOMM '87
|
|
||||||
Conference</i>, Stowe, Vermont, August 1987.
|
|
||||||
<li>J. Kay and J. Pasquale. Profiling and Reducing Processing
|
|
||||||
Overheads in TCP/IP. <i>IEEE/ACM Transactions of Networking</i>, 4(6), December 1996.
|
|
||||||
<li>L. Larzon, M. Degermark, and S. Pink. UDP Lite for
|
|
||||||
real-time multimedia applications. In <i>Proceedings of the IEEE
|
|
||||||
International Conference of Communications</i>, Vancouver, British
|
|
||||||
Columbia, Canada, June 1999.
|
|
||||||
<li>P. E. McKenney and K. F. Dove. Efcient demultiplexing of
|
|
||||||
incoming TCP packets. In <i>Proceedings of the SIGCOMM '92 Conference</i>, Baltimore, Maryland, August 1992.
|
|
||||||
<li>C. Partridge and S. Pink. A faster UDP. <i>IEEE/ACM Transactions
|
|
||||||
in Networking</i>, 1(4), August 1993.
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:02 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Links]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,187 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - Mailing list</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Mailing list]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>Mailing list</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
The lwIP mailing list is the place to discuss lwIP. All topics related
|
|
||||||
to lwIP, such as porting or using lwIP, writing device drivers or
|
|
||||||
application programs for lwIP can be discussed here.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Archives</h3>
|
|
||||||
<p align="justify">
|
|
||||||
Archives can be found <a href="maillist/">here</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Subscribe</h3>
|
|
||||||
<p align="justify">
|
|
||||||
To subscribe, send a mail to <a
|
|
||||||
href="mailto:majordomo@sics.se">majordomo@sics.se</a> with the message
|
|
||||||
<pre>
|
|
||||||
subscribe lwip
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
in the message body. The subject should be kept blank.
|
|
||||||
</p>
|
|
||||||
<p align="justify">
|
|
||||||
In a few minutes, you should receive a welcome message and some
|
|
||||||
information regarding the subscription, including instructions for
|
|
||||||
unsubscribing. Save those messages for future reference.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
You are now an lwIP mailing list subscriber!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Post</h3>
|
|
||||||
<p align="justify">
|
|
||||||
Posting to the lwIP mailing list is a simple as sending a mail to the
|
|
||||||
address <a href="mailto:lwip@sics.se">lwip@sics.se</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Unsubscribe</h3>
|
|
||||||
<p align="justify">
|
|
||||||
To subscribe, send a mail to <a
|
|
||||||
href="mailto:majordomo@sics.se">majordomo@sics.se</a> with the message
|
|
||||||
<pre>
|
|
||||||
unsubscribe lwip
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
in the message body. The subject should be kept blank.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:02 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
[Mailing list]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,225 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head><title>lwIP - A Lightweight TCP/IP Stack - OS vs non-OS</title></head>
|
|
||||||
|
|
||||||
|
|
||||||
<body bgcolor="white">
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td>
|
|
||||||
<center><h1>lwIP - A Lightweight TCP/IP Stack</h1></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
</td></tr>
|
|
||||||
<tr>
|
|
||||||
<td><center><h2>OS vs non-OS</h2></center>
|
|
||||||
</td></tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0"><tr>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td bgcolor="white" width="540">
|
|
||||||
|
|
||||||
<h2>Using lwIP with or without an operating system</h2>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
There has been a few questions about how lwIP can be used in a
|
|
||||||
standalone environment (i.e., an environment without a multi-threaded
|
|
||||||
operating system) lately. The purpose of this document is to describe
|
|
||||||
how lwIP is designed to be used with and without a multi-threaded
|
|
||||||
operating system.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<center><img src="os.png"></center>
|
|
||||||
|
|
||||||
<h3>The lwIP single-threaded core</h3>
|
|
||||||
<p align="justify">
|
|
||||||
The core of lwIP consists of the actual implementations of the IP,
|
|
||||||
ICMP, UDP, and TCP protocols, as well as the support functions such as
|
|
||||||
buffer and memory management. The core components are the only ones
|
|
||||||
that are needed when lwIP is to be run in a single-threaded (non-OS)
|
|
||||||
environment.
|
|
||||||
</p>
|
|
||||||
<p align="justify">
|
|
||||||
The core components can be viewed as a software library which has the
|
|
||||||
following interface:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><tt>ip_input(pbuf, netif)</tt>: Takes an IP packet and the incoming network
|
|
||||||
interface as arguments and does the TCP/IP processing for the packet.
|
|
||||||
<li><tt>tcp_tmr()</tt>: Should be called every 100 ms. Does all TCP
|
|
||||||
timer processing such as doing retransmissions.
|
|
||||||
</ul>
|
|
||||||
<p align="justify">
|
|
||||||
Because none of the core functions ever needs to block when run in a
|
|
||||||
single-threaded environment, the <tt>sys_arch</tt> (the operating
|
|
||||||
system abstraction layer) does not need to implement locking
|
|
||||||
semaphores or mailboxes. In future versions of lwIP, the dependancy of
|
|
||||||
the <tt>sys_arch</tt> will be removed in the single-threaded case.
|
|
||||||
</p>
|
|
||||||
<p align="justify">
|
|
||||||
A simple main loop for a single-threaded system might look
|
|
||||||
like this:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
while(1) {
|
|
||||||
if(poll_driver(netif) == PACKET_READY) {
|
|
||||||
pbuf = get_packet(netif);
|
|
||||||
ip_input(pbuf, netif);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(clock() - last_time == 100 * CLOCK_MS) {
|
|
||||||
tcp_tmr();
|
|
||||||
last_time = clock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<h3>lwIP in a multi-threaded system</h3>
|
|
||||||
<p align="justify">
|
|
||||||
lwIP is designed to be able to be run in a multi-threaded system with
|
|
||||||
applications running in concurrent threads. The model used in this
|
|
||||||
case is that all TCP/IP processing is done in a single thread. The
|
|
||||||
application thread communicate with the TCP/IP thread using the
|
|
||||||
sequential API.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<center><img src="threads.png"></center>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
The inter-thread communication is implemented in the two files
|
|
||||||
<tt>api_lib.c</tt> and <tt>api_msg.c</tt>. The former contains the
|
|
||||||
functions used by the application programs and the latter implements
|
|
||||||
the TCP/IP stack interface. A third file, <tt>tcpip.c</tt>, handles
|
|
||||||
incoming packets and timer events as described in the previous
|
|
||||||
section.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
When run in a multi-threaded environment, incoming packets are handled
|
|
||||||
by the function <tt>tcpip_input()</tt>, which takes the same arguments
|
|
||||||
as the <tt>ip_input()</tt> function. The difference between the two
|
|
||||||
functions is that the <tt>tcpip_input()</tt> function does not process
|
|
||||||
the incoming packet immediately. It merely puts the packet on a queue
|
|
||||||
which later is drained by the TCP/IP thread.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="justify">
|
|
||||||
When being run in a multi-threaded system, timer events are taken care
|
|
||||||
of internally in <tt>tcpip.c</tt>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<font size="-1"><i>
|
|
||||||
$Date: 2002/10/19 13:00:03 $
|
|
||||||
</i></font>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td width="50">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr></table>
|
|
||||||
|
|
||||||
<table width="640" border="0" cellpadding="0"
|
|
||||||
cellspacing="0">
|
|
||||||
<tr><td align="center">
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a href="index.html">Introduction</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="news.html">News</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="documentation.html">Documentation</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="mailinglist.html">Mailing list</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="changelog.html">Changelog</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="download.html">Download</a>
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
<a href="links.html">Links</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
</td></tr><tr>
|
|
||||||
<td>
|
|
||||||
<div align="right">
|
|
||||||
<a href="http://www.sics.se/~adam/">Adam Dunkels</a></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Binary file not shown.
Before Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB |
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user