NetBurner 3.5.7
PDF Version
constants.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
18#include <predef.h>
19
20#ifndef _CONSTANTS_H
21#define _CONSTANTS_H
22#include <constants-overload.h>
23
24#ifndef TICK_IRQ_LEVEL
25 #define TICK_IRQ_LEVEL (5)
26#endif
27#ifndef SERIAL_IRQ_LEVEL
28 #define SERIAL_IRQ_LEVEL (3)
29#endif
30#ifndef SERIAL_VECTOR_BASE
31 #define SERIAL_VECTOR_BASE (64)
32#endif
33
48#ifndef TICKS_PER_SECOND
49 #define TICKS_PER_SECOND (20)
50#endif
51
58/* #define OS_MAX_IRQ (3) */
59
63#ifndef ETHER_BUFFER_SIZE
64 #define ETHER_BUFFER_SIZE (1548)
65#endif
66#ifndef ETH_MAX_PAYLOAD
67 #define ETH_MAX_PAYLOAD (1500)
68#endif
69#ifndef ETH_MAX_SIZE
70 #define ETH_MAX_SIZE (1522)
71#endif
72#ifndef ETH_MIN_SIZE
73 #define ETH_MIN_SIZE (46)
74#endif
75#ifndef IP_HEADER_SIZE
76 #define IP_HEADER_SIZE (20)
77#endif
78#ifndef UDP_HEADER_SIZE
79 #define UDP_HEADER_SIZE (8)
80#endif
81#ifndef MAX_UDPDATA
82 #define MAX_UDPDATA (ETH_MAX_PAYLOAD - (IP_HEADER_SIZE + UDP_HEADER_SIZE))
83#endif
84
85#ifndef SERIAL_TX_BUFFERS
86 #define SERIAL_TX_BUFFERS (2)
87#endif
88#ifndef SERIAL_RX_BUFFERS
89 #define SERIAL_RX_BUFFERS (2)
90#endif
91#ifndef stdin_buffer_size
92 #define stdin_buffer_size (200)
93#endif
96#ifndef OS_MAX_TASKS
97 #define OS_MAX_TASKS (32)
98#endif
99
100#ifndef OS_MAX_PRIOS
101 #define OS_MAX_PRIOS (64)
102#endif
103
129#ifndef MAIN_PRIO
130 #define MAIN_PRIO (50)
131#endif
132
135#ifndef USB_HW_PRIO
136 #define USB_HW_PRIO (45)
137#endif
138#ifndef PPP_PRIO
139 #define PPP_PRIO (44)
140#endif
141#ifndef SECURITY_TASK_PRIO
142 #define SECURITY_TASK_PRIO (43)
143#endif
144#ifndef WIFI_STATION_TASK_PRIO
145 #define WIFI_STATION_TASK_PRIO (42)
146#endif
147#ifndef WIFI_TASK_PRIO
148 #define WIFI_TASK_PRIO (41)
149#endif
150#ifndef CONFIG_SERVER_PRIO
151 #define CONFIG_SERVER_PRIO (40)
152#endif
153#ifndef HTTP_PRIO
154 #define HTTP_PRIO (39)
155#endif
156#ifndef ETHER_SEND_PRIO
157 #define ETHER_SEND_PRIO (38)
158#endif
159#ifndef USB_TASK_PRIO
160 #define USB_TASK_PRIO (4)
161#endif
162#ifndef MQTT_TASK_PRIO
163 #define MQTT_TASK_PRIO (MAIN_PRIO-1)
164#endif
165
168/* Features */
169#ifndef SSH_TASK_PRIORITY
170 #define SSH_TASK_PRIORITY (56)
171#endif
172
181#if defined NB_SSH_SUPPORTED || defined NB_SSL_SUPPORTED
182#ifndef MAIN_TASK_STK_SIZE
183 #define MAIN_TASK_STK_SIZE (3072)
184#endif
185#ifndef IP_STK_SIZE
186 #define IP_STK_SIZE (2048)
187#endif
188#ifndef TCP_STK_SIZE
189 #define TCP_STK_SIZE (3072)
190#endif
191#ifndef HTTP_STK_SIZE
192 #define HTTP_STK_SIZE (3072)
193#endif
194#ifndef IDLE_STK_SIZE
195 #define IDLE_STK_SIZE (2048)
196#endif
197#ifndef ETHER_SEND_STK_SIZE
198 #define ETHER_SEND_STK_SIZE (2048)
199#endif
200#ifndef PPP_STK_SIZE
201 #define PPP_STK_SIZE (2048)
202#endif
203#ifndef USB_HW_STK_SIZE
204 #define USB_HW_STK_SIZE (2048)
205#endif
206#ifndef USER_TASK_STK_SIZE
207 #define USER_TASK_STK_SIZE (3072)
208#endif
209#else /* #ifdef NB_SSH_SUPPORTED */
210#ifndef MAIN_TASK_STK_SIZE
211 #define MAIN_TASK_STK_SIZE (2048)
212#endif
213#ifndef IP_STK_SIZE
214 #define IP_STK_SIZE (2048)
215#endif
216#ifndef TCP_STK_SIZE
217 #define TCP_STK_SIZE (2048)
218#endif
219#ifndef HTTP_STK_SIZE
220 #define HTTP_STK_SIZE (2048)
221#endif
222#ifndef IDLE_STK_SIZE
223 #define IDLE_STK_SIZE (2048)
224#endif
225#ifndef ETHER_SEND_STK_SIZE
226 #define ETHER_SEND_STK_SIZE (2048)
227#endif
228#ifndef PPP_STK_SIZE
229 #define PPP_STK_SIZE (2048)
230#endif
231#ifndef USB_HW_STK_SIZE
232 #define USB_HW_STK_SIZE (2048)
233#endif
234#ifndef USER_TASK_STK_SIZE
235 #define USER_TASK_STK_SIZE (2048)
236#endif
237#endif /* #ifdef NB_SSH_SUPPORTED */
244#ifndef DEFAULT_TCP4_MSS
245 #define DEFAULT_TCP4_MSS (512)
246#endif
247#ifndef DEFAULT_TCP6_MSS
248 #define DEFAULT_TCP6_MSS (1200)
249#endif
250/* See RFC 1122 for a 50msec tick 60 ticks=3 sec 4*15=60 (The 4 comes from stevens Vol1-300) */
251#ifndef DEFAULT_TCP_RTTVAR
252 #define DEFAULT_TCP_RTTVAR ((TICKS_PER_SECOND * 3) / 4)
253#endif
254#ifndef TCP_CONN_TO
255 #define TCP_CONN_TO (75 * TICKS_PER_SECOND)
256#endif
257#ifndef TCP_ACK_TICK_DLY
258 #define TCP_ACK_TICK_DLY (TICKS_PER_SECOND / 5)
259#endif
260#ifndef DEFAULT_INITAL_RTO
261 #define DEFAULT_INITAL_RTO (TICKS_PER_SECOND * 3)
262#endif
263#ifndef TCP_MAX_RTO
264 #define TCP_MAX_RTO (64 * TICKS_PER_SECOND)
265#endif
266#ifndef TCP_MIN_RTO
267 #define TCP_MIN_RTO (TICKS_PER_SECOND / 2)
268#endif
269#ifndef TCP_2MSL_WAIT
270 #define TCP_2MSL_WAIT (60 * TICKS_PER_SECOND)
271#endif
272#ifndef MAX_TCP_RETRY
273 #define MAX_TCP_RETRY (12)
274#endif
275#ifndef TCP_WRITE_TIMEOUT
276 #define TCP_WRITE_TIMEOUT (TICKS_PER_SECOND * 10)
277#endif
278#ifndef TCP_BUFFER_SEGMENTS
279 #define TCP_BUFFER_SEGMENTS (5)
280#endif
281
282#ifndef MAX_MULTICAST_GROUPS
283 #define MAX_MULTICAST_GROUPS (32)
284#endif
285
286#ifndef HTTP_TIMEOUT
287 #define HTTP_TIMEOUT (TICKS_PER_SECOND * 10)
288#endif
289#ifndef HTTP_READ_TIME_LIMIT
290 #define HTTP_READ_TIME_LIMIT (30)
291#endif
292#ifndef HTTP_RX_BUFFERSIZE
293 #define HTTP_RX_BUFFERSIZE (10000)
294#endif
295#ifndef MAX_HTTP_PENDING_SOCKETS
296 #define MAX_HTTP_PENDING_SOCKETS (5)
297#endif
298#ifndef MAX_HTTP_CONNECTED_SOCKETS
299 #define MAX_HTTP_CONNECTED_SOCKETS (5)
300#endif
301#ifndef MAX_HTTP_POST_VAR_NAME_SIZE
302 #define MAX_HTTP_POST_VAR_NAME_SIZE (256)
303#endif
304#ifndef MAX_HTTP_POST_VAR_VALUE_SIZE
305 #define MAX_HTTP_POST_VAR_VALUE_SIZE (256)
306#endif
307
308
309#ifndef DHCP_DEFAULTTIMEOUT
310 #define DHCP_DEFAULTTIMEOUT (4)
311#endif
312#ifndef DHCP_DEFAULTRETRY
313 #define DHCP_DEFAULTRETRY (5)
314#endif
315#ifndef DHCP_MAXTIMEOUT
316 #define DHCP_MAXTIMEOUT (64)
317#endif
337#ifndef SERIAL_SOCKET_OFFSET
338 #define SERIAL_SOCKET_OFFSET (3)
339#endif
340#ifndef TCP_SOCKET_OFFSET
341 #define TCP_SOCKET_OFFSET (5)
342#endif
343#ifndef TCP_SOCKET_STRUCTS
344 #define TCP_SOCKET_STRUCTS (128)
345#endif
346#ifndef EXTRA_IO_OFFSET
347 #define EXTRA_IO_OFFSET (TCP_SOCKET_OFFSET + TCP_SOCKET_STRUCTS)
348#endif
349#ifndef EXTRA_FDS
350 #define EXTRA_FDS (122)
351#endif
352#ifndef TOTAL_FDS
353 #define TOTAL_FDS (TCP_SOCKET_OFFSET + TCP_SOCKET_STRUCTS + EXTRA_FDS)
354#endif
355#ifndef FDSET_ELEMENTS
356 #define FDSET_ELEMENTS ((TOTAL_FDS) / 32 + ((TOTAL_FDS/32*32)!=TOTAL_FDS))
357#endif
360#ifndef WS_MAX_SOCKS
361 #define WS_MAX_SOCKS (4)
362#endif
363#ifndef RC_WS_MAX_SOCKS
364 #define RC_WS_MAX_SOCKS (4)
365#endif
366
367#ifndef TASK_TABLE_SIZE
368 #define TASK_TABLE_SIZE (OS_MAX_PRIOS/32 + ((OS_MAX_PRIOS/32*32)!= OS_MAX_PRIOS))
369#endif
370
371#ifndef MAX_IP_ERRS
372 #define MAX_IP_ERRS (3)
373#endif
374
375#ifndef BUFFER_POOL_SIZE
376 #define BUFFER_POOL_SIZE (256)
377#endif
378#ifndef POOL_BUFFER_SIZE
379 #define POOL_BUFFER_SIZE (sizeof(pool_buffer))
380#endif
381#ifndef UDP_DISPATCH_SIZE
382 #define UDP_DISPATCH_SIZE (15)
383#endif
384#ifndef UDP_MIN_BUFFER_THRESHOLD
385 #define UDP_MIN_BUFFER_THRESHOLD (10)
386#endif
387#ifndef ARP_ENTRY_SIZE
388 #define ARP_ENTRY_SIZE (256)
389#endif
390
391#ifndef UDP_NETBURNERID_PORT
392 #define UDP_NETBURNERID_PORT (0x4E42)
393#endif
394#ifndef UDP_DHCP_SERVER_PORT
395 #define UDP_DHCP_SERVER_PORT (67)
396#endif
397#ifndef UDP_DHCP_CLIENT_PORT
398 #define UDP_DHCP_CLIENT_PORT (68)
399#endif
400#ifndef UDP_MDNS_PORT
401 #define UDP_MDNS_PORT (5353)
402#endif
403
404#ifndef TFTP_RX_PORT
405 #define TFTP_RX_PORT (1414)
406#endif
407
408#ifndef LINK_STATUS_CHECK_INTERVAL
409 #define LINK_STATUS_CHECK_INTERVAL (2 * TICKS_PER_SECOND)
410#endif
411
412#ifndef FTPD_SOCKET_TIMEOUT
413 #define FTPD_SOCKET_TIMEOUT (5 * 60 * TICKS_PER_SECOND)
414#endif
415
416
417#ifndef _DEBUG
418#define ENABLE_SRAM_SYS
419#endif
420
427#if ((defined ENABLE_SRAM_SYS) && (!defined NO_ENABLE_SRAM_SYS))
428#define FAST_SYSTEM_VARIABLES
429
434//#define FAST_IDLE_STACK ///< @b
435#define FAST_MAIN_STACK
436#define FAST_ETHERNET_VARIABLES
437#define FAST_ETHERNET_STACK
438#define FAST_BUFFERS_VARIABLES
439#define FAST_BUFFERS
440#define FAST_IP_VARIABLES
441#define FAST_IP_STACK
442#define FAST_TCP_VARIABLES
443#define FAST_TCP_STACK
444#define FAST_USB_VARIABLES
445#define FAST_USB_STACK
446#define FAST_HTTP_STACK
447//#define FAST_FTP_STACK ///< @b
448//#define FAST_WIFI_STACK ///< @b
449//#define FAST_PPP_STACK ///< @b
450//#define FAST_COMMAND_STACK ///< @b
458#define FAST_USER_VARIABLES
459#define FAST_USER_STACK
460
461#define FAST_TLS_VARIABLES
464#endif
467#if ((defined FAST_SYSTEM_VARIABLES) && (!defined NO_FAST_SYSTEM_VARIABLES))
468#define FAST_SYS_VAR __attribute__((section("SYS_VAR_SECT")))
469#define FAST_SYS_VAR_REL __attribute__((section("SYS_VAR_SECT_REL")))
470#define FAST_SYS_VAR_REL_STR __attribute__((section("SYS_VAR_SECT_REL_STR")))
471#else
472#define FAST_SYS_VAR
473#define FAST_SYS_VAR_REL
474#define FAST_SYS_VAR_REL_STR
475#endif
476#if ((defined FAST_IDLE_STACK) && (!defined NO_FAST_IDLE_STACK))
477#define FAST_IDLE_STK __attribute__((section("IDLE_STK_SECT")))
478#else
479#define FAST_IDLE_STK
480#endif
481#if ((defined FAST_MAIN_STACK) && (!defined NO_FAST_MAIN_STACK))
482#define FAST_MAIN_STK __attribute__((section("MAIN_STK_SECT")))
483#else
484#define FAST_MAIN_STK
485#endif
486#if ((defined FAST_USER_STACK) && (!defined NO_FAST_USER_STACK))
487#define FAST_USER_STK __attribute__((section("USER_STK_SECT")))
488#else
489#define FAST_USER_STK
490#endif
491#if ((defined FAST_USER_VARIABLES) && (!defined NO_FAST_USER_VARIABLES))
492#define FAST_USER_VAR __attribute__((section("USER_VAR_SECT")))
493#else
494#define FAST_USER_VAR
495#endif
496#if ((defined FAST_ETHERNET_VARIABLES) && (!defined NO_FAST_ETHERNET_VARIABLES))
497#define FAST_ETHER_VAR __attribute__((section("ETHER_VAR_SECT")))
498#define FAST_ETHER_VAR_REL __attribute__((section("ETHER_VAR_SECT_REL")))
499#else
500#define FAST_ETHER_VAR
501#define FAST_ETHER_VAR_REL
502#endif
503#if ((defined FAST_ETHERNET_STACK) && (!defined NO_FAST_ETHERNET_STACK))
504#define FAST_ETHER_STK __attribute__((section("ETHER_STK_SECT")))
505#else
506#define FAST_ETHER_STK
507#endif
508#if ((defined FAST_IP_VARIABLES) && (!defined NO_FAST_IP_VARIABLES))
509#define FAST_IP_VAR __attribute__((section("IP_VAR_SECT")))
510#define FAST_IP_VAR_REL __attribute__((section("IP_VAR_SECT_REL")))
511#else
512#define FAST_IP_VAR
513#define FAST_IP_VAR_REL
514#endif
515#if ((defined FAST_IP_STACK) && (!defined NO_FAST_IP_STACK))
516#define FAST_IP_STK __attribute__((section("IP_STK_SECT")))
517#else
518#define FAST_IP_STK
519#endif
520#if ((defined FAST_TCP_VARIABLES) && (!defined NO_FAST_TCP_VARIABLES))
521#define FAST_TCP_VAR __attribute__((section("TCP_VAR_SECT")))
522#define FAST_TCP_VAR_REL __attribute__((section("TCP_VAR_SECT_REL")))
523#else
524#define FAST_TCP_VAR
525#define FAST_TCP_VAR_REL
526#endif
527#if ((defined FAST_TCP_STACK) && (!defined NO_FAST_TCP_STACK))
528#define FAST_TCP_STK __attribute__((section("TCP_STK_SECT")))
529#else
530#define FAST_TCP_STK
531#endif
532#if ((defined FAST_HTTP_STACK) && (!defined NO_FAST_HTTP_STACK))
533#define FAST_HTTP_STK __attribute__((section("HTTP_STK_SECT")))
534#else
535#define FAST_HTTP_STK
536#endif
537#if ((defined FAST_FTP_STACK) && (!defined NO_FAST_FTP_STACK))
538#define FAST_FTP_STK __attribute__((section("FTP_STK_SECT")))
539#else
540#define FAST_FTP_STK
541#endif
542#if ((defined FAST_WIFI_STACK) && (!defined NO_FAST_WIFI_STACK))
543#define FAST_WIFI_STK __attribute__((section("WIFI_STK_SECT")))
544#else
545#define FAST_WIFI_STK
546#endif
547#if ((defined FAST_PPP_STACK) && (!defined NO_FAST_PPP_STACK))
548#define FAST_PPP_STK __attribute__((section("PPP_STK_SECT")))
549#else
550#define FAST_PPP_STK
551#endif
552#if ((defined FAST_COMMAND_STACK) && (!defined NO_FAST_COMMAND_STACK))
553#define FAST_COMMAND_STK __attribute__((section("COMMAND_STK_SECT")))
554#else
555#define FAST_COMMAND_STK
556#endif
557#if ((defined FAST_BUFFERS_VARIABLES) && (!defined NO_FAST_BUFFERS_VARIABLES))
558#define FAST_BUFF_VAR __attribute__((section("BUFFERS_VAR_SECT")))
559#define FAST_BUFF_VAR_REL __attribute__((section("BUFFERS_VAR_SECT_REL")))
560#else
561#define FAST_BUFF_VAR
562#define FAST_BUFF_VAR_REL
563#endif
564#if ((defined FAST_TLS_VARIABLES) && (!defined NO_FAST_TLS_VARIABLES))
565#define FAST_TLS_VAR __attribute__((section("TLS_VAR_SECT")))
566#define FAST_TLS_VAR_REL __attribute__((section("TLS_VAR_SECT_REL")))
567#else
568#define FAST_TLS_VAR
569#define FAST_TLS_VAR_REL
570#endif
571#if ((defined FAST_USB_VARIABLES) && (!defined NO_FAST_USB_VARIABLES))
572#define FAST_USB_VAR __attribute__((section("USB_VAR_SECT")))
573#define FAST_USB_VAR_REL __attribute__((section("USB_VAR_SECT_REL")))
574#else
575#define FAST_USB_VAR
576#define FAST_USB_VAR_REL
577#endif
578#if ((defined FAST_USB_STACK) && (!defined NO_FAST_USB_STACK))
579#define FAST_USB_STK __attribute__((section("USB_STK_SECT")))
580#else
581#define FAST_USB_STK
582#endif
583
584#define DO_NOT_CACHE __attribute__((section("NO_CACHE_SECT")))
585
586#ifndef FIRST_UNUSED_TIMER
587 #define FIRST_UNUSED_TIMER (-1)
588#endif
589
593#ifndef NumberOfConfigWebChannels
594 #define NumberOfConfigWebChannels (12)
595#endif
596#ifndef ConfigActionIdleTimeout
597 #define ConfigActionIdleTimeout (TICKS_PER_SECOND * 30)
598#endif
599#ifndef MAX_HDR_SIZE
600 #define MAX_HDR_SIZE (256)
601#endif
602#ifndef MAX_CONFIG_TCP_OUTPUT_BUFFERS
603 #define MAX_CONFIG_TCP_OUTPUT_BUFFERS (40)
604#endif
608#ifndef NUM_DNS_CACHE
609 #define NUM_DNS_CACHE (16)
610#endif
611
612#endif /* #ifndef _CONSTANTS_H */
613
614#include <constants-overload-undefs.h>