Skip to content

Commit a9796b9

Browse files
author
liuxianliang
committed
[add] the code of original lwIP 2.1.2.
Signed-off-by: liuxianliang <[email protected]>
1 parent f13b322 commit a9796b9

File tree

1,806 files changed

+329157
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,806 files changed

+329157
-0
lines changed

components/net/lwip-2.1.2/CHANGELOG

Lines changed: 4548 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
cmake_minimum_required(VERSION 3.7)
2+
3+
project(lwIP)
4+
5+
set(LWIP_DIR ${CMAKE_CURRENT_SOURCE_DIR})
6+
include(src/Filelists.cmake)
7+
8+
# Package generation
9+
set(CPACK_SOURCE_GENERATOR "ZIP")
10+
set(CPACK_SOURCE_PACKAGE_DESCRIPTION_SUMMARY "lwIP lightweight IP stack")
11+
set(CPACK_PACKAGE_VERSION_MAJOR "${LWIP_VERSION_MAJOR}")
12+
set(CPACK_PACKAGE_VERSION_MINOR "${LWIP_VERSION_MINOR}")
13+
set(CPACK_PACKAGE_VERSION_PATCH "${LWIP_VERSION_REVISION}")
14+
set(CPACK_SOURCE_IGNORE_FILES "/build/;${CPACK_SOURCE_IGNORE_FILES};.git")
15+
set(CPACK_SOURCE_PACKAGE_FILE_NAME "lwip-${LWIP_VERSION_MAJOR}.${LWIP_VERSION_MINOR}.${LWIP_VERSION_REVISION}")
16+
include(CPack)
17+
18+
# Target for package generation
19+
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
20+
add_dependencies(dist lwipdocs)

components/net/lwip-2.1.2/COPYING

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright (c) 2001, 2002 Swedish Institute of Computer Science.
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without modification,
6+
* are permitted provided that the following conditions are met:
7+
*
8+
* 1. Redistributions of source code must retain the above copyright notice,
9+
* this list of conditions and the following disclaimer.
10+
* 2. Redistributions in binary form must reproduce the above copyright notice,
11+
* this list of conditions and the following disclaimer in the documentation
12+
* and/or other materials provided with the distribution.
13+
* 3. The name of the author may not be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17+
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19+
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20+
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21+
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24+
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
25+
* OF SUCH DAMAGE.
26+
*
27+
* This file is part of the lwIP TCP/IP stack.
28+
*
29+
* Author: Adam Dunkels <[email protected]>
30+
*
31+
*/
32+
33+

components/net/lwip-2.1.2/FEATURES

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
lwIP is a small independent implementation of the TCP/IP protocol suite targeted at embedded systems.
2+
3+
The focus of the lwIP TCP/IP implementation is to reduce resource 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.
4+
5+
Main features include:
6+
- Protocols: IP, IPv6, ICMP, ND, MLD, UDP, TCP, IGMP, ARP, PPPoS, PPPoE, 6LowPAN (via IEEE 802.15.4, BLE or ZEP; since v2.1.0)
7+
- DHCP client, stateless DHCPv6 (since v2.1.0), DNS client (incl. mDNS hostname resolver), AutoIP/APIPA (Zeroconf), SNMP agent (v1, v2c, v3 (since v2.1.0), private MIB support & MIB compiler)
8+
- APIs: specialized APIs for enhanced performance & zero copy, optional Berkeley-alike socket API
9+
- Extended features: IP forwarding over multiple network interfaces
10+
- Extended TCP features: congestion control, RTT estimation and fast recovery/fast retransmit, sending SACKs (since v2.1.0), "altcp": nearly transparent TLS for any tcp pcb (since v2.1.0)
11+
- Addon applications: HTTP server (HTTPS via altcp), HTTP(S) client (since v2.1.0), SNTP client, SMTP client (SMTPS via altcp), ping, NetBIOS nameserver, mDNS responder, MQTT client (TLS support since v2.1.0), TFTP server, iPerf2 counterpart

components/net/lwip-2.1.2/FILES

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
src/ - The source code for the lwIP TCP/IP stack.
2+
doc/ - The documentation for lwIP.
3+
test/ - Some code to test whether the sources do what they should.
4+
5+
See also the FILES file in each subdirectory.

