Deprecated fork of old network stack source from github. Please use official library instead: https://mbed.org/users/mbed_official/code/EthernetInterface/

Committer:
AdamGreen
Date:
Sat Oct 26 08:51:36 2013 +0000
Revision:
1:eadc868c2acf
Parent:
0:3b00827bb0b7
Fix TCP checksum bug and stranded large TCP segments.

Who changed what in which revision?

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