Donatien Garnier / LwIPNetworking

Dependencies:   DebugLib Socket lwip lwip-sys

Dependents:   EthernetInterface

Fork of NetworkingCoreLib by Donatien Garnier

Committer:
donatien
Date:
Thu May 24 15:35:36 2012 +0000
Revision:
1:240e3322b87a
Parent:
0:013f5d54248c
+ Debug Lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:013f5d54248c 1 /* lwipopts.h */
donatien 0:013f5d54248c 2 /*
donatien 0:013f5d54248c 3 Copyright (C) 2012 ARM Limited.
donatien 0:013f5d54248c 4
donatien 0:013f5d54248c 5 Permission is hereby granted, free of charge, to any person obtaining a copy of
donatien 0:013f5d54248c 6 this software and associated documentation files (the "Software"), to deal in
donatien 0:013f5d54248c 7 the Software without restriction, including without limitation the rights to
donatien 0:013f5d54248c 8 use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
donatien 0:013f5d54248c 9 of the Software, and to permit persons to whom the Software is furnished to do
donatien 0:013f5d54248c 10 so, subject to the following conditions:
donatien 0:013f5d54248c 11
donatien 0:013f5d54248c 12 The above copyright notice and this permission notice shall be included in all
donatien 0:013f5d54248c 13 copies or substantial portions of the Software.
donatien 0:013f5d54248c 14
donatien 0:013f5d54248c 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
donatien 0:013f5d54248c 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
donatien 0:013f5d54248c 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
donatien 0:013f5d54248c 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
donatien 0:013f5d54248c 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
donatien 0:013f5d54248c 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
donatien 0:013f5d54248c 21 SOFTWARE.
donatien 0:013f5d54248c 22 */
donatien 0:013f5d54248c 23
donatien 0:013f5d54248c 24 #ifndef LWIPOPTS_H_
donatien 0:013f5d54248c 25 #define LWIPOPTS_H_
donatien 0:013f5d54248c 26
donatien 0:013f5d54248c 27 #include "networking_conf.h" //Basically a #define NET_PPP 1 or #define NET_ETHERNET 1 file
donatien 0:013f5d54248c 28
donatien 0:013f5d54248c 29 #define NO_SYS 0
donatien 0:013f5d54248c 30
donatien 0:013f5d54248c 31 #define NET_PPP 0 //For now only PPP is supported
donatien 0:013f5d54248c 32 #define NET_ETHERNET 1 //Ethernet is in pre-alpha
donatien 0:013f5d54248c 33 //Memory
donatien 0:013f5d54248c 34 #define MEM_ALIGNMENT 4
donatien 0:013f5d54248c 35
donatien 0:013f5d54248c 36 #define MEMP_OVERFLOW_CHECK 0 //For debug, must be removed once everything is validated to reduce mem consumption and improve performance
donatien 0:013f5d54248c 37 #define MEMP_SANITY_CHECK 0 //Same here
donatien 0:013f5d54248c 38 #define MEMP_NUM_SYS_TIMEOUT 16
donatien 0:013f5d54248c 39
donatien 0:013f5d54248c 40 //Debug
donatien 0:013f5d54248c 41 #define LWIP_DEBUG 0
donatien 0:013f5d54248c 42 #define PPP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 43 #define IP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 44 #define MEM_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 45 #define MEMP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 46 #define PBUF_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 47 #define API_LIB_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 48 #define API_MSG_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 49 #define TCPIP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 50 #define SOCKETS_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 51 #define TCP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 52 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 53 #define TCP_FR_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 54 #define TCP_RTO_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 55 #define TCP_CWND_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 56 #define TCP_WND_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 57 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 58 #define TCP_RST_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 59 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 60 #define ETHARP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 61 #define NETIF_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 62 #define DHCP_DEBUG LWIP_DBG_OFF
donatien 0:013f5d54248c 63
donatien 0:013f5d54248c 64 //Modules to enable
donatien 0:013f5d54248c 65 #define LWIP_NETCONN 1
donatien 0:013f5d54248c 66 #define LWIP_SOCKET 1
donatien 0:013f5d54248c 67 #define TCP_QUEUE_OOSEQ 0
donatien 0:013f5d54248c 68 #define LWIP_STATS 0
donatien 0:013f5d54248c 69 #define TCP_STATS 0
donatien 0:013f5d54248c 70 #define IP_STATS 0
donatien 0:013f5d54248c 71 #define LINK_STATS 0
donatien 0:013f5d54248c 72 #define MEM_STATS 0
donatien 0:013f5d54248c 73 #define MEMP_STATS 0
donatien 0:013f5d54248c 74 #define SYS_STATS 0
donatien 0:013f5d54248c 75 #define LWIP_STATS_DISPLAY 0
donatien 0:013f5d54248c 76
donatien 0:013f5d54248c 77 //Mailboxes
donatien 0:013f5d54248c 78 #define TCPIP_MBOX_SIZE 6
donatien 0:013f5d54248c 79 #define DEFAULT_TCP_RECVMBOX_SIZE 6
donatien 0:013f5d54248c 80 #define DEFAULT_UDP_RECVMBOX_SIZE 6
donatien 0:013f5d54248c 81 #define DEFAULT_RAW_RECVMBOX_SIZE 6
donatien 0:013f5d54248c 82 #define DEFAULT_ACCEPTMBOX_SIZE 6
donatien 0:013f5d54248c 83
donatien 0:013f5d54248c 84 //TCP/IP Thread
donatien 0:013f5d54248c 85 #define TCPIP_THREAD_STACKSIZE 1024
donatien 0:013f5d54248c 86 #define TCPIP_THREAD_PRIO 1
donatien 0:013f5d54248c 87
donatien 0:013f5d54248c 88 //Buffers
donatien 0:013f5d54248c 89 #define PBUF_POOL_SIZE 5
donatien 0:013f5d54248c 90 #define MEMP_NUM_TCP_PCB_LISTEN 4
donatien 0:013f5d54248c 91 #define MEMP_NUM_TCP_PCB 4
donatien 0:013f5d54248c 92 #define MEMP_NUM_PBUF 8
donatien 0:013f5d54248c 93
donatien 0:013f5d54248c 94 #define TCP_OVERSIZE 0 //Disable until it gets fixed in mainline LwIP
donatien 0:013f5d54248c 95 #define DEFAULT_THREAD_STACKSIZE 512
donatien 0:013f5d54248c 96 #if NET_PPP
donatien 0:013f5d54248c 97 ///PPP Options
donatien 0:013f5d54248c 98
donatien 0:013f5d54248c 99 #define TCP_SND_BUF (3 * 536)
donatien 0:013f5d54248c 100 #define TCP_WND (2 * 536)
donatien 0:013f5d54248c 101
donatien 0:013f5d54248c 102 #define LWIP_ARP 0
donatien 0:013f5d54248c 103
donatien 0:013f5d54248c 104 #define PPP_SUPPORT 1
donatien 0:013f5d54248c 105 #define CHAP_SUPPORT 1
donatien 0:013f5d54248c 106 #define PAP_SUPPORT 1
donatien 0:013f5d54248c 107 #define PPP_THREAD_STACKSIZE 4*192
donatien 0:013f5d54248c 108 #define PPP_THREAD_PRIO 0
donatien 0:013f5d54248c 109
donatien 0:013f5d54248c 110 #define MAXNAMELEN 64 /* max length of hostname or name for auth */
donatien 0:013f5d54248c 111 #define MAXSECRETLEN 64
donatien 0:013f5d54248c 112 #elif NET_ETHERNET
donatien 0:013f5d54248c 113
donatien 0:013f5d54248c 114 #define MEM_SIZE 16362 //Needs a huge buffer pool
donatien 0:013f5d54248c 115
donatien 0:013f5d54248c 116 #define LWIP_ARP 1 //Enable ARP
donatien 0:013f5d54248c 117
donatien 0:013f5d54248c 118 /* This define is custom for the LPC EMAC driver. Enabled it to
donatien 0:013f5d54248c 119 get debug messages for the driver. */
donatien 0:013f5d54248c 120 #define UDP_LPC_EMAC LWIP_DBG_OFF
donatien 0:013f5d54248c 121
donatien 0:013f5d54248c 122 /* No padding needed */
donatien 0:013f5d54248c 123 #define ETH_PAD_SIZE 0
donatien 0:013f5d54248c 124
donatien 0:013f5d54248c 125 /* MSS should match the hardware packet size */
donatien 0:013f5d54248c 126 #define TCP_MSS 1460
donatien 0:013f5d54248c 127 #define TCP_SND_BUF (2 * TCP_MSS)
donatien 0:013f5d54248c 128 #define TCP_WND (2 * TCP_MSS)
donatien 0:013f5d54248c 129 #define TCP_SND_QUEUELEN (2 * TCP_SND_BUF/TCP_MSS)
donatien 0:013f5d54248c 130
donatien 0:013f5d54248c 131 #define IP_SOF_BROADCAST 1
donatien 0:013f5d54248c 132 #define IP_SOF_BROADCAST_RECV 1
donatien 0:013f5d54248c 133
donatien 0:013f5d54248c 134 /* The ethernet FCS is performed in hardware. The IP, TCP, and UDP
donatien 0:013f5d54248c 135 CRCs still need to be done in hardware. */
donatien 0:013f5d54248c 136 #define CHECKSUM_GEN_IP 1
donatien 0:013f5d54248c 137 #define CHECKSUM_GEN_UDP 1
donatien 0:013f5d54248c 138 #define CHECKSUM_GEN_TCP 1
donatien 0:013f5d54248c 139 #define CHECKSUM_CHECK_IP 1
donatien 0:013f5d54248c 140 #define CHECKSUM_CHECK_UDP 1
donatien 0:013f5d54248c 141 #define CHECKSUM_CHECK_TCP 1
donatien 0:013f5d54248c 142 #define LWIP_CHECKSUM_ON_COPY 1
donatien 0:013f5d54248c 143
donatien 0:013f5d54248c 144 /* DHCP is ok, UDP is required with DHCP */
donatien 0:013f5d54248c 145 #define LWIP_DHCP 1
donatien 0:013f5d54248c 146 #define LWIP_UDP 1
donatien 0:013f5d54248c 147
donatien 0:013f5d54248c 148 /* Hostname can be used */
donatien 0:013f5d54248c 149 #define LWIP_NETIF_HOSTNAME 1
donatien 0:013f5d54248c 150
donatien 0:013f5d54248c 151 #define LWIP_BROADCAST_PING 1
donatien 0:013f5d54248c 152
donatien 0:013f5d54248c 153 #else
donatien 0:013f5d54248c 154
donatien 0:013f5d54248c 155 #warning Application code only
donatien 0:013f5d54248c 156
donatien 0:013f5d54248c 157 #endif
donatien 0:013f5d54248c 158
donatien 0:013f5d54248c 159 //DNS
donatien 0:013f5d54248c 160 #define LWIP_DNS 1
donatien 0:013f5d54248c 161
donatien 0:013f5d54248c 162 //Do not use LwIP's ugly macro-based renaming
donatien 0:013f5d54248c 163 #define LWIP_COMPAT_SOCKETS 0
donatien 0:013f5d54248c 164 #define LWIP_POSIX_SOCKETS_IO_NAMES 0
donatien 0:013f5d54248c 165 #define LWIP_SO_RCVTIMEO 1
donatien 0:013f5d54248c 166 #define LWIP_TCP_KEEPALIVE 1
donatien 0:013f5d54248c 167
donatien 0:013f5d54248c 168 #endif /* LWIPOPTS_H_ */