Loading...
Searching...
No Matches
lwipopts.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
19
20#include "thread.h"
21#include "net/gnrc/netif/hdr.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
32#if defined(MODULE_LWIP_ARP) && defined(MODULE_LWIP_ETHERNET)
33#define LWIP_ARP 1
34#else /* MODULE_LWIP_ARP */
35#define LWIP_ARP 0
36#endif /* MODULE_LWIP_ARP */
37
38#ifdef MODULE_LWIP_AUTOIP
39#define LWIP_AUTOIP 1
40#else /* MODULE_LWIP_AUTOIP */
41#define LWIP_AUTOIP 0
42#endif /* MODULE_LWIP_AUTOIP */
43
44#ifdef MODULE_LWIP_DHCP
45#define LWIP_DHCP 1
46#else /* MODULE_LWIP_DHCP */
47#define LWIP_DHCP 0
48#endif /* MODULE_LWIP_DHCP */
49
50#ifdef MODULE_LWIP_ETHERNET
51#define LWIP_ETHERNET 1
52#else /* MODULE_LWIP_ETHERNET */
53#define LWIP_ETHERNET 0
54#endif /* MODULE_LWIP_ETHERNET */
55
56#ifdef MODULE_LWIP_NETIF
57#define LWIP_NETIF_API 1
58#else /* MODULE_LWIP_NETIF */
59#define LWIP_NETIF_API 0
60#endif /* MODULE_LWIP_NETIF */
61
62#ifdef MODULE_LWIP_IGMP
63#define LWIP_IGMP 1
64#else /* MODULE_LWIP_IGMP */
65#define LWIP_IGMP 0
66#endif /* MODULE_LWIP_IGMP */
67
68#ifdef MODULE_LWIP_IPV4
69#define LWIP_IPV4 1
70#else /* MODULE_LWIP_IPV4 */
71#define LWIP_IPV4 0
72#endif /* MODULE_LWIP_IPV4 */
73
74#ifdef MODULE_LWIP_IPV6_AUTOCONFIG
75#define LWIP_IPV6_AUTOCONFIG 1
76#else /* MODULE_LWIP_IPV6_AUTOCONFIG */
77#define LWIP_IPV6_AUTOCONFIG 0
78#endif /* MODULE_LWIP_IPV6_AUTOCONFIG */
79
80#ifdef MODULE_LWIP_IPV6_MLD
81#define LWIP_IPV6_MLD 1
82#else /* MODULE_LWIP_IPV6 */
83#define LWIP_IPV6_MLD 0
84#endif /* MODULE_LWIP_IPV6 */
85
86#ifdef MODULE_LWIP_IPV6
87#define LWIP_IPV6 1
88#else /* MODULE_LWIP_IPV6 */
89#define LWIP_IPV6 0
90#endif /* MODULE_LWIP_IPV6 */
91
92#ifdef MODULE_LWIP_NETIF_PPP
93#define PPP_SUPPORT 1
94#else /* MODULE_LWIP_NETIF_PPP */
95#define PPP_SUPPORT 0
96#endif /* MODULE_LWIP_NETIF_PPP */
97
98#ifdef MODULE_LWIP_RAW
99#define LWIP_RAW 1
100#else /* MODULE_LWIP_RAW */
101#define LWIP_RAW 0
102#endif /* MODULE_LWIP_RAW */
103
104#ifdef MODULE_LWIP_SIXLOWPAN
105#define LWIP_6LOWPAN 1
106#else /* MODULE_LWIP_STATS */
107#define LWIP_6LOWPAN 0
108#endif /* MODULE_LWIP_STATS */
109
110#ifdef MODULE_LWIP_STATS
111#define LWIP_STATS 1
112#else /* MODULE_LWIP_STATS */
113#define LWIP_STATS 0
114#endif /* MODULE_LWIP_STATS */
115
116#ifdef MODULE_LWIP_TCP
117#define LWIP_TCP 1
118#else /* MODULE_LWIP_TCP */
119#define LWIP_TCP 0
120#endif /* MODULE_LWIP_TCP */
121
122#ifdef MODULE_LWIP_UDP
123#define LWIP_UDP 1
124#else /* MODULE_LWIP_UDP */
125#define LWIP_UDP 0
126#endif /* MODULE_LWIP_UDP */
127
128#ifdef MODULE_LWIP_UDPLITE
129#define LWIP_UDPLITE 1
130#else /* MODULE_LWIP_UDPLITE */
131#define LWIP_UDPLITE 0
132#endif /* MODULE_LWIP_UDPLITE */
133
134#if IS_USED(MODULE_LWIP_SOCK)
135#define LWIP_NETCONN 1
136#if IS_USED(MODULE_SOCK_AUX_LOCAL)
137#define LWIP_NETBUF_RECVINFO 1
138#endif /* MODULE_SOCK_AUX_LOCAL */
139#else
140#define LWIP_NETCONN 0
141#endif /* MODULE_LWIP_SOCK */
142
143#ifdef MODULE_SHELL_CMD_LWIP_NETIF
144#define LWIP_DEBUG 1
145#endif
146
147#ifndef TCP_LISTEN_BACKLOG
148# if defined(MODULE_LWIP_SOCK_TCP)
149# define TCP_LISTEN_BACKLOG 1
150# else
151# define TCP_LISTEN_BACKLOG 0
152# endif
153#endif /* TCP_LISTEN_BACKLOG */
154
155#define LWIP_SOCKET 0
156
157#define LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS
158#define MEMP_MEM_MALLOC 1
159#define NETIF_MAX_HWADDR_LEN (GNRC_NETIF_HDR_L2ADDR_MAX_LEN)
160
161#ifndef TCPIP_THREAD_STACKSIZE
162/* TODO: some more benchmarking needed for a proper value.
163 * this was deduced from reception of UDP packet on closed port, needed 1100 B on ARM Cortex-M */
164#define TCPIP_THREAD_STACKSIZE (THREAD_STACKSIZE_DEFAULT * 3 / 2)
165#endif
166
167#define MEM_ALIGNMENT 4
168#ifndef MEM_SIZE
169/* packet buffer size of GNRC + stack for TCP/IP */
170#define MEM_SIZE (TCPIP_THREAD_STACKSIZE + 6144)
171#endif
172
173#ifdef DEVELHELP
174void sys_mark_tcpip_thread(void);
175#define LWIP_MARK_TCPIP_THREAD sys_mark_tcpip_thread
176
177bool sys_check_core_locked(void);
178#define LWIP_ASSERT_CORE_LOCKED() \
179 LWIP_ASSERT("Core lock held", sys_check_core_locked())
180#endif
181
183
184#ifdef __cplusplus
185}
186#endif
187
Generic network interface header.