1 /* 2 * Copyright (c) 2019, 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 configurations for the MAC. 32 * 33 */ 34 35 #ifndef CONFIG_MAC_H_ 36 #define CONFIG_MAC_H_ 37 38 #include "config/time_sync.h" 39 40 /** 41 * @def OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_DIRECT 42 * 43 * The maximum number of backoffs the CSMA-CA algorithm will attempt before declaring a channel access failure. 44 * 45 * Equivalent to macMaxCSMABackoffs in IEEE 802.15.4-2006, default value is 4. 46 * 47 */ 48 #ifndef OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_DIRECT 49 #define OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_DIRECT 4 50 #endif 51 52 /** 53 * @def OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_INDIRECT 54 * 55 * The maximum number of backoffs the CSMA-CA algorithm will attempt before declaring a channel access failure. 56 * 57 * Equivalent to macMaxCSMABackoffs in IEEE 802.15.4-2006, default value is 4. 58 * 59 */ 60 #ifndef OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_INDIRECT 61 #define OPENTHREAD_CONFIG_MAC_MAX_CSMA_BACKOFFS_INDIRECT 4 62 #endif 63 64 /** 65 * @def OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT 66 * 67 * The default maximum number of retries allowed after a transmission failure for direct transmissions. 68 * 69 * Equivalent to macMaxFrameRetries, default value is 15. 70 * 71 */ 72 #ifndef OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT 73 #define OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT 15 74 #endif 75 76 /** 77 * @def OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 78 * 79 * The default maximum number of retries allowed after a transmission failure for indirect transmissions. 80 * 81 * Equivalent to macMaxFrameRetries, default value is 0. 82 * 83 */ 84 #ifndef OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 85 #define OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 0 86 #endif 87 88 /** 89 * @def OPENTHREAD_CONFIG_MAC_ADD_DELAY_ON_NO_ACK_ERROR_BEFORE_RETRY 90 * 91 * Define as 1 to add random backoff delay in between frame transmission retries when the previous attempt resulted in 92 * no-ack error. 93 * 94 */ 95 #ifndef OPENTHREAD_CONFIG_MAC_ADD_DELAY_ON_NO_ACK_ERROR_BEFORE_RETRY 96 #define OPENTHREAD_CONFIG_MAC_ADD_DELAY_ON_NO_ACK_ERROR_BEFORE_RETRY 1 97 #endif 98 99 /** 100 * @def OPENTHREAD_CONFIG_MAC_RETX_DELAY_MIN_BACKOFF_EXPONENT 101 * 102 * Specifies the minimum backoff exponent to start with when adding random delay in between frame transmission 103 * retries on no-ack error. It is applicable only when `OPENTHREAD_CONFIG_MAC_ADD_DELAY_ON_NO_ACK_ERROR_BEFORE_RETRY` 104 * is enabled. 105 * 106 */ 107 #ifndef OPENTHREAD_CONFIG_MAC_RETX_DELAY_MIN_BACKOFF_EXPONENT 108 #define OPENTHREAD_CONFIG_MAC_RETX_DELAY_MIN_BACKOFF_EXPONENT 0 109 #endif 110 111 /** 112 * @def OPENTHREAD_CONFIG_MAC_RETX_DELAY_MAX_BACKOFF_EXPONENT 113 * 114 * Specifies the maximum backoff exponent when adding random delay in between frame transmission retries on no-ack 115 * error. It is applicable only when `OPENTHREAD_CONFIG_MAC_ADD_DELAY_ON_NO_ACK_ERROR_BEFORE_RETRY` is enabled. 116 * 117 */ 118 #ifndef OPENTHREAD_CONFIG_MAC_RETX_DELAY_MAX_BACKOFF_EXPONENT 119 #define OPENTHREAD_CONFIG_MAC_RETX_DELAY_MAX_BACKOFF_EXPONENT 5 120 #endif 121 122 /** 123 * @def OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_ENABLE 124 * 125 * Define as 1 to enable collision avoidance delay feature, which adds a delay wait time after a successful frame tx 126 * to a neighbor which is expected to forward the frame. This delay is applied before the next direct frame tx (towards 127 * any neighbor) on an FTD. 128 * 129 * The delay interval is specified by `OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_INTERVAL` (in milliseconds). 130 * 131 */ 132 #ifndef OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_ENABLE 133 #define OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_ENABLE 1 134 #endif 135 136 /** 137 * @def OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_INTERVAL 138 * 139 * Specifies the collision avoidance delay interval in milliseconds. This is added after a successful frame tx to a 140 * neighbor that is expected to forward the frame (when `OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_ENABLE` is 141 * enabled). 142 * 143 */ 144 #ifndef OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_INTERVAL 145 #define OPENTHREAD_CONFIG_MAC_COLLISION_AVOIDANCE_DELAY_INTERVAL 8 146 #endif 147 148 /** 149 * @def OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE 150 * 151 * Define to 1 to enable MAC retry packets histogram analysis. 152 * 153 */ 154 #ifndef OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE 155 #define OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE 0 156 #endif 157 158 /** 159 * @def OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_DIRECT 160 * 161 * The default size of MAC histogram array for success message retry direct transmission. 162 * 163 * Default value is (OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT + 1). 164 * 165 */ 166 #ifndef OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_DIRECT 167 #define OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_DIRECT \ 168 (OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT + 1) 169 #endif 170 171 /** 172 * @def OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_INDIRECT 173 * 174 * The default size of MAC histogram array for success message retry direct transmission. 175 * 176 * Default value is (OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT + 1). 177 * 178 */ 179 #ifndef OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_INDIRECT 180 #define OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_INDIRECT \ 181 (OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT + 1) 182 #endif 183 184 /** 185 * @def OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 186 * 187 * Maximum number of received IEEE 802.15.4 Data Requests for a queued indirect transaction. 188 * 189 * The indirect frame remains in the transaction queue until it is successfully transmitted or until the indirect 190 * transmission fails after the maximum number of IEEE 802.15.4 Data Request messages have been received. 191 * 192 * Takes the place of macTransactionPersistenceTime. The time period is specified in units of IEEE 802.15.4 Data 193 * Request receptions, rather than being governed by macBeaconOrder. 194 * 195 * @sa OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_INDIRECT 196 * 197 */ 198 #ifndef OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 199 #define OPENTHREAD_CONFIG_MAC_MAX_TX_ATTEMPTS_INDIRECT_POLLS 4 200 #endif 201 202 /** 203 * @def OPENTHREAD_CONFIG_MAC_CSL_REQUEST_AHEAD_US 204 * 205 * Define how many microseconds ahead should MAC deliver CSL frame to SubMac. 206 * 207 */ 208 #ifndef OPENTHREAD_CONFIG_MAC_CSL_REQUEST_AHEAD_US 209 #define OPENTHREAD_CONFIG_MAC_CSL_REQUEST_AHEAD_US 2000 210 #endif 211 212 /** 213 * @def OPENTHREAD_CONFIG_MAC_FILTER_ENABLE 214 * 215 * Define to 1 to enable MAC filter support. 216 * 217 */ 218 #ifndef OPENTHREAD_CONFIG_MAC_FILTER_ENABLE 219 #define OPENTHREAD_CONFIG_MAC_FILTER_ENABLE 0 220 #endif 221 222 /** 223 * @def OPENTHREAD_CONFIG_MAC_FILTER_SIZE 224 * 225 * The number of MAC Filter entries. 226 * 227 */ 228 #ifndef OPENTHREAD_CONFIG_MAC_FILTER_SIZE 229 #define OPENTHREAD_CONFIG_MAC_FILTER_SIZE 32 230 #endif 231 232 /** 233 * @def OPENTHREAD_CONFIG_MAC_TX_NUM_BCAST 234 * 235 * The number of times each IEEE 802.15.4 broadcast frame is transmitted. 236 * 237 * The minimum value is 1. Values larger than 1 may improve broadcast reliability by increasing redundancy, but may 238 * also increase congestion. 239 * 240 */ 241 #ifndef OPENTHREAD_CONFIG_MAC_TX_NUM_BCAST 242 #define OPENTHREAD_CONFIG_MAC_TX_NUM_BCAST 1 243 #endif 244 245 /** 246 * @def OPENTHREAD_CONFIG_MAC_STAY_AWAKE_BETWEEN_FRAGMENTS 247 * 248 * Define as 1 to stay awake between fragments while transmitting a large packet, 249 * and to stay awake after receiving a packet with frame pending set to true. 250 * 251 */ 252 #ifndef OPENTHREAD_CONFIG_MAC_STAY_AWAKE_BETWEEN_FRAGMENTS 253 #define OPENTHREAD_CONFIG_MAC_STAY_AWAKE_BETWEEN_FRAGMENTS 0 254 #endif 255 256 /** 257 * @def OPENTHREAD_CONFIG_MAC_JOIN_BEACON_VERSION 258 * 259 * The Beacon version to use when the beacon join flag is set. 260 * 261 */ 262 #ifndef OPENTHREAD_CONFIG_MAC_JOIN_BEACON_VERSION 263 #define OPENTHREAD_CONFIG_MAC_JOIN_BEACON_VERSION OPENTHREAD_CONFIG_THREAD_VERSION 264 #endif 265 266 /** 267 * @def OPENTHREAD_CONFIG_MAC_BEACON_RSP_WHEN_JOINABLE_ENABLE 268 * 269 * Define to 1 to enable IEEE 802.15.4 Beacons when joining is enabled. 270 * 271 * @note When this feature is enabled, the device will transmit IEEE 802.15.4 Beacons in response to IEEE 802.15.4 272 * Beacon Requests even while the device is not router capable and detached. 273 * 274 */ 275 #ifndef OPENTHREAD_CONFIG_MAC_BEACON_RSP_WHEN_JOINABLE_ENABLE 276 #define OPENTHREAD_CONFIG_MAC_BEACON_RSP_WHEN_JOINABLE_ENABLE 0 277 #endif 278 279 /** 280 * @def OPENTHREAD_CONFIG_MAC_HEADER_IE_SUPPORT 281 * 282 * Define as 1 to support IEEE 802.15.4-2015 Header IE (Information Element) generation and parsing, it must be set 283 * to support following features: 284 * 1. Time synchronization service feature (i.e., OPENTHREAD_CONFIG_TIME_SYNC_ENABLE is set). 285 * 2. Thread 1.2. 286 * 287 * @note If it's enabled, platform must support interrupt context and concurrent access AES. 288 * 289 */ 290 #ifndef OPENTHREAD_CONFIG_MAC_HEADER_IE_SUPPORT 291 #if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE || (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2) 292 #define OPENTHREAD_CONFIG_MAC_HEADER_IE_SUPPORT 1 293 #else 294 #define OPENTHREAD_CONFIG_MAC_HEADER_IE_SUPPORT 0 295 #endif 296 #endif 297 298 /** 299 * @def OPENTHREAD_CONFIG_MAC_ATTACH_DATA_POLL_PERIOD 300 * 301 * The Data Poll period during attach in milliseconds. 302 * 303 */ 304 #ifndef OPENTHREAD_CONFIG_MAC_ATTACH_DATA_POLL_PERIOD 305 #define OPENTHREAD_CONFIG_MAC_ATTACH_DATA_POLL_PERIOD 100 306 #endif 307 308 /** 309 * @def OPENTHREAD_CONFIG_MAC_MINIMUM_POLL_PERIOD 310 * 311 * This setting configures the minimum poll period in milliseconds. 312 * 313 */ 314 #ifndef OPENTHREAD_CONFIG_MAC_MINIMUM_POLL_PERIOD 315 #define OPENTHREAD_CONFIG_MAC_MINIMUM_POLL_PERIOD 10 316 #endif 317 318 /** 319 * @def OPENTHREAD_CONFIG_MAC_RETX_POLL_PERIOD 320 * 321 * This setting configures the retx poll period in milliseconds. 322 * 323 */ 324 #ifndef OPENTHREAD_CONFIG_MAC_RETX_POLL_PERIOD 325 #define OPENTHREAD_CONFIG_MAC_RETX_POLL_PERIOD 1000 326 #endif 327 328 /** 329 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE 330 * 331 * Define to 1 to enable software ACK timeout logic. 332 * 333 */ 334 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE 335 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE 0 336 #endif 337 338 /** 339 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE 340 * 341 * Define to 1 to enable software retransmission logic. 342 * 343 */ 344 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE 345 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE 0 346 #endif 347 348 /** 349 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE 350 * 351 * Define to 1 to enable software CSMA-CA backoff logic. 352 * 353 */ 354 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE 355 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE 0 356 #endif 357 358 /** 359 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_SECURITY_ENABLE 360 * 361 * Define to 1 to enable software transmission security logic. 362 * 363 */ 364 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_SECURITY_ENABLE 365 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_SECURITY_ENABLE 0 366 #endif 367 368 /** 369 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_TIMING_ENABLE 370 * 371 * Define to 1 to enable software transmission target time logic. 372 * 373 */ 374 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_TIMING_ENABLE 375 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_TX_TIMING_ENABLE 0 376 #endif 377 378 /** 379 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_RX_TIMING_ENABLE 380 * 381 * Define to 1 to enable software reception target time logic. 382 * 383 */ 384 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_RX_TIMING_ENABLE 385 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_RX_TIMING_ENABLE 0 386 #endif 387 388 /** 389 * @def OPENTHREAD_CONFIG_MAC_SOFTWARE_ENERGY_SCAN_ENABLE 390 * 391 * Define to 1 to enable software energy scanning logic. 392 * 393 */ 394 #ifndef OPENTHREAD_CONFIG_MAC_SOFTWARE_ENERGY_SCAN_ENABLE 395 #define OPENTHREAD_CONFIG_MAC_SOFTWARE_ENERGY_SCAN_ENABLE 0 396 #endif 397 398 /** 399 * @def OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE 400 * 401 * Define to 1 to enable csl transmitter logic. 402 * 403 */ 404 #ifndef OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE 405 #define OPENTHREAD_CONFIG_MAC_CSL_TRANSMITTER_ENABLE (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2) 406 #endif 407 408 /** 409 * @def OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 410 * 411 * This setting configures the CSL receiver feature in Thread 1.2. 412 * 413 */ 414 #ifndef OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 415 #define OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 0 416 #endif 417 418 /** 419 * @def OPENTHREAD_CONFIG_MAC_CSL_AUTO_SYNC_ENABLE 420 * 421 * This setting configures CSL auto synchronization based on data poll mechanism in Thread 1.2. 422 * 423 */ 424 #ifndef OPENTHREAD_CONFIG_MAC_CSL_AUTO_SYNC_ENABLE 425 #define OPENTHREAD_CONFIG_MAC_CSL_AUTO_SYNC_ENABLE OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE 426 #endif 427 428 /** 429 * @def OPENTHREAD_CONFIG_MAC_CSL_MIN_PERIOD 430 * 431 * This setting configures the minimum CSL period that could be used, in units of milliseconds. 432 * 433 */ 434 #ifndef OPENTHREAD_CONFIG_MAC_CSL_MIN_PERIOD 435 #define OPENTHREAD_CONFIG_MAC_CSL_MIN_PERIOD 10 436 #endif 437 438 /** 439 * @def OPENTHREAD_CONFIG_MAC_CSL_MAX_TIMEOUT 440 * 441 * This setting configures the maximum CSL timeout that could be used, in units of seconds. 442 * 443 */ 444 #ifndef OPENTHREAD_CONFIG_MAC_CSL_MAX_TIMEOUT 445 #define OPENTHREAD_CONFIG_MAC_CSL_MAX_TIMEOUT 10000 446 #endif 447 448 /** 449 * @def OPENTHREAD_CONFIG_CSL_TIMEOUT 450 * 451 * The default CSL timeout in seconds. 452 * 453 */ 454 #ifndef OPENTHREAD_CONFIG_CSL_TIMEOUT 455 #define OPENTHREAD_CONFIG_CSL_TIMEOUT 100 456 #endif 457 458 /** 459 * @def OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE 460 * 461 * CSL receiver debug option. When this option is enabled, a CSL receiver wouldn't actually sleep in CSL state so it 462 * can still receive packets from the CSL transmitter. 463 * 464 */ 465 #ifndef OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE 466 #define OPENTHREAD_CONFIG_MAC_CSL_DEBUG_ENABLE 0 467 #endif 468 469 /** 470 * @def OPENTHREAD_CONFIG_CSL_TRANSMIT_TIME_AHEAD 471 * 472 * Transmission scheduling and ramp up time needed for the CSL transmitter to be ready, in units of microseconds. 473 * This time must include at least the radio's turnaround time between end of CCA and start of preamble transmission. 474 * To avoid early CSL transmission it also must not be configured higher than the actual scheduling and ramp up time. 475 * 476 */ 477 #ifndef OPENTHREAD_CONFIG_CSL_TRANSMIT_TIME_AHEAD 478 #define OPENTHREAD_CONFIG_CSL_TRANSMIT_TIME_AHEAD 40 479 #endif 480 481 /** 482 * @def OPENTHREAD_CONFIG_CSL_RECEIVE_TIME_AHEAD 483 * 484 * Reception scheduling and ramp up time needed for the CSL receiver to be ready, in units of microseconds. 485 * 486 */ 487 #ifndef OPENTHREAD_CONFIG_CSL_RECEIVE_TIME_AHEAD 488 #define OPENTHREAD_CONFIG_CSL_RECEIVE_TIME_AHEAD 320 489 #endif 490 491 /** 492 * @def OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AHEAD 493 * 494 * The minimum time (in microseconds) before the MHR start that the radio should be in receive state and ready to 495 * properly receive in order to properly receive any IEEE 802.15.4 frame. Defaults to the duration of SHR + PHR. 496 * 497 */ 498 #ifndef OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AHEAD 499 #define OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AHEAD (6 * 32) 500 #endif 501 502 /** 503 * @def OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AFTER 504 * 505 * The minimum time (in microseconds) after the MHR start that the radio should be in receive state in order 506 * to properly receive any IEEE 802.15.4 frame. Defaults to the duration of a maximum size frame, plus AIFS, 507 * plus the duration of maximum enh-ack frame. Platforms are encouraged to improve this value for energy 508 * efficiency purposes. 509 * 510 */ 511 #ifndef OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AFTER 512 #define OPENTHREAD_CONFIG_MIN_RECEIVE_ON_AFTER ((127 + 6 + 39) * 32) 513 #endif 514 515 /** 516 * @def OPENTHREAD_CONFIG_MAC_SCAN_DURATION 517 * 518 * This setting configures the default scan duration in milliseconds. 519 * 520 */ 521 #ifndef OPENTHREAD_CONFIG_MAC_SCAN_DURATION 522 #define OPENTHREAD_CONFIG_MAC_SCAN_DURATION 300 523 #endif 524 525 /** 526 * @def OPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE 527 * 528 * This setting configures if the beacon payload parsing needs to be enabled in MAC. This is optional and is disabled by 529 * default because Thread 1.2.1 has removed support for beacon payloads. 530 * 531 */ 532 #ifndef OPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE 533 #define OPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE 0 534 #endif 535 536 /** 537 * @def OPENTHREAD_CONFIG_MAC_OUTGOING_BEACON_PAYLOAD_ENABLE 538 * 539 * This setting configures if the beacon payload needs to be enabled in outgoing beacon frames. This is optional and is 540 * disabled by default because Thread 1.2.1 has removed support for beacon payloads. 541 * 542 */ 543 #ifndef OPENTHREAD_CONFIG_MAC_OUTGOING_BEACON_PAYLOAD_ENABLE 544 #define OPENTHREAD_CONFIG_MAC_OUTGOING_BEACON_PAYLOAD_ENABLE 0 545 #endif 546 547 /** 548 * @def OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT 549 * 550 * This setting specifies the timeout for receiving the Data Frame (in msec) - after an ACK with FP bit set was 551 * received. 552 * 553 */ 554 #ifndef OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT 555 #define OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT 100 556 #endif 557 558 #endif // CONFIG_MAC_H_ 559