Official mbed lwIP library (version 1.4.0)

Dependents:   LwIPNetworking NetServicesMin EthernetInterface EthernetInterface_RSF ... more

Legacy Networking Libraries

This is an mbed 2 networking library. For mbed OS 5, lwip has been integrated with built-in networking interfaces. The networking libraries have been revised to better support additional network stacks and thread safety here.

This library is based on the code of lwIP v1.4.0

Copyright (c) 2001, 2002 Swedish Institute of Computer Science.
All rights reserved. 

Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.
2. 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.
3. The name of the author may not be used to endorse or promote products
   derived from this software without specific prior written permission. 

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
Committer:
mbed_official
Date:
Thu Apr 24 10:45:42 2014 +0100
Revision:
16:092c37b63ee8
Parent:
14:3d3ad63396b2
Child:
20:08f08bfc3f3d
Synchronized with git revision 94fd2228fb4a382fb98d0115f6691fc0b659eea8

Full URL: https://github.com/mbedmicro/mbed/commit/94fd2228fb4a382fb98d0115f6691fc0b659eea8/

Currently NET_7 (HttpClient test) and NET_8 (NTP test) fail for
unknown reasons.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 6:00bf89892c76 1 /* Copyright (C) 2012 mbed.org, MIT License
emilmont 6:00bf89892c76 2 *
emilmont 6:00bf89892c76 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
emilmont 6:00bf89892c76 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
emilmont 6:00bf89892c76 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
emilmont 6:00bf89892c76 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
emilmont 6:00bf89892c76 7 * furnished to do so, subject to the following conditions:
emilmont 6:00bf89892c76 8 *
emilmont 6:00bf89892c76 9 * The above copyright notice and this permission notice shall be included in all copies or
emilmont 6:00bf89892c76 10 * substantial portions of the Software.
emilmont 6:00bf89892c76 11 *
emilmont 6:00bf89892c76 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
emilmont 6:00bf89892c76 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
emilmont 6:00bf89892c76 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
emilmont 6:00bf89892c76 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
emilmont 6:00bf89892c76 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
emilmont 6:00bf89892c76 17 */
emilmont 6:00bf89892c76 18
emilmont 6:00bf89892c76 19 #ifndef LWIPOPTS_H
emilmont 6:00bf89892c76 20 #define LWIPOPTS_H
emilmont 6:00bf89892c76 21
emilmont 6:00bf89892c76 22 #include "lwipopts_conf.h"
emilmont 6:00bf89892c76 23
emilmont 6:00bf89892c76 24 // Operating System
emilmont 6:00bf89892c76 25 #define NO_SYS 0
emilmont 6:00bf89892c76 26
emilmont 6:00bf89892c76 27 #if NO_SYS == 0
emilmont 6:00bf89892c76 28 #include "cmsis_os.h"
emilmont 6:00bf89892c76 29
bogdanm 12:931deec14b08 30 #define SYS_LIGHTWEIGHT_PROT 1
bogdanm 12:931deec14b08 31
emilmont 6:00bf89892c76 32 #define LWIP_RAW 0
emilmont 6:00bf89892c76 33
bogdanm 11:4b3f6f8b92d2 34 #define TCPIP_MBOX_SIZE 8
bogdanm 11:4b3f6f8b92d2 35 #define DEFAULT_TCP_RECVMBOX_SIZE 8
bogdanm 11:4b3f6f8b92d2 36 #define DEFAULT_UDP_RECVMBOX_SIZE 8
bogdanm 11:4b3f6f8b92d2 37 #define DEFAULT_RAW_RECVMBOX_SIZE 8
bogdanm 11:4b3f6f8b92d2 38 #define DEFAULT_ACCEPTMBOX_SIZE 8
emilmont 6:00bf89892c76 39
emilmont 6:00bf89892c76 40 #define TCPIP_THREAD_STACKSIZE 1024
bogdanm 11:4b3f6f8b92d2 41 #define TCPIP_THREAD_PRIO (osPriorityNormal)
emilmont 6:00bf89892c76 42
emilmont 6:00bf89892c76 43 #define DEFAULT_THREAD_STACKSIZE 512
emilmont 6:00bf89892c76 44
emilmont 6:00bf89892c76 45 #define MEMP_NUM_SYS_TIMEOUT 16
emilmont 6:00bf89892c76 46 #endif
emilmont 6:00bf89892c76 47
emilmont 6:00bf89892c76 48 // 32-bit alignment
emilmont 6:00bf89892c76 49 #define MEM_ALIGNMENT 4
emilmont 6:00bf89892c76 50
emilmont 6:00bf89892c76 51 #define PBUF_POOL_SIZE 5
emilmont 6:00bf89892c76 52 #define MEMP_NUM_TCP_PCB_LISTEN 4
emilmont 6:00bf89892c76 53 #define MEMP_NUM_TCP_PCB 4
emilmont 6:00bf89892c76 54 #define MEMP_NUM_PBUF 8
emilmont 6:00bf89892c76 55
emilmont 6:00bf89892c76 56 #define TCP_QUEUE_OOSEQ 0
emilmont 6:00bf89892c76 57 #define TCP_OVERSIZE 0
emilmont 6:00bf89892c76 58
emilmont 6:00bf89892c76 59 #define LWIP_DHCP 1
emilmont 6:00bf89892c76 60 #define LWIP_DNS 1
emilmont 6:00bf89892c76 61
emilmont 8:f9d0ac9dd036 62 // Support Multicast
emilmont 8:f9d0ac9dd036 63 #include "stdlib.h"
emilmont 8:f9d0ac9dd036 64 #define LWIP_IGMP 1
emilmont 8:f9d0ac9dd036 65 #define LWIP_RAND() rand()
emilmont 8:f9d0ac9dd036 66
emilmont 6:00bf89892c76 67 #define LWIP_COMPAT_SOCKETS 0
emilmont 6:00bf89892c76 68 #define LWIP_POSIX_SOCKETS_IO_NAMES 0
emilmont 6:00bf89892c76 69 #define LWIP_SO_RCVTIMEO 1
emilmont 6:00bf89892c76 70 #define LWIP_TCP_KEEPALIVE 1
emilmont 6:00bf89892c76 71
emilmont 6:00bf89892c76 72 // Debug Options
emilmont 6:00bf89892c76 73 // #define LWIP_DEBUG
emilmont 6:00bf89892c76 74 #define UDP_LPC_EMAC LWIP_DBG_OFF
emilmont 6:00bf89892c76 75 #define SYS_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 76 #define PPP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 77 #define IP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 78 #define MEM_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 79 #define MEMP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 80 #define PBUF_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 81 #define API_LIB_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 82 #define API_MSG_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 83 #define TCPIP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 84 #define SOCKETS_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 85 #define TCP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 86 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 87 #define TCP_FR_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 88 #define TCP_RTO_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 89 #define TCP_CWND_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 90 #define TCP_WND_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 91 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 92 #define TCP_RST_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 93 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 94 #define ETHARP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 95 #define NETIF_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 96 #define DHCP_DEBUG LWIP_DBG_OFF
emilmont 6:00bf89892c76 97
emilmont 6:00bf89892c76 98 #ifdef LWIP_DEBUG
emilmont 6:00bf89892c76 99 #define MEMP_OVERFLOW_CHECK 1
emilmont 6:00bf89892c76 100 #define MEMP_SANITY_CHECK 1
emilmont 6:00bf89892c76 101 #else
bogdanm 12:931deec14b08 102 #define LWIP_NOASSERT 1
emilmont 6:00bf89892c76 103 #define LWIP_STATS 0
emilmont 6:00bf89892c76 104 #endif
emilmont 6:00bf89892c76 105
emilmont 6:00bf89892c76 106 #define LWIP_PLATFORM_BYTESWAP 1
emilmont 6:00bf89892c76 107
emilmont 6:00bf89892c76 108 #if LWIP_TRANSPORT_ETHERNET
emilmont 6:00bf89892c76 109
emilmont 6:00bf89892c76 110 /* MSS should match the hardware packet size */
emilmont 6:00bf89892c76 111 #define TCP_MSS 1460
emilmont 6:00bf89892c76 112 #define TCP_SND_BUF (2 * TCP_MSS)
emilmont 6:00bf89892c76 113 #define TCP_WND (2 * TCP_MSS)
emilmont 6:00bf89892c76 114 #define TCP_SND_QUEUELEN (2 * TCP_SND_BUF/TCP_MSS)
emilmont 6:00bf89892c76 115
emilmont 6:00bf89892c76 116 // Broadcast
emilmont 6:00bf89892c76 117 #define IP_SOF_BROADCAST 1
emilmont 6:00bf89892c76 118 #define IP_SOF_BROADCAST_RECV 1
emilmont 6:00bf89892c76 119
emilmont 6:00bf89892c76 120 #define LWIP_BROADCAST_PING 1
emilmont 6:00bf89892c76 121
emilmont 6:00bf89892c76 122 #define LWIP_CHECKSUM_ON_COPY 1
emilmont 6:00bf89892c76 123
emilmont 6:00bf89892c76 124 #define LWIP_NETIF_HOSTNAME 1
emilmont 6:00bf89892c76 125 #define LWIP_NETIF_STATUS_CALLBACK 1
emilmont 7:b061c4dba951 126 #define LWIP_NETIF_LINK_CALLBACK 1
emilmont 6:00bf89892c76 127
emilmont 6:00bf89892c76 128 #elif LWIP_TRANSPORT_PPP
emilmont 6:00bf89892c76 129
emilmont 6:00bf89892c76 130 #define TCP_SND_BUF (3 * 536)
emilmont 6:00bf89892c76 131 #define TCP_WND (2 * 536)
emilmont 6:00bf89892c76 132
emilmont 6:00bf89892c76 133 #define LWIP_ARP 0
emilmont 6:00bf89892c76 134
emilmont 6:00bf89892c76 135 #define PPP_SUPPORT 1
emilmont 6:00bf89892c76 136 #define CHAP_SUPPORT 1
emilmont 6:00bf89892c76 137 #define PAP_SUPPORT 1
emilmont 6:00bf89892c76 138 #define PPP_THREAD_STACKSIZE 4*192
emilmont 6:00bf89892c76 139 #define PPP_THREAD_PRIO 0
emilmont 6:00bf89892c76 140
emilmont 6:00bf89892c76 141 #define MAXNAMELEN 64 /* max length of hostname or name for auth */
emilmont 6:00bf89892c76 142 #define MAXSECRETLEN 64
emilmont 6:00bf89892c76 143
emilmont 6:00bf89892c76 144 #else
emilmont 6:00bf89892c76 145 #error A transport mechanism (Ethernet or PPP) must be defined
emilmont 6:00bf89892c76 146 #endif
emilmont 6:00bf89892c76 147
emilmont 6:00bf89892c76 148 #endif /* LWIPOPTS_H_ */