• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 Hunan OpenValley Digital Industry Development Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef __LWIPOPTS_H__
17 #define __LWIPOPTS_H__
18 
19 #include <stdint.h>
20 #include <stdbool.h>
21 #include <stdlib.h>
22 #include <sys/types.h>
23 #include "sdkconfig.h"
24 
25 #define SYS_LIGHTWEIGHT_PROT            (1)
26 #define MEMCPY                          memcpy
27 #define SMEMCPY                         memcpy
28 
29 #define LWIP_RAND                       esp_random
30 #define MEM_LIBC_MALLOC                 (1)
31 #define MEMP_MEM_MALLOC                 (1)
32 #define MEM_ALIGNMENT                   (4)
33 #define MEMP_NUM_NETCONN                CONFIG_LWIP_MAX_SOCKETS
34 #define MEMP_NUM_RAW_PCB                CONFIG_LWIP_MAX_RAW_PCBS
35 #define MEMP_NUM_TCP_PCB                CONFIG_LWIP_MAX_ACTIVE_TCP
36 #define MEMP_NUM_TCP_PCB_LISTEN         CONFIG_LWIP_MAX_LISTENING_TCP
37 #define MEMP_NUM_UDP_PCB                CONFIG_LWIP_MAX_UDP_PCBS
38 #define ARP_QUEUEING                    (1)
39 #define IP_REASSEMBLY                   CONFIG_LWIP_IP4_REASSEMBLY
40 #define LWIP_IPV6_REASS                 CONFIG_LWIP_IP6_REASSEMBLY
41 #define IP_FRAG                         CONFIG_LWIP_IP4_FRAG
42 #define LWIP_IPV6_FRAG                  CONFIG_LWIP_IP6_FRAG
43 #define IP_REASS_MAXAGE                 (3)
44 #define IP_REASS_MAX_PBUFS              (10)
45 #define IP_FORWARD                      CONFIG_LWIP_IP_FORWARD
46 #define IP_NAPT                         CONFIG_LWIP_IPV4_NAPT
47 #define LWIP_ICMP  CONFIG_LWIP_ICMP
48 #define LWIP_BROADCAST_PING CONFIG_LWIP_BROADCAST_PING
49 #define LWIP_MULTICAST_PING CONFIG_LWIP_MULTICAST_PING
50 #define LWIP_RAW                        (1)
51 #define LWIP_DHCP                       (1)
52 #define DHCP_MAXRTX                     (0)
53 #define DHCP_DOES_ARP_CHECK             CONFIG_LWIP_DHCP_DOES_ARP_CHECK
54 #define ESP_DHCP_DISABLE_CLIENT_ID      CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID
55 #if CONFIG_LWIP_DHCP_RESTORE_LAST_IP
56 #define LWIP_DHCP_IP_ADDR_RESTORE       dhcp_ip_addr_restore
57 #define LWIP_DHCP_IP_ADDR_STORE         dhcp_ip_addr_store
58 #define LWIP_DHCP_IP_ADDR_ERASE         dhcp_ip_addr_erase
59 #endif
60 
61 #ifdef CONFIG_LWIP_AUTOIP
62 #define LWIP_AUTOIP                     (1)
63 #define LWIP_DHCP_AUTOIP_COOP           (1)
64 #define LWIP_DHCP_AUTOIP_COOP_TRIES     CONFIG_LWIP_AUTOIP_TRIES
65 #define LWIP_AUTOIP_MAX_CONFLICTS CONFIG_LWIP_AUTOIP_MAX_CONFLICTS
66 #define LWIP_AUTOIP_RATE_LIMIT_INTERVAL CONFIG_LWIP_AUTOIP_RATE_LIMIT_INTERVAL
67 #endif
68 
69 #define LWIP_IGMP                       (1)
70 #define LWIP_DNS                        (1)
71 #define DNS_MAX_SERVERS                 (3)
72 #define DNS_FALLBACK_SERVER_INDEX       (DNS_MAX_SERVERS - 1)
73 #define TCP_QUEUE_OOSEQ                 CONFIG_LWIP_TCP_QUEUE_OOSEQ
74 #define LWIP_TCP_SACK_OUT               CONFIG_LWIP_TCP_SACK_OUT
75 #define ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES  CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES
76 #define TCP_MSS                         CONFIG_LWIP_TCP_MSS
77 #define TCP_TMR_INTERVAL                CONFIG_LWIP_TCP_TMR_INTERVAL
78 #define TCP_MSL                         CONFIG_LWIP_TCP_MSL
79 #define TCP_MAXRTX                      CONFIG_LWIP_TCP_MAXRTX
80 #define TCP_SYNMAXRTX                   CONFIG_LWIP_TCP_SYNMAXRTX
81 #define TCP_LISTEN_BACKLOG              (1)
82 #ifdef CONFIG_LWIP_TCP_OVERSIZE_MSS
83 #define TCP_OVERSIZE                    TCP_MSS
84 #endif
85 #ifdef CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS
86 #define TCP_OVERSIZE                    (TCP_MSS/4)
87 #endif
88 #ifdef CONFIG_LWIP_TCP_OVERSIZE_DISABLE
89 #define TCP_OVERSIZE                    (0)
90 #endif
91 #ifndef TCP_OVERSIZE
92 #error "One of CONFIG_TCP_OVERSIZE_xxx options should be set by sdkconfig"
93 #endif
94 #ifdef CONFIG_LWIP_WND_SCALE
95 #define LWIP_WND_SCALE                  (1)
96 #define TCP_RCV_SCALE                   CONFIG_LWIP_TCP_RCV_SCALE
97 #endif
98 #define LWIP_TCP_RTO_TIME               CONFIG_LWIP_TCP_RTO_TIME
99 #define LWIP_NETIF_HOSTNAME             (1)
100 #define LWIP_NETIF_TX_SINGLE_PBUF       (1)
101 #ifdef CONFIG_LWIP_NETIF_LOOPBACK
102 #define LWIP_NETIF_LOOPBACK             (1)
103 #define LWIP_LOOPBACK_MAX_PBUFS         CONFIG_LWIP_LOOPBACK_MAX_PBUFS
104 #endif
105 #ifdef CONFIG_LWIP_SLIP_SUPPORT
106 #define SLIP_RX_FROM_ISR                 (1)
107 #define SLIP_USE_RX_THREAD               (0)
108 #define SLIP_DEBUG_ON                    CONFIG_LWIP_SLIP_DEBUG_ON
109 #if SLIP_DEBUG_ON
110 #define SLIP_DEBUG                       LWIP_DBG_ON
111 #else
112 #define SLIP_DEBUG                       LWIP_DBG_OFF
113 #endif
114 #endif
115 #define TCPIP_THREAD_NAME              "tiT"
116 #define TCPIP_THREAD_STACKSIZE          (4096)
117 #define TCPIP_THREAD_PRIO               (25-7)
118 #define TCPIP_MBOX_SIZE                 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE
119 #define DEFAULT_UDP_RECVMBOX_SIZE       CONFIG_LWIP_UDP_RECVMBOX_SIZE
120 #define DEFAULT_TCP_RECVMBOX_SIZE       CONFIG_LWIP_TCP_RECVMBOX_SIZE
121 #define DEFAULT_ACCEPTMBOX_SIZE         (6)
122 #define DEFAULT_THREAD_STACKSIZE        TCPIP_THREAD_STACKSIZE
123 #define DEFAULT_THREAD_PRIO             TCPIP_THREAD_PRIO
124 #define DEFAULT_RAW_RECVMBOX_SIZE       (6)
125 #define LWIP_TCPIP_CORE_LOCKING         (0)
126 #define LWIP_SO_SNDTIMEO                (1)
127 #define LWIP_SO_RCVTIMEO                (1)
128 #define LWIP_TCP_KEEPALIVE              (1)
129 #define LWIP_SO_LINGER                  CONFIG_LWIP_SO_LINGER
130 #define LWIP_SO_RCVBUF                  CONFIG_LWIP_SO_RCVBUF
131 #define SO_REUSE                        CONFIG_LWIP_SO_REUSE
132 #define LWIP_DNS_SUPPORT_MDNS_QUERIES   CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES
133 #define SO_REUSE_RXTOALL                CONFIG_LWIP_SO_REUSE_RXTOALL
134 #define LWIP_NETBUF_RECVINFO            CONFIG_LWIP_NETBUF_RECVINFO
135 #define LWIP_STATS                      CONFIG_LWIP_STATS
136 #if LWIP_STATS
137 #define LWIP_STATS_DISPLAY              CONFIG_LWIP_STATS
138 #endif
139 #define PPP_SUPPORT                     CONFIG_LWIP_PPP_SUPPORT
140 #if PPP_SUPPORT
141 #define PPP_IPV6_SUPPORT				CONFIG_LWIP_PPP_ENABLE_IPV6
142 #define PPP_NOTIFY_PHASE                CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT
143 #define PAP_SUPPORT                     CONFIG_LWIP_PPP_PAP_SUPPORT
144 #define CHAP_SUPPORT                    CONFIG_LWIP_PPP_CHAP_SUPPORT
145 #define MSCHAP_SUPPORT                  CONFIG_LWIP_PPP_MSCHAP_SUPPORT
146 #define MPPE_SUPPORT                    CONFIG_LWIP_PPP_MPPE_SUPPORT
147 #define PPP_MAXIDLEFLAG                 (0)
148 #define PPP_DEBUG_ON                    CONFIG_LWIP_PPP_DEBUG_ON
149 #if PPP_DEBUG_ON
150 #define PPP_DEBUG                       LWIP_DBG_ON
151 #define PRINTPKT_SUPPORT                (1)
152 #define PPP_PROTOCOLNAME                (1)
153 #else
154 #define PPP_DEBUG                       LWIP_DBG_OFF
155 #endif
156 #endif
157 #define LWIP_IPV6                       (0)
158 #define MEMP_NUM_ND6_QUEUE              (0)
159 #define LWIP_ND6_NUM_NEIGHBORS          (0)
160 #define LWIP_HOOK_FILENAME              "lwip_default_hooks.h"
161 #ifdef CONFIG_LWIP_ETHARP_DEBUG
162 #define ETHARP_DEBUG                     LWIP_DBG_ON
163 #else
164 #define ETHARP_DEBUG                     LWIP_DBG_OFF
165 #endif
166 #ifdef CONFIG_LWIP_NETIF_DEBUG
167 #define NETIF_DEBUG                     LWIP_DBG_ON
168 #else
169 #define NETIF_DEBUG                     LWIP_DBG_OFF
170 #endif
171 #ifdef CONFIG_LWIP_PBUF_DEBUG
172 #define PBUF_DEBUG                     LWIP_DBG_ON
173 #else
174 #define PBUF_DEBUG                     LWIP_DBG_OFF
175 #endif
176 #ifdef CONFIG_LWIP_API_LIB_DEBUG
177 #define API_LIB_DEBUG                     LWIP_DBG_ON
178 #else
179 #define API_LIB_DEBUG                     LWIP_DBG_OFF
180 #endif
181 #ifdef CONFIG_LWIP_SOCKETS_DEBUG
182 #define SOCKETS_DEBUG                   LWIP_DBG_ON
183 #else
184 #define SOCKETS_DEBUG                   LWIP_DBG_OFF
185 #endif
186 #ifdef CONFIG_LWIP_ICMP_DEBUG
187 #define ICMP_DEBUG                      LWIP_DBG_ON
188 #else
189 #define ICMP_DEBUG                      LWIP_DBG_OFF
190 #endif
191 #ifdef CONFIG_LWIP_ICMP6_DEBUG
192 #define ICMP6_DEBUG                      LWIP_DBG_ON
193 #else
194 #define ICMP6_DEBUG                      LWIP_DBG_OFF
195 #endif
196 #ifdef CONFIG_LWIP_DHCP_DEBUG
197 #define DHCP_DEBUG                      LWIP_DBG_ON
198 #else
199 #define DHCP_DEBUG                      LWIP_DBG_OFF
200 #endif
201 #ifdef CONFIG_LWIP_DHCP_STATE_DEBUG
202 #define ESP_DHCP_DEBUG                  LWIP_DBG_ON
203 #else
204 #define ESP_DHCP_DEBUG                  LWIP_DBG_OFF
205 #endif
206 #ifdef CONFIG_LWIP_IP_DEBUG
207 #define IP_DEBUG                        LWIP_DBG_ON
208 #else
209 #define IP_DEBUG                        LWIP_DBG_OFF
210 #endif
211 #ifdef CONFIG_LWIP_IP6_DEBUG
212 #define IP6_DEBUG                        LWIP_DBG_ON
213 #else
214 #define IP6_DEBUG                        LWIP_DBG_OFF
215 #endif
216 #ifdef CONFIG_LWIP_TCP_DEBUG
217 #define TCP_DEBUG                        LWIP_DBG_ON
218 #else
219 #define TCP_DEBUG                        LWIP_DBG_OFF
220 #endif
221 #define MEMP_DEBUG                      LWIP_DBG_OFF
222 #define TCP_INPUT_DEBUG                 LWIP_DBG_OFF
223 #define TCP_OUTPUT_DEBUG                LWIP_DBG_OFF
224 #define TCPIP_DEBUG                     LWIP_DBG_OFF
225 #define TCP_OOSEQ_DEBUG                 LWIP_DBG_OFF
226 #define ETHARP_TRUST_IP_MAC             CONFIG_LWIP_ETHARP_TRUST_IP_MAC
227 #define LWIP_POSIX_SOCKETS_IO_NAMES     (0)
228 #define LWIP_SOCKET_OFFSET              (FD_SETSIZE - CONFIG_LWIP_MAX_SOCKETS)
229 #define ESP_LWIP                        (1)
230 #define ESP_LWIP_ARP                    (0)
231 #define ESP_PER_SOC_TCP_WND             (0)
232 #define ESP_THREAD_SAFE                 (0)
233 #define ESP_THREAD_SAFE_DEBUG           LWIP_DBG_OFF
234 #define ESP_DHCP                        (0)
235 #define ESP_DNS                         (0)
236 #define ESP_PERF                        (0)
237 #define ESP_RANDOM_TCP_PORT             (1)
238 #define ESP_IP4_ATON                    (1)
239 #define ESP_LIGHT_SLEEP                 (1)
240 #define ESP_L2_TO_L3_COPY               CONFIG_LWIP_L2_TO_L3_COPY
241 #define ESP_STATS_MEM                   CONFIG_LWIP_STATS
242 #define ESP_STATS_DROP                  CONFIG_LWIP_STATS
243 #define ESP_STATS_TCP                   (0)
244 #define ESP_LWIP_LOGI(...)
245 #define ESP_PING                        (1)
246 #define ESP_HAS_SELECT                  (1)
247 #define ESP_AUTO_RECV                   (1)
248 #define ESP_PBUF                        (1)
249 #define ESP_IPV6                        (0)
250 #define ESP_SOCKET                      (1)
251 #define ESP_LWIP_SELECT                 (1)
252 #define ESP_THREAD_PROTECTION           (0)
253 #define ESP_IRAM_ATTR
254 #define ESP_LWIP_IGMP_TIMERS_ONDEMAND   (1)
255 #define ESP_LWIP_MLD6_TIMERS_ONDEMAND   (1)
256 #define TCP_SND_BUF                     CONFIG_LWIP_TCP_SND_BUF_DEFAULT
257 #define TCP_WND                         CONFIG_LWIP_TCP_WND_DEFAULT
258 #ifdef CONFIG_LWIP_DEBUG
259 #define LWIP_DEBUG                      LWIP_DBG_ON
260 #else
261 #undef LWIP_DEBUG
262 #endif
263 #define CHECKSUM_CHECK_UDP              CONFIG_LWIP_CHECKSUM_CHECK_UDP
264 #define CHECKSUM_CHECK_IP               CONFIG_LWIP_CHECKSUM_CHECK_IP
265 #define CHECKSUM_CHECK_ICMP             CONFIG_LWIP_CHECKSUM_CHECK_ICMP
266 #define LWIP_NETCONN_FULLDUPLEX         (1)
267 #define LWIP_NETCONN_SEM_PER_THREAD     (1)
268 #define LWIP_DHCP_MAX_NTP_SERVERS       CONFIG_LWIP_DHCP_MAX_NTP_SERVERS
269 #define LWIP_TIMEVAL_PRIVATE            (0)
270 #ifdef __cplusplus
271 #define LWIP_FORWARD_DECLARE_C_CXX extern "C"
272 #else
273 #define LWIP_FORWARD_DECLARE_C_CXX
274 #endif
275 
276 #define SNTP_SERVER_DNS                (1)
277 #define SNTP_SUPPRESS_DELAY_CHECK
278 
279 #define SOC_SEND_LOG
280 #undef MQTT_OUTPUT_RINGBUF_SIZE
281 #define MQTT_OUTPUT_RINGBUF_SIZE       (1024)
282 #undef MQTT_VAR_HEADER_BUFFER_LEN
283 #define MQTT_VAR_HEADER_BUFFER_LEN     (1024)
284 #undef MQTT_REQ_MAX_IN_FLIGHT
285 #define MQTT_REQ_MAX_IN_FLIGHT         (15)
286 #undef MQTT_REQ_TIMEOUT
287 #define MQTT_REQ_TIMEOUT               (30)
288 #undef MQTT_CONNECT_TIMOUT
289 #define MQTT_CONNECT_TIMOUT            (100)
290 
291 #if LWIP_NETCONN_SEM_PER_THREAD
292 #define LWIP_NETCONN_THREAD_SEM_GET    sys_thread_sem_get
293 #define LWIP_NETCONN_THREAD_SEM_ALLOC  sys_thread_sem_init
294 #define LWIP_NETCONN_THREAD_SEM_FREE   sys_thread_sem_deinit
295 #endif
296 
297 #endif
298