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:
emilmont
Date:
Thu May 30 17:11:58 2013 +0100
Revision:
10:42a34d63b218
Parent:
9:5bba32bf3eb6
Child:
11:4b3f6f8b92d2
Add LPC4088 target

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
emilmont 6:00bf89892c76 30 #define LWIP_RAW 0
emilmont 6:00bf89892c76 31
emilmont 6:00bf89892c76 32 #define TCPIP_MBOX_SIZE 6
emilmont 6:00bf89892c76 33 #define DEFAULT_TCP_RECVMBOX_SIZE 6
emilmont 6:00bf89892c76 34 #define DEFAULT_UDP_RECVMBOX_SIZE 6
emilmont 6:00bf89892c76 35 #define DEFAULT_RAW_RECVMBOX_SIZE 6
emilmont 6:00bf89892c76 36 #define DEFAULT_ACCEPTMBOX_SIZE 6
emilmont 6:00bf89892c76 37
emilmont 6:00bf89892c76 38 #define TCPIP_THREAD_STACKSIZE 1024
emilmont 6:00bf89892c76 39 #define TCPIP_THREAD_PRIO 1
emilmont 6:00bf89892c76 40
emilmont 6:00bf89892c76 41 #define DEFAULT_THREAD_STACKSIZE 512
emilmont 6:00bf89892c76 42
emilmont 6:00bf89892c76 43 #define MEMP_NUM_SYS_TIMEOUT 16
emilmont 6:00bf89892c76 44 #endif
emilmont 6:00bf89892c76 45
emilmont 6:00bf89892c76 46 // 32-bit alignment
emilmont 6:00bf89892c76 47 #define MEM_ALIGNMENT 4
emilmont 6:00bf89892c76 48
emilmont 6:00bf89892c76 49 #define MEM_SIZE 16362
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
emilmont 6:00bf89892c76 102 #define LWIP_STATS 0
emilmont 6:00bf89892c76 103 #endif
emilmont 6:00bf89892c76 104
emilmont 6:00bf89892c76 105 #define LWIP_PLATFORM_BYTESWAP 1
emilmont 6:00bf89892c76 106
emilmont 6:00bf89892c76 107 #if LWIP_TRANSPORT_ETHERNET
emilmont 6:00bf89892c76 108
emilmont 6:00bf89892c76 109 /* MSS should match the hardware packet size */
emilmont 6:00bf89892c76 110 #define TCP_MSS 1460
emilmont 6:00bf89892c76 111 #define TCP_SND_BUF (2 * TCP_MSS)
emilmont 6:00bf89892c76 112 #define TCP_WND (2 * TCP_MSS)
emilmont 6:00bf89892c76 113 #define TCP_SND_QUEUELEN (2 * TCP_SND_BUF/TCP_MSS)
emilmont 6:00bf89892c76 114
emilmont 6:00bf89892c76 115 // Broadcast
emilmont 6:00bf89892c76 116 #define IP_SOF_BROADCAST 1
emilmont 6:00bf89892c76 117 #define IP_SOF_BROADCAST_RECV 1
emilmont 6:00bf89892c76 118
emilmont 6:00bf89892c76 119 #define LWIP_BROADCAST_PING 1
emilmont 6:00bf89892c76 120
emilmont 6:00bf89892c76 121 #define LWIP_CHECKSUM_ON_COPY 1
emilmont 6:00bf89892c76 122
emilmont 6:00bf89892c76 123 #define LWIP_NETIF_HOSTNAME 1
emilmont 6:00bf89892c76 124 #define LWIP_NETIF_STATUS_CALLBACK 1
emilmont 7:b061c4dba951 125 #define LWIP_NETIF_LINK_CALLBACK 1
emilmont 6:00bf89892c76 126
emilmont 6:00bf89892c76 127 #elif LWIP_TRANSPORT_PPP
emilmont 6:00bf89892c76 128
emilmont 6:00bf89892c76 129 #define TCP_SND_BUF (3 * 536)
emilmont 6:00bf89892c76 130 #define TCP_WND (2 * 536)
emilmont 6:00bf89892c76 131
emilmont 6:00bf89892c76 132 #define LWIP_ARP 0
emilmont 6:00bf89892c76 133
emilmont 6:00bf89892c76 134 #define PPP_SUPPORT 1
emilmont 6:00bf89892c76 135 #define CHAP_SUPPORT 1
emilmont 6:00bf89892c76 136 #define PAP_SUPPORT 1
emilmont 6:00bf89892c76 137 #define PPP_THREAD_STACKSIZE 4*192
emilmont 6:00bf89892c76 138 #define PPP_THREAD_PRIO 0
emilmont 6:00bf89892c76 139
emilmont 6:00bf89892c76 140 #define MAXNAMELEN 64 /* max length of hostname or name for auth */
emilmont 6:00bf89892c76 141 #define MAXSECRETLEN 64
emilmont 6:00bf89892c76 142
emilmont 6:00bf89892c76 143 #else
emilmont 6:00bf89892c76 144 #error A transport mechanism (Ethernet or PPP) must be defined
emilmont 6:00bf89892c76 145 #endif
emilmont 6:00bf89892c76 146
emilmont 6:00bf89892c76 147 #endif /* LWIPOPTS_H_ */