• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright (c) 2020, The OpenThread Authors.
3  *  All rights reserved.
4  *
5  *  Redistribution and use in source and binary forms, with or without
6  *  modification, are permitted provided that the following conditions are met:
7  *  1. Redistributions of source code must retain the above copyright
8  *     notice, this list of conditions and the following disclaimer.
9  *  2. Redistributions in binary form must reproduce the above copyright
10  *     notice, this list of conditions and the following disclaimer in the
11  *     documentation and/or other materials provided with the distribution.
12  *  3. Neither the name of the copyright holder nor the
13  *     names of its contributors may be used to endorse or promote products
14  *     derived from this software without specific prior written permission.
15  *
16  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  *  POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 /**
30  * @file
31  *   This file includes compile-time configuration constants for OpenThread.
32  */
33 
34 #ifndef OPENTHREAD_SPINEL_CONFIG_H_
35 #define OPENTHREAD_SPINEL_CONFIG_H_
36 
37 /**
38  * Include project specific lib config file if defined.
39  */
40 #ifdef OPENTHREAD_PROJECT_LIB_CONFIG_FILE
41 #include OPENTHREAD_PROJECT_LIB_CONFIG_FILE
42 #endif
43 
44 /**
45  * @def OPENTHREAD_LIB_SPINEL_RX_FRAME_BUFFER_SIZE
46  *
47  * Specifies the rx frame buffer size used by `SpinelInterface` in RCP host (posix) code. This is applicable/used when
48  * `RadioSpinel` platform is used.
49  */
50 #ifndef OPENTHREAD_LIB_SPINEL_RX_FRAME_BUFFER_SIZE
51 #define OPENTHREAD_LIB_SPINEL_RX_FRAME_BUFFER_SIZE 8192
52 #endif
53 
54 /**
55  * @def OPENTHREAD_LIB_SPINEL_LOG_MAX_SIZE
56  *
57  * The maximum log string size (number of chars).
58  */
59 #ifndef OPENTHREAD_LIB_SPINEL_LOG_MAX_SIZE
60 #define OPENTHREAD_LIB_SPINEL_LOG_MAX_SIZE 1024
61 #endif
62 
63 /**
64  * @def OPENTHREAD_LIB_SPINEL_NCP_LOG_MAX_SIZE
65  *
66  * The maximum OpenThread log string size (number of chars) supported by NCP using Spinel `StreamWrite`.
67  */
68 #ifndef OPENTHREAD_LIB_SPINEL_NCP_LOG_MAX_SIZE
69 #define OPENTHREAD_LIB_SPINEL_NCP_LOG_MAX_SIZE 150
70 #endif
71 
72 /**
73  * @def OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE
74  *
75  * Define 1 to enable feeding an OpenThread message to encoder/decoder.
76  */
77 #ifndef OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE
78 #define OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE 0
79 #endif
80 
81 /**
82  * @def OPENTHREAD_SPINEL_CONFIG_RCP_RESTORATION_MAX_COUNT
83  *
84  * Defines the max count of RCP failures allowed to be recovered.
85  * 0 means to disable RCP failure recovering.
86  */
87 #ifndef OPENTHREAD_SPINEL_CONFIG_RCP_RESTORATION_MAX_COUNT
88 #define OPENTHREAD_SPINEL_CONFIG_RCP_RESTORATION_MAX_COUNT 0
89 #endif
90 
91 /**
92  * @def OPENTHREAD_SPINEL_CONFIG_MAX_SRC_MATCH_ENTRIES
93  *
94  * Defines size of the local source match table used by RadioSpinel
95  * when OPENTHREAD_SPINEL_CONFIG_RCP_RESTORATION_MAX_COUNT is used.
96  */
97 #ifndef OPENTHREAD_SPINEL_CONFIG_MAX_SRC_MATCH_ENTRIES
98 #define OPENTHREAD_SPINEL_CONFIG_MAX_SRC_MATCH_ENTRIES OPENTHREAD_CONFIG_MLE_MAX_CHILDREN
99 #endif
100 
101 /**
102  * @def OPENTHREAD_SPINEL_CONFIG_ABORT_ON_UNEXPECTED_RCP_RESET_ENABLE
103  *
104  * Define 1 to abort the host when receiving unexpected reset from RCP.
105  */
106 #ifndef OPENTHREAD_SPINEL_CONFIG_ABORT_ON_UNEXPECTED_RCP_RESET_ENABLE
107 #define OPENTHREAD_SPINEL_CONFIG_ABORT_ON_UNEXPECTED_RCP_RESET_ENABLE 0
108 #endif
109 
110 /**
111  * @def OPENTHREAD_SPINEL_CONFIG_RCP_TIME_SYNC_INTERVAL
112  *
113  * This setting configures the interval (in units of microseconds) for host-rcp
114  * time sync. The host will recalculate the time offset between host and RCP
115  * every interval.
116  */
117 #ifndef OPENTHREAD_SPINEL_CONFIG_RCP_TIME_SYNC_INTERVAL
118 #define OPENTHREAD_SPINEL_CONFIG_RCP_TIME_SYNC_INTERVAL (60 * 1000 * 1000)
119 #endif
120 
121 /**
122  * @def OPENTHREAD_SPINEL_CONFIG_BROADCAST_IID
123  *
124  * Define broadcast IID for spinel frames dedicated to all hosts in multipan configuration.
125  */
126 #ifndef OPENTHREAD_SPINEL_CONFIG_BROADCAST_IID
127 #define OPENTHREAD_SPINEL_CONFIG_BROADCAST_IID SPINEL_HEADER_IID_3
128 #endif
129 
130 /**
131  * @def OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_ENABLE
132  *
133  * Enables compilation of vendor specific code for Spinel
134  */
135 #ifndef OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_ENABLE
136 #define OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_ENABLE 0
137 #endif
138 
139 /**
140  * @def OPENTHREAD_SPINEL_CONFIG_COMPATIBILITY_ERROR_CALLBACK_ENABLE
141  *
142  * Enables compatibility error callback in Spinel
143  */
144 #ifndef OPENTHREAD_SPINEL_CONFIG_COMPATIBILITY_ERROR_CALLBACK_ENABLE
145 #define OPENTHREAD_SPINEL_CONFIG_COMPATIBILITY_ERROR_CALLBACK_ENABLE 0
146 #endif
147 
148 /**
149  * @def OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_HEADER
150  *
151  * Header file defining class VendorRadioSpinel
152  */
153 #ifndef OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_HEADER
154 #define OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_HEADER "lib/spinel/example_vendor_hook.hpp"
155 #endif
156 
157 /**
158  * @def OPENTHREAD_SPINEL_CONFIG_RCP_TX_WAIT_TIME_SECS
159  *
160  * Defines the Tx wait duration in seconds.
161  */
162 #ifndef OPENTHREAD_SPINEL_CONFIG_RCP_TX_WAIT_TIME_SECS
163 #define OPENTHREAD_SPINEL_CONFIG_RCP_TX_WAIT_TIME_SECS 5
164 #endif
165 
166 #endif // OPENTHREAD_SPINEL_CONFIG_H_
167