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