NetBurner 3.5.0
PDF Version
 
nbrtos/include/constants.h
Go to the documentation of this file.
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
18#include <predef.h>
19
20#ifndef _CONSTANTS_H
21#define _CONSTANTS_H
22
23#define TICK_IRQ_LEVEL (5)
24#define SERIAL_IRQ_LEVEL (3)
25#define SERIAL_VECTOR_BASE (64)
26
41#define TICKS_PER_SECOND (20)
42
49/* #define OS_MAX_IRQ (3) */
50
54#define ETHER_BUFFER_SIZE 1548
55#define ETH_MAX_PAYLOAD (1500)
56#define ETH_MAX_SIZE (1522)
57#define ETH_MIN_SIZE (46)
58#define IP_HEADER_SIZE (20)
59#define UDP_HEADER_SIZE (8)
60#define MAX_UDPDATA (ETH_MAX_PAYLOAD - (IP_HEADER_SIZE + UDP_HEADER_SIZE))
61
62#define SERIAL_TX_BUFFERS (2)
63#define SERIAL_RX_BUFFERS (2)
64#define stdin_buffer_size (200)
67#define OS_MAX_TASKS 32
68
69#define OS_MAX_PRIOS 64
70
71
97#define MAIN_PRIO (50)
98
101#define USB_HW_PRIO (45)
102#define PPP_PRIO (44)
103#define SECURITY_TASK_PRIO (43)
104#define WIFI_STATION_TASK_PRIO (42)
105#define WIFI_TASK_PRIO (41)
106#define CONFIG_SERVER_PRIO (40)
107#define HTTP_PRIO (39)
108#define ETHER_SEND_PRIO (38)
111/* Features */
112#define SSH_TASK_PRIORITY (56)
113
122#if defined NB_SSH_SUPPORTED || defined NB_SSL_SUPPORTED
123#define MAIN_TASK_STK_SIZE (3072)
124#define IP_STK_SIZE (2048)
125#define TCP_STK_SIZE (3072)
126#define HTTP_STK_SIZE (3072)
127#define IDLE_STK_SIZE (2048)
128#define ETHER_SEND_STK_SIZE (2048)
129#define PPP_STK_SIZE (2048)
130#define USB_HW_STK_SIZE (2048)
131#define USER_TASK_STK_SIZE (3072)
132#else /* #ifdef NB_SSH_SUPPORTED */
133#define MAIN_TASK_STK_SIZE (2048)
134#define IP_STK_SIZE (2048)
135#define TCP_STK_SIZE (2048)
136#define HTTP_STK_SIZE (2048)
137#define IDLE_STK_SIZE (2048)
138#define ETHER_SEND_STK_SIZE (2048)
139#define PPP_STK_SIZE (2048)
140#define USB_HW_STK_SIZE (2048)
141#define USER_TASK_STK_SIZE (2048)
142#endif /* #ifdef NB_SSH_SUPPORTED */
149#define DEFAULT_TCP4_MSS (512)
150#define DEFAULT_TCP6_MSS (1200)
151/* See RFC 1122 for a 50msec tick 60 ticks=3 sec 4*15=60 (The 4 comes from stevens Vol1-300) */
152#define DEFAULT_TCP_RTTVAR ((TICKS_PER_SECOND * 3) / 4)
153#define TCP_CONN_TO (75 * TICKS_PER_SECOND)
154#define TCP_ACK_TICK_DLY (TICKS_PER_SECOND / 5)
155#define DEFAULT_INITAL_RTO (TICKS_PER_SECOND * 3)
156#define TCP_MAX_RTO (64 * TICKS_PER_SECOND)
157#define TCP_MIN_RTO (TICKS_PER_SECOND / 2)
158#define TCP_2MSL_WAIT (60 * TICKS_PER_SECOND)
159#define MAX_TCP_RETRY (12)
160#define TCP_WRITE_TIMEOUT (TICKS_PER_SECOND * 10)
161#define TCP_BUFFER_SEGMENTS (5)
162
163#define MAX_MULTICAST_GROUPS (32)
164
165#define HTTP_TIMEOUT (TICKS_PER_SECOND * 10)
166#define HTTP_READ_TIME_LIMIT (30)
167#define HTTP_RX_BUFFERSIZE (10000)
168#define MAX_HTTP_PENDING_SOCKETS (5)
169#define MAX_HTTP_CONNECTED_SOCKETS (5)
170#define MAX_HTTP_POST_VAR_NAME_SIZE (256)
171#define MAX_HTTP_POST_VAR_VALUE_SIZE (256)
172
173
174#define DHCP_DEFAULTTIMEOUT (4)
175#define DHCP_DEFAULTRETRY (5)
176#define DHCP_MAXTIMEOUT (64)
196#define SERIAL_SOCKET_OFFSET (3)
197#define TCP_SOCKET_OFFSET (5)
198#define TCP_SOCKET_STRUCTS (128)
199#define EXTRA_IO_OFFSET (TCP_SOCKET_OFFSET + TCP_SOCKET_STRUCTS)
200#define EXTRA_FDS (122)
201#define TOTAL_FDS (TCP_SOCKET_OFFSET + TCP_SOCKET_STRUCTS + EXTRA_FDS)
202#define FDSET_ELEMENTS ((TOTAL_FDS) / 32)
205#define TASK_TABLE_SIZE 2
206
207#define MAX_IP_ERRS 3
208
209#define BUFFER_POOL_SIZE (256)
210#define POOL_BUFFER_SIZE (sizeof(pool_buffer))
211#define UDP_DISPATCH_SIZE (15)
212#define UDP_MIN_BUFFER_THRESHOLD (10)
213#define ARP_ENTRY_SIZE (256)
214
215#define UDP_NETBURNERID_PORT (0x4E42)
216#define UDP_DHCP_SERVER_PORT (67)
217#define UDP_DHCP_CLIENT_PORT (68)
218#define UDP_MDNS_PORT (5353)
219
220#define TFTP_RX_PORT (1414)
221
222#define LINK_STATUS_CHECK_INTERVAL (2 * TICKS_PER_SECOND)
223
224#define FTPD_SOCKET_TIMEOUT (5 * 60 * TICKS_PER_SECOND)
225
226
227#ifndef _DEBUG
228#define ENABLE_SRAM_SYS
229#endif
230
237#ifdef ENABLE_SRAM_SYS
238#define FAST_SYSTEM_VARIABLES
239
244//#define FAST_IDLE_STACK ///< @b
245#define FAST_MAIN_STACK
246#define FAST_ETHERNET_VARIABLES
247#define FAST_ETHERNET_STACK
248#define FAST_BUFFERS_VARIABLES
249#define FAST_BUFFERS
250#define FAST_IP_VARIABLES
251#define FAST_IP_STACK
252#define FAST_TCP_VARIABLES
253#define FAST_TCP_STACK
254#define FAST_USB_VARIABLES
255#define FAST_USB_STACK
256#define FAST_HTTP_STACK
257//#define FAST_FTP_STACK ///< @b
258//#define FAST_WIFI_STACK ///< @b
259//#define FAST_PPP_STACK ///< @b
260//#define FAST_COMMAND_STACK ///< @b
268#define FAST_USER_VARIABLES
269#define FAST_USER_STACK
270
271#define FAST_TLS_VARIABLES
274#endif
277#ifdef FAST_SYSTEM_VARIABLES
278#define FAST_SYS_VAR __attribute__((section("SYS_VAR_SECT")))
279#define FAST_SYS_VAR_REL __attribute__((section("SYS_VAR_SECT_REL")))
280#define FAST_SYS_VAR_REL_STR __attribute__((section("SYS_VAR_SECT_REL_STR")))
281#else
282#define FAST_SYS_VAR
283#define FAST_SYS_VAR_REL
284#define FAST_SYS_VAR_REL_STR
285#endif
286#ifdef FAST_IDLE_STACK
287#define FAST_IDLE_STK __attribute__((section("IDLE_STK_SECT")))
288#else
289#define FAST_IDLE_STK
290#endif
291#ifdef FAST_MAIN_STACK
292#define FAST_MAIN_STK __attribute__((section("MAIN_STK_SECT")))
293#else
294#define FAST_MAIN_STK
295#endif
296#ifdef FAST_USER_STACK
297#define FAST_USER_STK __attribute__((section("USER_STK_SECT")))
298#else
299#define FAST_USER_STK
300#endif
301#ifdef FAST_USER_VARIABLES
302#define FAST_USER_VAR __attribute__((section("USER_VAR_SECT")))
303#else
304#define FAST_USER_VAR
305#endif
306#ifdef FAST_ETHERNET_VARIABLES
307#define FAST_ETHER_VAR __attribute__((section("ETHER_VAR_SECT")))
308#define FAST_ETHER_VAR_REL __attribute__((section("ETHER_VAR_SECT_REL")))
309#else
310#define FAST_ETHER_VAR
311#define FAST_ETHER_VAR_REL
312#endif
313#ifdef FAST_ETHERNET_STACK
314#define FAST_ETHER_STK __attribute__((section("ETHER_STK_SECT")))
315#else
316#define FAST_ETHER_STK
317#endif
318#ifdef FAST_IP_VARIABLES
319#define FAST_IP_VAR __attribute__((section("IP_VAR_SECT")))
320#define FAST_IP_VAR_REL __attribute__((section("IP_VAR_SECT_REL")))
321#else
322#define FAST_IP_VAR
323#define FAST_IP_VAR_REL
324#endif
325#ifdef FAST_IP_STACK
326#define FAST_IP_STK __attribute__((section("IP_STK_SECT")))
327#else
328#define FAST_IP_STK
329#endif
330#ifdef FAST_TCP_VARIABLES
331#define FAST_TCP_VAR __attribute__((section("TCP_VAR_SECT")))
332#define FAST_TCP_VAR_REL __attribute__((section("TCP_VAR_SECT_REL")))
333#else
334#define FAST_TCP_VAR
335#define FAST_TCP_VAR_REL
336#endif
337#ifdef FAST_TCP_STACK
338#define FAST_TCP_STK __attribute__((section("TCP_STK_SECT")))
339#else
340#define FAST_TCP_STK
341#endif
342#ifdef FAST_HTTP_STACK
343#define FAST_HTTP_STK __attribute__((section("HTTP_STK_SECT")))
344#else
345#define FAST_HTTP_STK
346#endif
347#ifdef FAST_FTP_STACK
348#define FAST_FTP_STK __attribute__((section("FTP_STK_SECT")))
349#else
350#define FAST_FTP_STK
351#endif
352#ifdef FAST_WIFI_STACK
353#define FAST_WIFI_STK __attribute__((section("WIFI_STK_SECT")))
354#else
355#define FAST_WIFI_STK
356#endif
357#ifdef FAST_PPP_STACK
358#define FAST_PPP_STK __attribute__((section("PPP_STK_SECT")))
359#else
360#define FAST_PPP_STK
361#endif
362#ifdef FAST_COMMAND_STACK
363#define FAST_COMMAND_STK __attribute__((section("COMMAND_STK_SECT")))
364#else
365#define FAST_COMMAND_STK
366#endif
367#ifdef FAST_BUFFERS_VARIABLES
368#define FAST_BUFF_VAR __attribute__((section("BUFFERS_VAR_SECT")))
369#define FAST_BUFF_VAR_REL __attribute__((section("BUFFERS_VAR_SECT_REL")))
370#else
371#define FAST_BUFF_VAR
372#define FAST_BUFF_VAR_REL
373#endif
374#ifdef FAST_TLS_VARIABLES
375#define FAST_TLS_VAR __attribute__((section("TLS_VAR_SECT")))
376#define FAST_TLS_VAR_REL __attribute__((section("TLS_VAR_SECT_REL")))
377#else
378#define FAST_TLS_VAR
379#define FAST_TLS_VAR_REL
380#endif
381#ifdef FAST_USB_VARIABLES
382#define FAST_USB_VAR __attribute__((section("USB_VAR_SECT")))
383#define FAST_USB_VAR_REL __attribute__((section("USB_VAR_SECT_REL")))
384#else
385#define FAST_USB_VAR
386#define FAST_USB_VAR_REL
387#endif
388#ifdef FAST_USB_STACK
389#define FAST_USB_STK __attribute__((section("USB_STK_SECT")))
390#else
391#define FAST_USB_STK
392#endif
393
394#define DO_NOT_CACHE __attribute__((section("NO_CACHE_SECT")))
395
396#define FIRST_UNUSED_TIMER (-1)
397
401#define NumberOfConfigWebChannels 12
402#define ConfigActionIdleTimeout (TICKS_PER_SECOND * 30)
403#define MAX_HDR_SIZE (256)
404#define MAX_CONFIG_TCP_OUTPUT_BUFFERS (40)
408#define NUM_DNS_CACHE (16)
409
410#endif /* #ifndef _CONSTANTS_H */
411