lwipopts.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #ifndef __LWIP_OPTS_H
  2. #define __LWIP_OPTS_H
  3. #include <stdlib.h>
  4. #include "wm_config.h"
  5. #include "wm_mem.h"
  6. //#include "wm_sockets.h"
  7. /**
  8. * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library
  9. * instead of the lwip internal allocator. Can save code size if you
  10. * already use it.
  11. */
  12. #define MEM_LIBC_MALLOC 0
  13. #define MEMP_MEM_MALLOC 0
  14. #define MEM_USE_POOLS 0
  15. #define MEMP_USE_CUSTOM_POOLS 0
  16. #define MEMP_OVERFLOW_CHECK 2
  17. #define LWIP_COMPAT_SOCKETS 2
  18. #define LWIP_SOCKET (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  19. #define LWIP_NETCONN TLS_CONFIG_SOCKET_STD
  20. #define LWIP_TCP (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  21. #define LWIP_UDP (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  22. #define LWIP_ARP (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  23. #define MEM_SIZE (8 * 1024)
  24. #define MEMP_NUM_SYS_TIMEOUT (16)
  25. #define MEMP_NUM_UDP_PCB 8
  26. /**
  27. * TCP_WND: The size of a TCP window. This must be at least
  28. * (2 * TCP_MSS) for things to work well
  29. */
  30. #define TCP_WND (8* TCP_MSS)
  31. /**
  32. * TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default,
  33. * you might want to increase this.)
  34. * For the receive side, this MSS is advertised to the remote side
  35. * when opening a connection. For the transmit size, this MSS sets
  36. * an upper limit on the MSS advertised by the remote host.
  37. */
  38. #define TCP_MSS 1460
  39. //#define TCP_MSS (1500 - 40) /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) */
  40. /**
  41. * TCP_SND_BUF: TCP sender buffer space (bytes).
  42. * To achieve good performance, this should be at least 2 * TCP_MSS.
  43. */
  44. #define TCP_SND_BUF (15*TCP_MSS)
  45. /**
  46. * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least
  47. * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work.
  48. */
  49. //#define TCP_SND_QUEUELEN ((2 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
  50. #define TCP_SND_QUEUELEN 30
  51. #define TCP_MSL 2000UL /* The maximum segment lifetime in milliseconds */
  52. #define MEMP_NUM_TCP_SEG 32
  53. /**
  54. * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages
  55. * The queue size value itself is platform-dependent, but is passed to
  56. * sys_mbox_new() when tcpip_init is called.
  57. */
  58. #define TCPIP_MBOX_SIZE 64
  59. /**
  60. * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!)
  61. * Don't use it if you're not an active lwIP project member
  62. */
  63. #define LWIP_TCPIP_CORE_LOCKING 0
  64. /**
  65. * LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!)
  66. * Don't use it if you're not an active lwIP project member
  67. */
  68. #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
  69. #define LWIP_DHCP (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  70. #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
  71. #define LWIP_NETIF_API (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  72. /**
  73. * MEMP_NUM_NETCONN: the number of struct netconns.
  74. */
  75. #define MEMP_NUM_NETCONN 8
  76. #if 0
  77. #define TCP_DEBUG LWIP_DBG_ON
  78. //#define TCP_INPUT_DEBUG LWIP_DBG_ON
  79. #define TCP_CWND_DEBUG LWIP_DBG_ON
  80. #define TCP_WND_DEBUG LWIP_DBG_ON
  81. //#define TCP_OUTPUT_DEBUG LWIP_DBG_ON
  82. #define TCP_QLEN_DEBUG LWIP_DBG_ON
  83. #define TCP_RTO_DEBUG LWIP_DBG_ON
  84. #endif
  85. #define LWIP_RAW 1
  86. #define LWIP_IGMP TLS_CONFIG_IGMP
  87. #define LWIP_RAND rand
  88. #define LWIP_SO_RCVTIMEO 1
  89. #define LWIP_SO_RCVBUF 1
  90. #define LWIP_SO_SNDTIMEO 1
  91. #define DHCP_DOES_ARP_CHECK 0
  92. #define LWIP_IPV4 TLS_CONFIG_IPV4
  93. #define LWIP_IPV6 TLS_CONFIG_IPV6
  94. #define LWIP_DNS (TLS_CONFIG_SOCKET_RAW || TLS_CONFIG_SOCKET_STD)
  95. #define LWIP_NETIF_STATUS_CALLBACK 1
  96. #define TCP_LISTEN_BACKLOG 1
  97. #define TCP_DEFAULT_LISTEN_BACKLOG 8
  98. #define SO_REUSE 1
  99. #define SO_REUSE_RXTOALL 1
  100. #define LWIP_ND6_MAX_MULTICAST_SOLICIT 10
  101. #define LWIP_HAVE_LOOPIF 1
  102. #define ETHARP_SUPPORT_STATIC_ENTRIES 1
  103. #define ETHARP_TABLE_MATCH_NETIF 0
  104. #define ARP_QUEUEING 1
  105. #define TCPIP_THREAD_STACKSIZE 1000
  106. #define MEM_ALIGNMENT 4
  107. #define LWIP_TCPIP_TIMEOUT 1
  108. #define LWIP_NETIF_HOSTNAME 1
  109. #define LWIP_TCP_KEEPALIVE 1
  110. #define LWIP_NETCONN_SEM_PER_THREAD 1
  111. #define LWIP_NETCONN_FULLDUPLEX 1
  112. #if LWIP_NETCONN_SEM_PER_THREAD
  113. #include "wm_osal.h"
  114. #include "arch/sys_arch.h"
  115. extern sys_sem_t* sys_lwip_netconn_thread_sem_get();
  116. #define LWIP_NETCONN_THREAD_SEM_ALLOC()
  117. #define LWIP_NETCONN_THREAD_SEM_GET() sys_lwip_netconn_thread_sem_get()
  118. #define LWIP_NETCONN_THREAD_SEM_FREE() do { } while(0)
  119. #endif
  120. #define LWIP_NO_INTTYPES_H 1
  121. #define LWIP_TIMEVAL_PRIVATE 0
  122. #define LWIP_SOCKET_OFFSET 1
  123. #include "lwip/ip4_addr.h"
  124. extern struct netif *wm_ip4_route_src(const ip4_addr_t *dest, const ip4_addr_t *src);
  125. #define LWIP_HOOK_IP4_ROUTE_SRC wm_ip4_route_src
  126. #endif /* end of __LWIP_OPTS_H */