components/net/lwip-2.1.2/README

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
INTRODUCTION
2+
3+
lwIP is a small independent implementation of the TCP/IP protocol suite.
4+
5+
The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
6+
while still having a full scale TCP. This making lwIP suitable for use
7+
in embedded systems with tens of kilobytes of free RAM and room for
8+
around 40 kilobytes of code ROM.
9+
10+
lwIP was originally developed by Adam Dunkels at the Computer and Networks
11+
Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS)
12+
and is now developed and maintained by a worldwide network of developers.
13+
14+
FEATURES
15+
16+
* IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over
17+
multiple network interfaces
18+
* ICMP (Internet Control Message Protocol) for network maintenance and debugging
19+
* IGMP (Internet Group Management Protocol) for multicast traffic management
20+
* MLD (Multicast listener discovery for IPv6). Aims to be compliant with
21+
RFC 2710. No support for MLDv2
22+
* ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
23+
Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
24+
(Address autoconfiguration)
25+
* DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
26+
* UDP (User Datagram Protocol) including experimental UDP-lite extensions
27+
* TCP (Transmission Control Protocol) with congestion control, RTT estimation
28+
fast recovery/fast retransmit and sending SACKs
29+
* raw/native API for enhanced performance
30+
* Optional Berkeley-like socket API
31+
* TLS: optional layered TCP ("altcp") for nearly transparent TLS for any
32+
TCP-based protocol (ported to mbedTLS) (see changelog for more info)
33+
* PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet)
34+
* DNS (Domain name resolver incl. mDNS)
35+
* 6LoWPAN (via IEEE 802.15.4, BLE or ZEP)
36+
37+
38+
APPLICATIONS
39+
40+
* HTTP server with SSI and CGI (HTTPS via altcp)
41+
* SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
42+
* SNTP (Simple network time protocol)
43+
* NetBIOS name service responder
44+
* MDNS (Multicast DNS) responder
45+
* iPerf server implementation
46+
* MQTT client (TLS support via altcp)
47+
48+
49+
LICENSE
50+
51+
lwIP is freely available under a BSD license.
52+
53+
54+
DEVELOPMENT
55+
56+
lwIP has grown into an excellent TCP/IP stack for embedded devices,
57+
and developers using the stack often submit bug fixes, improvements,
58+
and additions to the stack to further increase its usefulness.
59+
60+
Development of lwIP is hosted on Savannah, a central point for
61+
software development, maintenance and distribution. Everyone can
62+
help improve lwIP by use of Savannah's interface, Git and the
63+
mailing list. A core team of developers will commit changes to the
64+
Git source tree.
65+
66+
The lwIP TCP/IP stack is maintained in the 'lwip' Git module and
67+
contributions (such as platform ports) are in the 'contrib' Git module.
68+
69+
See doc/savannah.txt for details on Git server access for users and
70+
developers.
71+
72+
The current Git trees are web-browsable:
73+
http://git.savannah.gnu.org/cgit/lwip.git
74+
http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git
75+
76+
Submit patches and bugs via the lwIP project page:
77+
http://savannah.nongnu.org/projects/lwip/
78+
79+
Continuous integration builds (GCC, clang):
80+
https://travis-ci.org/yarrick/lwip-merged
81+
82+
83+
DOCUMENTATION
84+
85+
Self documentation of the source code is regularly extracted from the current
86+
Git sources and is available from this web page:
87+
http://www.nongnu.org/lwip/
88+
89+
There is now a constantly growing wiki about lwIP at
90+
http://lwip.wikia.com/wiki/LwIP_Wiki
91+
92+
Also, there are mailing lists you can subscribe at
93+
http://savannah.nongnu.org/mail/?group=lwip
94+
plus searchable archives:
95+
http://lists.nongnu.org/archive/html/lwip-users/
96+
http://lists.nongnu.org/archive/html/lwip-devel/
97+
98+
lwIP was originally written by Adam Dunkels:
99+
http://dunkels.com/adam/
100+
101+
Reading Adam's papers, the files in docs/, browsing the source code
102+
documentation and browsing the mailing list archives is a good way to
103+
become familiar with the design of lwIP.
104+
105+
Adam Dunkels <[email protected]>
106+
Leon Woestenberg <[email protected]>

0 commit comments

Comments
 (0)