xref: /aosp_15_r20/external/openthread/src/posix/platform/openthread-posix-config.h (revision cfb92d1480a9e65faed56933e9c12405f45898b4)
1*cfb92d14SAndroid Build Coastguard Worker /*
2*cfb92d14SAndroid Build Coastguard Worker  *  Copyright (c) 2019, The OpenThread Authors.
3*cfb92d14SAndroid Build Coastguard Worker  *  All rights reserved.
4*cfb92d14SAndroid Build Coastguard Worker  *
5*cfb92d14SAndroid Build Coastguard Worker  *  Redistribution and use in source and binary forms, with or without
6*cfb92d14SAndroid Build Coastguard Worker  *  modification, are permitted provided that the following conditions are met:
7*cfb92d14SAndroid Build Coastguard Worker  *  1. Redistributions of source code must retain the above copyright
8*cfb92d14SAndroid Build Coastguard Worker  *     notice, this list of conditions and the following disclaimer.
9*cfb92d14SAndroid Build Coastguard Worker  *  2. Redistributions in binary form must reproduce the above copyright
10*cfb92d14SAndroid Build Coastguard Worker  *     notice, this list of conditions and the following disclaimer in the
11*cfb92d14SAndroid Build Coastguard Worker  *     documentation and/or other materials provided with the distribution.
12*cfb92d14SAndroid Build Coastguard Worker  *  3. Neither the name of the copyright holder nor the
13*cfb92d14SAndroid Build Coastguard Worker  *     names of its contributors may be used to endorse or promote products
14*cfb92d14SAndroid Build Coastguard Worker  *     derived from this software without specific prior written permission.
15*cfb92d14SAndroid Build Coastguard Worker  *
16*cfb92d14SAndroid Build Coastguard Worker  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17*cfb92d14SAndroid Build Coastguard Worker  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*cfb92d14SAndroid Build Coastguard Worker  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*cfb92d14SAndroid Build Coastguard Worker  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20*cfb92d14SAndroid Build Coastguard Worker  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21*cfb92d14SAndroid Build Coastguard Worker  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22*cfb92d14SAndroid Build Coastguard Worker  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23*cfb92d14SAndroid Build Coastguard Worker  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24*cfb92d14SAndroid Build Coastguard Worker  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25*cfb92d14SAndroid Build Coastguard Worker  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26*cfb92d14SAndroid Build Coastguard Worker  *  POSSIBILITY OF SUCH DAMAGE.
27*cfb92d14SAndroid Build Coastguard Worker  */
28*cfb92d14SAndroid Build Coastguard Worker 
29*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_PLATFORM_POSIX_CONFIG_H_
30*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_PLATFORM_POSIX_CONFIG_H_
31*cfb92d14SAndroid Build Coastguard Worker 
32*cfb92d14SAndroid Build Coastguard Worker #include "openthread-core-config.h"
33*cfb92d14SAndroid Build Coastguard Worker 
34*cfb92d14SAndroid Build Coastguard Worker #ifdef OPENTHREAD_POSIX_CONFIG_FILE
35*cfb92d14SAndroid Build Coastguard Worker #include OPENTHREAD_POSIX_CONFIG_FILE
36*cfb92d14SAndroid Build Coastguard Worker #endif
37*cfb92d14SAndroid Build Coastguard Worker 
38*cfb92d14SAndroid Build Coastguard Worker /**
39*cfb92d14SAndroid Build Coastguard Worker  * @file
40*cfb92d14SAndroid Build Coastguard Worker  * @brief
41*cfb92d14SAndroid Build Coastguard Worker  *   This file includes the POSIX platform-specific configurations.
42*cfb92d14SAndroid Build Coastguard Worker  */
43*cfb92d14SAndroid Build Coastguard Worker 
44*cfb92d14SAndroid Build Coastguard Worker /**
45*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_RCP_PTY_ENABLE
46*cfb92d14SAndroid Build Coastguard Worker  *
47*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable PTY RCP support.
48*cfb92d14SAndroid Build Coastguard Worker  *
49*cfb92d14SAndroid Build Coastguard Worker  */
50*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_RCP_PTY_ENABLE
51*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_RCP_PTY_ENABLE 1
52*cfb92d14SAndroid Build Coastguard Worker #endif
53*cfb92d14SAndroid Build Coastguard Worker 
54*cfb92d14SAndroid Build Coastguard Worker /**
55*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_RCP_BUS
56*cfb92d14SAndroid Build Coastguard Worker  *
57*cfb92d14SAndroid Build Coastguard Worker  * This setting configures what type of RCP bus to use.
58*cfb92d14SAndroid Build Coastguard Worker  *
59*cfb92d14SAndroid Build Coastguard Worker  */
60*cfb92d14SAndroid Build Coastguard Worker #ifdef OPENTHREAD_POSIX_CONFIG_RCP_BUS
61*cfb92d14SAndroid Build Coastguard Worker #error "OPENTHREAD_POSIX_CONFIG_RCP_BUS was replaced by OPENTHREAD_POSIX_CONFIG_SPINEL_HDLC_INTERFACE_ENABLE,"\
62*cfb92d14SAndroid Build Coastguard Worker        "OPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE and OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE"
63*cfb92d14SAndroid Build Coastguard Worker #endif
64*cfb92d14SAndroid Build Coastguard Worker 
65*cfb92d14SAndroid Build Coastguard Worker /**
66*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_SPINEL_HDLC_INTERFACE_ENABLE
67*cfb92d14SAndroid Build Coastguard Worker  *
68*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable the spinel HDLC interface.
69*cfb92d14SAndroid Build Coastguard Worker  *
70*cfb92d14SAndroid Build Coastguard Worker  */
71*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_SPINEL_HDLC_INTERFACE_ENABLE
72*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_SPINEL_HDLC_INTERFACE_ENABLE 1
73*cfb92d14SAndroid Build Coastguard Worker #endif
74*cfb92d14SAndroid Build Coastguard Worker 
75*cfb92d14SAndroid Build Coastguard Worker /**
76*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE
77*cfb92d14SAndroid Build Coastguard Worker  *
78*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable the spinel SPI interface.
79*cfb92d14SAndroid Build Coastguard Worker  *
80*cfb92d14SAndroid Build Coastguard Worker  */
81*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE
82*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE 0
83*cfb92d14SAndroid Build Coastguard Worker #endif
84*cfb92d14SAndroid Build Coastguard Worker 
85*cfb92d14SAndroid Build Coastguard Worker /**
86*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE
87*cfb92d14SAndroid Build Coastguard Worker  *
88*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable the spinel vendor interface.
89*cfb92d14SAndroid Build Coastguard Worker  *
90*cfb92d14SAndroid Build Coastguard Worker  */
91*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE
92*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE 0
93*cfb92d14SAndroid Build Coastguard Worker #endif
94*cfb92d14SAndroid Build Coastguard Worker 
95*cfb92d14SAndroid Build Coastguard Worker /**
96*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_URL_PROTOCOL_NAME
97*cfb92d14SAndroid Build Coastguard Worker  *
98*cfb92d14SAndroid Build Coastguard Worker  * Define the URL protocol name of the vendor Spinel interface.
99*cfb92d14SAndroid Build Coastguard Worker  *
100*cfb92d14SAndroid Build Coastguard Worker  */
101*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_URL_PROTOCOL_NAME
102*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_URL_PROTOCOL_NAME "spinel+vendor"
103*cfb92d14SAndroid Build Coastguard Worker #endif
104*cfb92d14SAndroid Build Coastguard Worker 
105*cfb92d14SAndroid Build Coastguard Worker /**
106*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_MAX_POWER_TABLE_ENABLE
107*cfb92d14SAndroid Build Coastguard Worker  *
108*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable max power table support.
109*cfb92d14SAndroid Build Coastguard Worker  *
110*cfb92d14SAndroid Build Coastguard Worker  */
111*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_MAX_POWER_TABLE_ENABLE
112*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_MAX_POWER_TABLE_ENABLE 0
113*cfb92d14SAndroid Build Coastguard Worker #endif
114*cfb92d14SAndroid Build Coastguard Worker 
115*cfb92d14SAndroid Build Coastguard Worker /**
116*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_MAX_MULTICAST_FORWARDING_CACHE_TABLE
117*cfb92d14SAndroid Build Coastguard Worker  *
118*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the maximum number of Multicast Forwarding Cache table for POSIX native multicast routing.
119*cfb92d14SAndroid Build Coastguard Worker  *
120*cfb92d14SAndroid Build Coastguard Worker  */
121*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_MAX_MULTICAST_FORWARDING_CACHE_TABLE
122*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_MAX_MULTICAST_FORWARDING_CACHE_TABLE (OPENTHREAD_CONFIG_MAX_MULTICAST_LISTENERS * 10)
123*cfb92d14SAndroid Build Coastguard Worker #endif
124*cfb92d14SAndroid Build Coastguard Worker 
125*cfb92d14SAndroid Build Coastguard Worker /**
126*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
127*cfb92d14SAndroid Build Coastguard Worker  *
128*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable multicast routing support.
129*cfb92d14SAndroid Build Coastguard Worker  *
130*cfb92d14SAndroid Build Coastguard Worker  */
131*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
132*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE \
133*cfb92d14SAndroid Build Coastguard Worker     OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
134*cfb92d14SAndroid Build Coastguard Worker #endif
135*cfb92d14SAndroid Build Coastguard Worker 
136*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE && \
137*cfb92d14SAndroid Build Coastguard Worker     !OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE
138*cfb92d14SAndroid Build Coastguard Worker #error \
139*cfb92d14SAndroid Build Coastguard Worker     "OPENTHREAD_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE is required for OPENTHREAD_POSIX_CONFIG_BACKBONE_ROUTER_MULTICAST_ROUTING_ENABLE"
140*cfb92d14SAndroid Build Coastguard Worker #endif
141*cfb92d14SAndroid Build Coastguard Worker 
142*cfb92d14SAndroid Build Coastguard Worker /**
143*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_SECURE_SETTINGS_ENABLE
144*cfb92d14SAndroid Build Coastguard Worker  *
145*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable the secure settings. When defined to 1, the platform MUST implement the otPosixSecureSetting*
146*cfb92d14SAndroid Build Coastguard Worker  * APIs defined in 'src/posix/platform/include/openthread/platform/secure_settings.h'.
147*cfb92d14SAndroid Build Coastguard Worker  *
148*cfb92d14SAndroid Build Coastguard Worker  */
149*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_SECURE_SETTINGS_ENABLE
150*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_SECURE_SETTINGS_ENABLE 0
151*cfb92d14SAndroid Build Coastguard Worker #endif
152*cfb92d14SAndroid Build Coastguard Worker 
153*cfb92d14SAndroid Build Coastguard Worker /**
154*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC
155*cfb92d14SAndroid Build Coastguard Worker  *
156*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the prefix route metric on the Thread network interface.
157*cfb92d14SAndroid Build Coastguard Worker  * Define as 0 to use use the default prefix route metric.
158*cfb92d14SAndroid Build Coastguard Worker  *
159*cfb92d14SAndroid Build Coastguard Worker  * Note: The feature works on Linux kernel v4.18+.
160*cfb92d14SAndroid Build Coastguard Worker  *
161*cfb92d14SAndroid Build Coastguard Worker  */
162*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC
163*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC 0
164*cfb92d14SAndroid Build Coastguard Worker #endif
165*cfb92d14SAndroid Build Coastguard Worker 
166*cfb92d14SAndroid Build Coastguard Worker /**
167*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_INSTALL_OMR_ROUTES_ENABLE
168*cfb92d14SAndroid Build Coastguard Worker  *
169*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to add OMR routes to POSIX kernel when OMR prefixes are changed in netdata.
170*cfb92d14SAndroid Build Coastguard Worker  *
171*cfb92d14SAndroid Build Coastguard Worker  * Note: This feature can be used to add OMR routes with non-default priority. Unlike
172*cfb92d14SAndroid Build Coastguard Worker  * `OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC`, it works on Linux kernels before v4.18.
173*cfb92d14SAndroid Build Coastguard Worker  * However, `OPENTHREAD_POSIX_CONFIG_NETIF_PREFIX_ROUTE_METRIC` should be preferred on Linux kernel v4.18+.
174*cfb92d14SAndroid Build Coastguard Worker  *
175*cfb92d14SAndroid Build Coastguard Worker  */
176*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_INSTALL_OMR_ROUTES_ENABLE
177*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_INSTALL_OMR_ROUTES_ENABLE 0
178*cfb92d14SAndroid Build Coastguard Worker #endif
179*cfb92d14SAndroid Build Coastguard Worker 
180*cfb92d14SAndroid Build Coastguard Worker /**
181*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_OMR_ROUTES_PRIORITY
182*cfb92d14SAndroid Build Coastguard Worker  *
183*cfb92d14SAndroid Build Coastguard Worker  * Defines the priority of OMR routes added to kernel. The larger the number, the lower the priority. We
184*cfb92d14SAndroid Build Coastguard Worker  * need to assign a high priority to such routes so that kernel prefers the Thread link rather than infrastructure.
185*cfb92d14SAndroid Build Coastguard Worker  * Otherwise we may unnecessarily transmit packets via infrastructure, which potentially causes looping issue.
186*cfb92d14SAndroid Build Coastguard Worker  *
187*cfb92d14SAndroid Build Coastguard Worker  */
188*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_OMR_ROUTES_PRIORITY
189*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_OMR_ROUTES_PRIORITY 1
190*cfb92d14SAndroid Build Coastguard Worker #endif
191*cfb92d14SAndroid Build Coastguard Worker 
192*cfb92d14SAndroid Build Coastguard Worker /**
193*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_MAX_OMR_ROUTES_NUM
194*cfb92d14SAndroid Build Coastguard Worker  *
195*cfb92d14SAndroid Build Coastguard Worker  * Defines the max number of OMR routes that can be added to kernel.
196*cfb92d14SAndroid Build Coastguard Worker  *
197*cfb92d14SAndroid Build Coastguard Worker  */
198*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_MAX_OMR_ROUTES_NUM
199*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_MAX_OMR_ROUTES_NUM OPENTHREAD_CONFIG_IP6_SLAAC_NUM_ADDRESSES
200*cfb92d14SAndroid Build Coastguard Worker #endif
201*cfb92d14SAndroid Build Coastguard Worker 
202*cfb92d14SAndroid Build Coastguard Worker /**
203*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_INSTALL_EXTERNAL_ROUTES_ENABLE
204*cfb92d14SAndroid Build Coastguard Worker  *
205*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to add external routes to POSIX kernel when external routes are changed in netdata.
206*cfb92d14SAndroid Build Coastguard Worker  *
207*cfb92d14SAndroid Build Coastguard Worker  */
208*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_INSTALL_EXTERNAL_ROUTES_ENABLE
209*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_INSTALL_EXTERNAL_ROUTES_ENABLE 1
210*cfb92d14SAndroid Build Coastguard Worker #endif
211*cfb92d14SAndroid Build Coastguard Worker 
212*cfb92d14SAndroid Build Coastguard Worker /**
213*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_EXTERNAL_ROUTE_PRIORITY
214*cfb92d14SAndroid Build Coastguard Worker  *
215*cfb92d14SAndroid Build Coastguard Worker  * Defines the priority of external routes added to kernel. The larger the number, the lower the priority. We
216*cfb92d14SAndroid Build Coastguard Worker  * need to assign a low priority to such routes so that kernel prefers the infra link rather than thread. Otherwise we
217*cfb92d14SAndroid Build Coastguard Worker  * may unnecessarily transmit packets via thread, which potentially causes performance issue. In linux, normally infra
218*cfb92d14SAndroid Build Coastguard Worker  * link routes' metric value is not greater than 1024, hence 65535 should be big enough.
219*cfb92d14SAndroid Build Coastguard Worker  *
220*cfb92d14SAndroid Build Coastguard Worker  */
221*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_EXTERNAL_ROUTE_PRIORITY
222*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_EXTERNAL_ROUTE_PRIORITY 65535
223*cfb92d14SAndroid Build Coastguard Worker #endif
224*cfb92d14SAndroid Build Coastguard Worker 
225*cfb92d14SAndroid Build Coastguard Worker /**
226*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_MAX_EXTERNAL_ROUTE_NUM
227*cfb92d14SAndroid Build Coastguard Worker  *
228*cfb92d14SAndroid Build Coastguard Worker  * Defines the max number of external routes that can be added to kernel.
229*cfb92d14SAndroid Build Coastguard Worker  *
230*cfb92d14SAndroid Build Coastguard Worker  */
231*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_MAX_EXTERNAL_ROUTE_NUM
232*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_MAX_EXTERNAL_ROUTE_NUM 8
233*cfb92d14SAndroid Build Coastguard Worker #endif
234*cfb92d14SAndroid Build Coastguard Worker 
235*cfb92d14SAndroid Build Coastguard Worker /**
236*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE
237*cfb92d14SAndroid Build Coastguard Worker  *
238*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable discovering NAT64 posix on adjacent infrastructure link.
239*cfb92d14SAndroid Build Coastguard Worker  *
240*cfb92d14SAndroid Build Coastguard Worker  */
241*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE
242*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE 0
243*cfb92d14SAndroid Build Coastguard Worker #endif
244*cfb92d14SAndroid Build Coastguard Worker 
245*cfb92d14SAndroid Build Coastguard Worker /**
246*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_FIREWALL_ENABLE
247*cfb92d14SAndroid Build Coastguard Worker  *
248*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable firewall.
249*cfb92d14SAndroid Build Coastguard Worker  *
250*cfb92d14SAndroid Build Coastguard Worker  * The rules are implemented using ip6tables and ipset. The rules are as follows.
251*cfb92d14SAndroid Build Coastguard Worker  *
252*cfb92d14SAndroid Build Coastguard Worker  * ip6tables -A $OTBR_FORWARD_INGRESS_CHAIN -m pkttype --pkt-type unicast -i $THREAD_IF -p ip -j DROP
253*cfb92d14SAndroid Build Coastguard Worker  * ip6tables -A $OTBR_FORWARD_INGRESS_CHAIN -m set --match-set otbr-ingress-deny-src src -p ip -j DROP
254*cfb92d14SAndroid Build Coastguard Worker  * ip6tables -A $OTBR_FORWARD_INGRESS_CHAIN -m set --match-set otbr-ingress-allow-dst dst -p ip -j ACCEPT
255*cfb92d14SAndroid Build Coastguard Worker  * ip6tables -A $OTBR_FORWARD_INGRESS_CHAIN -m pkttype --pkt-type unicast -p ip -j DROP
256*cfb92d14SAndroid Build Coastguard Worker  * ip6tables -A $OTBR_FORWARD_INGRESS_CHAIN -p ip -j ACCEPT
257*cfb92d14SAndroid Build Coastguard Worker  *
258*cfb92d14SAndroid Build Coastguard Worker  */
259*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_FIREWALL_ENABLE
260*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_FIREWALL_ENABLE 0
261*cfb92d14SAndroid Build Coastguard Worker #endif
262*cfb92d14SAndroid Build Coastguard Worker 
263*cfb92d14SAndroid Build Coastguard Worker #if OPENTHREAD_POSIX_CONFIG_FIREWALL_ENABLE
264*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_IPSET_BINARY
265*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_IPSET_BINARY "ipset"
266*cfb92d14SAndroid Build Coastguard Worker #endif
267*cfb92d14SAndroid Build Coastguard Worker #endif
268*cfb92d14SAndroid Build Coastguard Worker 
269*cfb92d14SAndroid Build Coastguard Worker /**
270*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_THREAD_NETIF_DEFAULT_NAME
271*cfb92d14SAndroid Build Coastguard Worker  *
272*cfb92d14SAndroid Build Coastguard Worker  * Define the Thread default network interface name.
273*cfb92d14SAndroid Build Coastguard Worker  *
274*cfb92d14SAndroid Build Coastguard Worker  */
275*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_THREAD_NETIF_DEFAULT_NAME
276*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_THREAD_NETIF_DEFAULT_NAME "wpan0"
277*cfb92d14SAndroid Build Coastguard Worker #endif
278*cfb92d14SAndroid Build Coastguard Worker 
279*cfb92d14SAndroid Build Coastguard Worker #ifdef __APPLE__
280*cfb92d14SAndroid Build Coastguard Worker 
281*cfb92d14SAndroid Build Coastguard Worker /**
282*cfb92d14SAndroid Build Coastguard Worker  * Use built-in utun driver on mac OS
283*cfb92d14SAndroid Build Coastguard Worker  */
284*cfb92d14SAndroid Build Coastguard Worker #define OT_POSIX_CONFIG_MACOS_UTUN 1
285*cfb92d14SAndroid Build Coastguard Worker 
286*cfb92d14SAndroid Build Coastguard Worker /**
287*cfb92d14SAndroid Build Coastguard Worker  * Use open-source tun driver on mac OS
288*cfb92d14SAndroid Build Coastguard Worker  */
289*cfb92d14SAndroid Build Coastguard Worker #define OT_POSIX_CONFIG_MACOS_TUN 2
290*cfb92d14SAndroid Build Coastguard Worker 
291*cfb92d14SAndroid Build Coastguard Worker /**
292*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_MACOS_TUN_OPTION
293*cfb92d14SAndroid Build Coastguard Worker  *
294*cfb92d14SAndroid Build Coastguard Worker  * This setting configures which tunnel driver to use.
295*cfb92d14SAndroid Build Coastguard Worker  *
296*cfb92d14SAndroid Build Coastguard Worker  */
297*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_MACOS_TUN_OPTION
298*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_MACOS_TUN_OPTION OT_POSIX_CONFIG_MACOS_UTUN
299*cfb92d14SAndroid Build Coastguard Worker #endif
300*cfb92d14SAndroid Build Coastguard Worker 
301*cfb92d14SAndroid Build Coastguard Worker #endif // __APPLE__
302*cfb92d14SAndroid Build Coastguard Worker 
303*cfb92d14SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------
304*cfb92d14SAndroid Build Coastguard Worker // Removed or renamed POSIX specific configs.
305*cfb92d14SAndroid Build Coastguard Worker 
306*cfb92d14SAndroid Build Coastguard Worker #ifdef OPENTHREAD_CONFIG_POSIX_APP_TREL_INTERFACE_NAME
307*cfb92d14SAndroid Build Coastguard Worker #error "OPENTHREAD_CONFIG_POSIX_APP_TREL_INTERFACE_NAME was removed (no longer applicable with TREL over DNS-SD)."
308*cfb92d14SAndroid Build Coastguard Worker #endif
309*cfb92d14SAndroid Build Coastguard Worker 
310*cfb92d14SAndroid Build Coastguard Worker #ifdef OPENTHREAD_CONFIG_POSIX_TREL_USE_NETLINK_SOCKET
311*cfb92d14SAndroid Build Coastguard Worker #error "OPENTHREAD_CONFIG_POSIX_TREL_USE_NETLINK_SOCKET was removed (no longer applicable with TREL over DNS-SD)."
312*cfb92d14SAndroid Build Coastguard Worker #endif
313*cfb92d14SAndroid Build Coastguard Worker 
314*cfb92d14SAndroid Build Coastguard Worker /**
315*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_TREL_UDP_PORT
316*cfb92d14SAndroid Build Coastguard Worker  *
317*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the TREL UDP port number.
318*cfb92d14SAndroid Build Coastguard Worker  * Define as 0 to use an ephemeral port number.
319*cfb92d14SAndroid Build Coastguard Worker  *
320*cfb92d14SAndroid Build Coastguard Worker  */
321*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_TREL_UDP_PORT
322*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_TREL_UDP_PORT 0
323*cfb92d14SAndroid Build Coastguard Worker #endif
324*cfb92d14SAndroid Build Coastguard Worker 
325*cfb92d14SAndroid Build Coastguard Worker /**
326*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_NAT64_CIDR
327*cfb92d14SAndroid Build Coastguard Worker  *
328*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the NAT64 CIDR, used by NAT64 translator.
329*cfb92d14SAndroid Build Coastguard Worker  *
330*cfb92d14SAndroid Build Coastguard Worker  */
331*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_NAT64_CIDR
332*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_NAT64_CIDR "192.168.255.0/24"
333*cfb92d14SAndroid Build Coastguard Worker #endif
334*cfb92d14SAndroid Build Coastguard Worker 
335*cfb92d14SAndroid Build Coastguard Worker /**
336*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_BACKTRACE_ENABLE
337*cfb92d14SAndroid Build Coastguard Worker  *
338*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable backtrace support.
339*cfb92d14SAndroid Build Coastguard Worker  *
340*cfb92d14SAndroid Build Coastguard Worker  */
341*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_BACKTRACE_ENABLE
342*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_BACKTRACE_ENABLE 1
343*cfb92d14SAndroid Build Coastguard Worker #endif
344*cfb92d14SAndroid Build Coastguard Worker 
345*cfb92d14SAndroid Build Coastguard Worker /**
346*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_ANDROID_ENABLE
347*cfb92d14SAndroid Build Coastguard Worker  *
348*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable android support.
349*cfb92d14SAndroid Build Coastguard Worker  *
350*cfb92d14SAndroid Build Coastguard Worker  */
351*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_ANDROID_ENABLE
352*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_ANDROID_ENABLE 0
353*cfb92d14SAndroid Build Coastguard Worker #endif
354*cfb92d14SAndroid Build Coastguard Worker 
355*cfb92d14SAndroid Build Coastguard Worker /**
356*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_INFRA_IF_ENABLE
357*cfb92d14SAndroid Build Coastguard Worker  *
358*cfb92d14SAndroid Build Coastguard Worker  * Defines `1` to enable the posix implementation of platform/infra_if.h APIs.
359*cfb92d14SAndroid Build Coastguard Worker  * The default value is set to `OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE` if it's
360*cfb92d14SAndroid Build Coastguard Worker  * not explicit defined.
361*cfb92d14SAndroid Build Coastguard Worker  */
362*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_INFRA_IF_ENABLE
363*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_INFRA_IF_ENABLE \
364*cfb92d14SAndroid Build Coastguard Worker     (OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE || OPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE)
365*cfb92d14SAndroid Build Coastguard Worker #endif
366*cfb92d14SAndroid Build Coastguard Worker 
367*cfb92d14SAndroid Build Coastguard Worker /**
368*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_FACTORY_CONFIG_FILE
369*cfb92d14SAndroid Build Coastguard Worker  *
370*cfb92d14SAndroid Build Coastguard Worker  * Define the path of the factory config file.
371*cfb92d14SAndroid Build Coastguard Worker  *
372*cfb92d14SAndroid Build Coastguard Worker  * Note: The factory config file contains the persist data that configured by the factory. And it won't be changed
373*cfb92d14SAndroid Build Coastguard Worker  *       after a device firmware update OTA is done.
374*cfb92d14SAndroid Build Coastguard Worker  *
375*cfb92d14SAndroid Build Coastguard Worker  */
376*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_FACTORY_CONFIG_FILE
377*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_FACTORY_CONFIG_FILE "src/posix/platform/openthread.conf.example"
378*cfb92d14SAndroid Build Coastguard Worker #endif
379*cfb92d14SAndroid Build Coastguard Worker 
380*cfb92d14SAndroid Build Coastguard Worker /**
381*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_PRODUCT_CONFIG_FILE
382*cfb92d14SAndroid Build Coastguard Worker  *
383*cfb92d14SAndroid Build Coastguard Worker  * Define the path of the product config file.
384*cfb92d14SAndroid Build Coastguard Worker  *
385*cfb92d14SAndroid Build Coastguard Worker  */
386*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_PRODUCT_CONFIG_FILE
387*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_PRODUCT_CONFIG_FILE "src/posix/platform/openthread.conf.example"
388*cfb92d14SAndroid Build Coastguard Worker #endif
389*cfb92d14SAndroid Build Coastguard Worker 
390*cfb92d14SAndroid Build Coastguard Worker /**
391*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_CONFIGURATION_FILE_ENABLE
392*cfb92d14SAndroid Build Coastguard Worker  *
393*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable the configuration file support.
394*cfb92d14SAndroid Build Coastguard Worker  *
395*cfb92d14SAndroid Build Coastguard Worker  */
396*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_CONFIGURATION_FILE_ENABLE
397*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_CONFIGURATION_FILE_ENABLE 1
398*cfb92d14SAndroid Build Coastguard Worker #endif
399*cfb92d14SAndroid Build Coastguard Worker 
400*cfb92d14SAndroid Build Coastguard Worker /**
401*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_RCP_TIME_SYNC_INTERVAL
402*cfb92d14SAndroid Build Coastguard Worker  *
403*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the interval (in units of microseconds) for host-rcp
404*cfb92d14SAndroid Build Coastguard Worker  * time sync. The host will recalculate the time offset between host and RCP
405*cfb92d14SAndroid Build Coastguard Worker  * every interval.
406*cfb92d14SAndroid Build Coastguard Worker  *
407*cfb92d14SAndroid Build Coastguard Worker  */
408*cfb92d14SAndroid Build Coastguard Worker #ifdef OPENTHREAD_POSIX_CONFIG_RCP_TIME_SYNC_INTERVAL
409*cfb92d14SAndroid Build Coastguard Worker #error "OPENTHREAD_POSIX_CONFIG_RCP_TIME_SYNC_INTERVAL was replaced by OPENTHREAD_SPINEL_CONFIG_RCP_TIME_SYNC_INTERVAL"
410*cfb92d14SAndroid Build Coastguard Worker #endif
411*cfb92d14SAndroid Build Coastguard Worker 
412*cfb92d14SAndroid Build Coastguard Worker /**
413*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_EXIT_ON_INFRA_NETIF_LOST_ENABLE
414*cfb92d14SAndroid Build Coastguard Worker  *
415*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to let the process exit when the infra network interface is lost on the POSIX platform.
416*cfb92d14SAndroid Build Coastguard Worker  *
417*cfb92d14SAndroid Build Coastguard Worker  */
418*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_EXIT_ON_INFRA_NETIF_LOST_ENABLE
419*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_EXIT_ON_INFRA_NETIF_LOST_ENABLE 1
420*cfb92d14SAndroid Build Coastguard Worker #endif
421*cfb92d14SAndroid Build Coastguard Worker 
422*cfb92d14SAndroid Build Coastguard Worker /**
423*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_TREL_TX_PACKET_POOL_SIZE
424*cfb92d14SAndroid Build Coastguard Worker  *
425*cfb92d14SAndroid Build Coastguard Worker  * This setting configures the capacity of TREL packet pool for transmission.
426*cfb92d14SAndroid Build Coastguard Worker  *
427*cfb92d14SAndroid Build Coastguard Worker  */
428*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_TREL_TX_PACKET_POOL_SIZE
429*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_TREL_TX_PACKET_POOL_SIZE 5
430*cfb92d14SAndroid Build Coastguard Worker #endif
431*cfb92d14SAndroid Build Coastguard Worker 
432*cfb92d14SAndroid Build Coastguard Worker /**
433*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_RCP_CAPS_DIAG_ENABLE
434*cfb92d14SAndroid Build Coastguard Worker  *
435*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to enable RCP capability diagnostic support.
436*cfb92d14SAndroid Build Coastguard Worker  *
437*cfb92d14SAndroid Build Coastguard Worker  */
438*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_RCP_CAPS_DIAG_ENABLE
439*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_RCP_CAPS_DIAG_ENABLE OPENTHREAD_CONFIG_DIAG_ENABLE
440*cfb92d14SAndroid Build Coastguard Worker #endif
441*cfb92d14SAndroid Build Coastguard Worker 
442*cfb92d14SAndroid Build Coastguard Worker /**
443*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_UPSTREAM_DNS_BIND_TO_INFRA_NETIF
444*cfb92d14SAndroid Build Coastguard Worker  *
445*cfb92d14SAndroid Build Coastguard Worker  * Define as 1 to let the upstream DNS bind the socket to infra network interface.
446*cfb92d14SAndroid Build Coastguard Worker  */
447*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_UPSTREAM_DNS_BIND_TO_INFRA_NETIF
448*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_UPSTREAM_DNS_BIND_TO_INFRA_NETIF 1
449*cfb92d14SAndroid Build Coastguard Worker #endif
450*cfb92d14SAndroid Build Coastguard Worker 
451*cfb92d14SAndroid Build Coastguard Worker /**
452*cfb92d14SAndroid Build Coastguard Worker  * @def OPENTHREAD_POSIX_CONFIG_TREL_SELECT_INFRA_IF
453*cfb92d14SAndroid Build Coastguard Worker  *
454*cfb92d14SAndroid Build Coastguard Worker  * Define to 1 to let TREL select the infrastructure interface, otherwise use the interface in the TREL URL.
455*cfb92d14SAndroid Build Coastguard Worker  */
456*cfb92d14SAndroid Build Coastguard Worker #ifndef OPENTHREAD_POSIX_CONFIG_TREL_SELECT_INFRA_IF
457*cfb92d14SAndroid Build Coastguard Worker #define OPENTHREAD_POSIX_CONFIG_TREL_SELECT_INFRA_IF 0
458*cfb92d14SAndroid Build Coastguard Worker #endif
459*cfb92d14SAndroid Build Coastguard Worker 
460*cfb92d14SAndroid Build Coastguard Worker #endif // OPENTHREAD_PLATFORM_POSIX_CONFIG_H_
461