lwipopts.h 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*!
  2. \file lwipopts.h
  3. \brief LwIP options configuration
  4. \version 2017-02-10, V1.0.0, firmware for GD32F30x
  5. \version 2018-10-10, V1.1.0, firmware for GD32F30x
  6. \version 2018-12-25, V2.0.0, firmware for GD32F30x
  7. \version 2020-09-30, V2.1.0, firmware for GD32F30x
  8. */
  9. /*
  10. Copyright (c) 2020, GigaDevice Semiconductor Inc.
  11. Redistribution and use in source and binary forms, with or without modification,
  12. are permitted provided that the following conditions are met:
  13. 1. Redistributions of source code must retain the above copyright notice, this
  14. list of conditions and the following disclaimer.
  15. 2. Redistributions in binary form must reproduce the above copyright notice,
  16. this list of conditions and the following disclaimer in the documentation
  17. and/or other materials provided with the distribution.
  18. 3. Neither the name of the copyright holder nor the names of its contributors
  19. may be used to endorse or promote products derived from this software without
  20. specific prior written permission.
  21. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  22. AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  23. WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  24. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  25. INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  26. NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  27. PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  28. WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29. ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  30. OF SUCH DAMAGE.
  31. */
  32. #ifndef LWIPOPTS_H
  33. #define LWIPOPTS_H
  34. #define SYS_LIGHTWEIGHT_PROT 0 /* SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection
  35. for certain critical regions during buffer allocation,
  36. deallocation and memory allocation and deallocation */
  37. #define NO_SYS 1 /* NO_SYS==1: provides VERY minimal functionality.
  38. Otherwise, use lwIP facilities */
  39. /* memory options */
  40. #define MEM_ALIGNMENT 4 /* should be set to the alignment of the CPU for which lwIP
  41. is compiled. 4 byte alignment -> define MEM_ALIGNMENT
  42. to 4, 2 byte alignment -> define MEM_ALIGNMENT to 2 */
  43. #define MEM_SIZE (20*1024) /* the size of the heap memory, if the application will
  44. send a lot of data that needs to be copied, this should
  45. be set high */
  46. #define MEMP_NUM_PBUF 10 /* the number of memp struct pbufs. If the application
  47. sends a lot of data out of ROM (or other static memory),
  48. this should be set high */
  49. #define MEMP_NUM_UDP_PCB 6 /* the number of UDP protocol control blocks, one
  50. per active UDP "connection" */
  51. #define MEMP_NUM_TCP_PCB 10 /* the number of simulatenously active TCP connections */
  52. #define MEMP_NUM_TCP_PCB_LISTEN 6 /* the number of listening TCP connections */
  53. #define MEMP_NUM_TCP_SEG 12 /* the number of simultaneously queued TCP segments */
  54. #define MEMP_NUM_SYS_TIMEOUT 10 /* the number of simulateously active timeouts */
  55. /* Pbuf options */
  56. #define PBUF_POOL_SIZE 10 /* the number of buffers in the pbuf pool */
  57. #define PBUF_POOL_BUFSIZE 1500 /* the size of each pbuf in the pbuf pool */
  58. /* TCP options */
  59. #define LWIP_TCP 1
  60. #define TCP_TTL 255
  61. #define TCP_QUEUE_OOSEQ 0 /* controls if TCP should queue segments that arrive out of
  62. order, Define to 0 if your device is low on memory. */
  63. #define TCP_MSS (1500 - 40) /* TCP Maximum segment size,
  64. TCP_MSS = (Ethernet MTU - IP header size - TCP header size) */
  65. #define TCP_SND_BUF (2*TCP_MSS) /* TCP sender buffer space (bytes) */
  66. #define TCP_SND_QUEUELEN ((6* TCP_SND_BUF)/TCP_MSS) /* TCP sender buffer space (pbufs), this must be at least
  67. as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work */
  68. #define TCP_WND (2*TCP_MSS) /* TCP receive window */
  69. /* ICMP options */
  70. #define LWIP_ICMP 1
  71. /* DHCP options */
  72. #define LWIP_DHCP 1 /* define to 1 if you want DHCP configuration of interfaces,
  73. DHCP is not implemented in lwIP 0.5.1, however, so
  74. turning this on does currently not work. */
  75. /* UDP options */
  76. #define LWIP_UDP 1
  77. #define UDP_TTL 255
  78. /* statistics options */
  79. #define LWIP_STATS 0
  80. #define LWIP_PROVIDE_ERRNO 1
  81. /* checksum options */
  82. #define CHECKSUM_BY_HARDWARE /* computing and verifying the IP, UDP, TCP and ICMP
  83. checksums by hardware */
  84. /* sequential layer options */
  85. #define LWIP_NETCONN 0 /* set to 1 to enable netconn API (require to use api_lib.c) */
  86. /* socket options */
  87. #define LWIP_SOCKET 0 /* set to 1 to enable socket API (require to use sockets.c) */
  88. /* Lwip debug options */
  89. //#define LWIP_DEBUG 1
  90. #ifdef CHECKSUM_BY_HARDWARE
  91. /* CHECKSUM_GEN_IP==0: generate checksums by hardware for outgoing IP packets.*/
  92. #define CHECKSUM_GEN_IP 0
  93. /* CHECKSUM_GEN_UDP==0: generate checksums by hardware for outgoing UDP packets.*/
  94. #define CHECKSUM_GEN_UDP 0
  95. /* CHECKSUM_GEN_TCP==0: generate checksums by hardware for outgoing TCP packets.*/
  96. #define CHECKSUM_GEN_TCP 0
  97. /* CHECKSUM_CHECK_IP==0: check checksums by hardware for incoming IP packets.*/
  98. #define CHECKSUM_CHECK_IP 0
  99. /* CHECKSUM_CHECK_UDP==0: check checksums by hardware for incoming UDP packets.*/
  100. #define CHECKSUM_CHECK_UDP 0
  101. /* CHECKSUM_CHECK_TCP==0: check checksums by hardware for incoming TCP packets.*/
  102. #define CHECKSUM_CHECK_TCP 0
  103. #define CHECKSUM_GEN_ICMP 0
  104. #else
  105. /* CHECKSUM_GEN_IP==1: generate checksums in software for outgoing IP packets.*/
  106. #define CHECKSUM_GEN_IP 1
  107. /* CHECKSUM_GEN_UDP==1: generate checksums in software for outgoing UDP packets.*/
  108. #define CHECKSUM_GEN_UDP 1
  109. /* CHECKSUM_GEN_TCP==1: generate checksums in software for outgoing TCP packets.*/
  110. #define CHECKSUM_GEN_TCP 1
  111. /* CHECKSUM_CHECK_IP==1: check checksums in software for incoming IP packets.*/
  112. #define CHECKSUM_CHECK_IP 1
  113. /* CHECKSUM_CHECK_UDP==1: check checksums in software for incoming UDP packets.*/
  114. #define CHECKSUM_CHECK_UDP 1
  115. /* CHECKSUM_CHECK_TCP==1: check checksums in software for incoming TCP packets.*/
  116. #define CHECKSUM_CHECK_TCP 1
  117. #define CHECKSUM_GEN_ICMP 1
  118. #endif
  119. #endif /* LWIPOPTS_H */