NetBurner 3.5.6
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 TASK_TABLE_SIZE
361 #define TASK_TABLE_SIZE (OS_MAX_PRIOS/32 + ((OS_MAX_PRIOS/32*32)!= OS_MAX_PRIOS))
362#endif
363
364#ifndef MAX_IP_ERRS
365 #define MAX_IP_ERRS (3)
366#endif
367
368#ifndef BUFFER_POOL_SIZE
369 #define BUFFER_POOL_SIZE (256)
370#endif
371#ifndef POOL_BUFFER_SIZE
372 #define POOL_BUFFER_SIZE (sizeof(pool_buffer))
373#endif
374#ifndef UDP_DISPATCH_SIZE
375 #define UDP_DISPATCH_SIZE (15)
376#endif
377#ifndef UDP_MIN_BUFFER_THRESHOLD
378 #define UDP_MIN_BUFFER_THRESHOLD (10)
379#endif
380#ifndef ARP_ENTRY_SIZE
381 #define ARP_ENTRY_SIZE (256)
382#endif
383
384#ifndef UDP_NETBURNERID_PORT
385 #define UDP_NETBURNERID_PORT (0x4E42)
386#endif
387#ifndef UDP_DHCP_SERVER_PORT
388 #define UDP_DHCP_SERVER_PORT (67)
389#endif
390#ifndef UDP_DHCP_CLIENT_PORT
391 #define UDP_DHCP_CLIENT_PORT (68)
392#endif
393#ifndef UDP_MDNS_PORT
394 #define UDP_MDNS_PORT (5353)
395#endif
396
397#ifndef TFTP_RX_PORT
398 #define TFTP_RX_PORT (1414)
399#endif
400
401#ifndef LINK_STATUS_CHECK_INTERVAL
402 #define LINK_STATUS_CHECK_INTERVAL (2 * TICKS_PER_SECOND)
403#endif
404
405#ifndef FTPD_SOCKET_TIMEOUT
406 #define FTPD_SOCKET_TIMEOUT (5 * 60 * TICKS_PER_SECOND)
407#endif
408
409
410#ifndef _DEBUG
411#define ENABLE_SRAM_SYS
412#endif
413
420#if ((defined ENABLE_SRAM_SYS) && (!defined NO_ENABLE_SRAM_SYS))
421#define FAST_SYSTEM_VARIABLES
422
427//#define FAST_IDLE_STACK ///< @b
428#define FAST_MAIN_STACK
429#define FAST_ETHERNET_VARIABLES
430#define FAST_ETHERNET_STACK
431#define FAST_BUFFERS_VARIABLES
432#define FAST_BUFFERS
433#define FAST_IP_VARIABLES
434#define FAST_IP_STACK
435#define FAST_TCP_VARIABLES
436#define FAST_TCP_STACK
437#define FAST_USB_VARIABLES
438#define FAST_USB_STACK
439#define FAST_HTTP_STACK
440//#define FAST_FTP_STACK ///< @b
441//#define FAST_WIFI_STACK ///< @b
442//#define FAST_PPP_STACK ///< @b
443//#define FAST_COMMAND_STACK ///< @b
451#define FAST_USER_VARIABLES
452#define FAST_USER_STACK
453
454#define FAST_TLS_VARIABLES
457#endif
460#if ((defined FAST_SYSTEM_VARIABLES) && (!defined NO_FAST_SYSTEM_VARIABLES))
461#define FAST_SYS_VAR __attribute__((section("SYS_VAR_SECT")))
462#define FAST_SYS_VAR_REL __attribute__((section("SYS_VAR_SECT_REL")))
463#define FAST_SYS_VAR_REL_STR __attribute__((section("SYS_VAR_SECT_REL_STR")))
464#else
465#define FAST_SYS_VAR
466#define FAST_SYS_VAR_REL
467#define FAST_SYS_VAR_REL_STR
468#endif
469#if ((defined FAST_IDLE_STACK) && (!defined NO_FAST_IDLE_STACK))
470#define FAST_IDLE_STK __attribute__((section("IDLE_STK_SECT")))
471#else
472#define FAST_IDLE_STK
473#endif
474#if ((defined FAST_MAIN_STACK) && (!defined NO_FAST_MAIN_STACK))
475#define FAST_MAIN_STK __attribute__((section("MAIN_STK_SECT")))
476#else
477#define FAST_MAIN_STK
478#endif
479#if ((defined FAST_USER_STACK) && (!defined NO_FAST_USER_STACK))
480#define FAST_USER_STK __attribute__((section("USER_STK_SECT")))
481#else
482#define FAST_USER_STK
483#endif
484#if ((defined FAST_USER_VARIABLES) && (!defined NO_FAST_USER_VARIABLES))
485#define FAST_USER_VAR __attribute__((section("USER_VAR_SECT")))
486#else
487#define FAST_USER_VAR
488#endif
489#if ((defined FAST_ETHERNET_VARIABLES) && (!defined NO_FAST_ETHERNET_VARIABLES))
490#define FAST_ETHER_VAR __attribute__((section("ETHER_VAR_SECT")))
491#define FAST_ETHER_VAR_REL __attribute__((section("ETHER_VAR_SECT_REL")))
492#else
493#define FAST_ETHER_VAR
494#define FAST_ETHER_VAR_REL
495#endif
496#if ((defined FAST_ETHERNET_STACK) && (!defined NO_FAST_ETHERNET_STACK))
497#define FAST_ETHER_STK __attribute__((section("ETHER_STK_SECT")))
498#else
499#define FAST_ETHER_STK
500#endif
501#if ((defined FAST_IP_VARIABLES) && (!defined NO_FAST_IP_VARIABLES))
502#define FAST_IP_VAR __attribute__((section("IP_VAR_SECT")))
503#define FAST_IP_VAR_REL __attribute__((section("IP_VAR_SECT_REL")))
504#else
505#define FAST_IP_VAR
506#define FAST_IP_VAR_REL
507#endif
508#if ((defined FAST_IP_STACK) && (!defined NO_FAST_IP_STACK))
509#define FAST_IP_STK __attribute__((section("IP_STK_SECT")))
510#else
511#define FAST_IP_STK
512#endif
513#if ((defined FAST_TCP_VARIABLES) && (!defined NO_FAST_TCP_VARIABLES))
514#define FAST_TCP_VAR __attribute__((section("TCP_VAR_SECT")))
515#define FAST_TCP_VAR_REL __attribute__((section("TCP_VAR_SECT_REL")))
516#else
517#define FAST_TCP_VAR
518#define FAST_TCP_VAR_REL
519#endif
520#if ((defined FAST_TCP_STACK) && (!defined NO_FAST_TCP_STACK))
521#define FAST_TCP_STK __attribute__((section("TCP_STK_SECT")))
522#else
523#define FAST_TCP_STK
524#endif
525#if ((defined FAST_HTTP_STACK) && (!defined NO_FAST_HTTP_STACK))
526#define FAST_HTTP_STK __attribute__((section("HTTP_STK_SECT")))
527#else
528#define FAST_HTTP_STK
529#endif
530#if ((defined FAST_FTP_STACK) && (!defined NO_FAST_FTP_STACK))
531#define FAST_FTP_STK __attribute__((section("FTP_STK_SECT")))
532#else
533#define FAST_FTP_STK
534#endif
535#if ((defined FAST_WIFI_STACK) && (!defined NO_FAST_WIFI_STACK))
536#define FAST_WIFI_STK __attribute__((section("WIFI_STK_SECT")))
537#else
538#define FAST_WIFI_STK
539#endif
540#if ((defined FAST_PPP_STACK) && (!defined NO_FAST_PPP_STACK))
541#define FAST_PPP_STK __attribute__((section("PPP_STK_SECT")))
542#else
543#define FAST_PPP_STK
544#endif
545#if ((defined FAST_COMMAND_STACK) && (!defined NO_FAST_COMMAND_STACK))
546#define FAST_COMMAND_STK __attribute__((section("COMMAND_STK_SECT")))
547#else
548#define FAST_COMMAND_STK
549#endif
550#if ((defined FAST_BUFFERS_VARIABLES) && (!defined NO_FAST_BUFFERS_VARIABLES))
551#define FAST_BUFF_VAR __attribute__((section("BUFFERS_VAR_SECT")))
552#define FAST_BUFF_VAR_REL __attribute__((section("BUFFERS_VAR_SECT_REL")))
553#else
554#define FAST_BUFF_VAR
555#define FAST_BUFF_VAR_REL
556#endif
557#if ((defined FAST_TLS_VARIABLES) && (!defined NO_FAST_TLS_VARIABLES))
558#define FAST_TLS_VAR __attribute__((section("TLS_VAR_SECT")))
559#define FAST_TLS_VAR_REL __attribute__((section("TLS_VAR_SECT_REL")))
560#else
561#define FAST_TLS_VAR
562#define FAST_TLS_VAR_REL
563#endif
564#if ((defined FAST_USB_VARIABLES) && (!defined NO_FAST_USB_VARIABLES))
565#define FAST_USB_VAR __attribute__((section("USB_VAR_SECT")))
566#define FAST_USB_VAR_REL __attribute__((section("USB_VAR_SECT_REL")))
567#else
568#define FAST_USB_VAR
569#define FAST_USB_VAR_REL
570#endif
571#if ((defined FAST_USB_STACK) && (!defined NO_FAST_USB_STACK))
572#define FAST_USB_STK __attribute__((section("USB_STK_SECT")))
573#else
574#define FAST_USB_STK
575#endif
576
577#define DO_NOT_CACHE __attribute__((section("NO_CACHE_SECT")))
578
579#ifndef FIRST_UNUSED_TIMER
580 #define FIRST_UNUSED_TIMER (-1)
581#endif
582
586#ifndef NumberOfConfigWebChannels
587 #define NumberOfConfigWebChannels (12)
588#endif
589#ifndef ConfigActionIdleTimeout
590 #define ConfigActionIdleTimeout (TICKS_PER_SECOND * 30)
591#endif
592#ifndef MAX_HDR_SIZE
593 #define MAX_HDR_SIZE (256)
594#endif
595#ifndef MAX_CONFIG_TCP_OUTPUT_BUFFERS
596 #define MAX_CONFIG_TCP_OUTPUT_BUFFERS (40)
597#endif
601#ifndef NUM_DNS_CACHE
602 #define NUM_DNS_CACHE (16)
603#endif
604
605#endif /* #ifndef _CONSTANTS_H */
606