Go to the documentation of this file. 42 #ifndef __TSCH_CONF_H__ 43 #define __TSCH_CONF_H__ 52 #ifdef TSCH_CONF_KEEPALIVE_TIMEOUT 53 #define TSCH_KEEPALIVE_TIMEOUT TSCH_CONF_KEEPALIVE_TIMEOUT 56 #define TSCH_KEEPALIVE_TIMEOUT (12 * CLOCK_SECOND) 61 #ifdef TSCH_CONF_MAX_KEEPALIVE_TIMEOUT 62 #define TSCH_MAX_KEEPALIVE_TIMEOUT TSCH_CONF_MAX_KEEPALIVE_TIMEOUT 64 #define TSCH_MAX_KEEPALIVE_TIMEOUT (60 * CLOCK_SECOND) 68 #ifdef TSCH_CONF_DESYNC_THRESHOLD 69 #define TSCH_DESYNC_THRESHOLD TSCH_CONF_DESYNC_THRESHOLD 71 #define TSCH_DESYNC_THRESHOLD (2 * TSCH_MAX_KEEPALIVE_TIMEOUT) 75 #ifdef TSCH_CONF_EB_PERIOD 76 #define TSCH_EB_PERIOD TSCH_CONF_EB_PERIOD 78 #define TSCH_EB_PERIOD (16 * CLOCK_SECOND) 82 #ifdef TSCH_CONF_MAX_EB_PERIOD 83 #define TSCH_MAX_EB_PERIOD TSCH_CONF_MAX_EB_PERIOD 85 #define TSCH_MAX_EB_PERIOD (16 * CLOCK_SECOND) 93 #ifdef TSCH_CONF_RESYNC_WITH_SFD_TIMESTAMPS 94 #define TSCH_RESYNC_WITH_SFD_TIMESTAMPS TSCH_CONF_RESYNC_WITH_SFD_TIMESTAMPS 96 #define TSCH_RESYNC_WITH_SFD_TIMESTAMPS 0 100 #ifdef TSCH_CONF_TIMESYNC_REMOVE_JITTER 101 #define TSCH_TIMESYNC_REMOVE_JITTER TSCH_CONF_TIMESYNC_REMOVE_JITTER 103 #define TSCH_TIMESYNC_REMOVE_JITTER TSCH_RESYNC_WITH_SFD_TIMESTAMPS 109 #ifdef TSCH_CONF_BASE_DRIFT_PPM 110 #define TSCH_BASE_DRIFT_PPM TSCH_CONF_BASE_DRIFT_PPM 112 #define TSCH_BASE_DRIFT_PPM 0 116 #ifdef TSCH_CONF_ADAPTIVE_TIMESYNC 117 #define TSCH_ADAPTIVE_TIMESYNC TSCH_CONF_ADAPTIVE_TIMESYNC 119 #define TSCH_ADAPTIVE_TIMESYNC 1 127 #ifdef TSCH_CONF_AUTOSELECT_TIME_SOURCE 128 #define TSCH_AUTOSELECT_TIME_SOURCE TSCH_CONF_AUTOSELECT_TIME_SOURCE 130 #define TSCH_AUTOSELECT_TIME_SOURCE 0 136 #ifdef TSCH_CONF_DEFAULT_HOPPING_SEQUENCE 137 #define TSCH_DEFAULT_HOPPING_SEQUENCE TSCH_CONF_DEFAULT_HOPPING_SEQUENCE 139 #define TSCH_DEFAULT_HOPPING_SEQUENCE TSCH_HOPPING_SEQUENCE_4_4 143 #ifdef TSCH_CONF_JOIN_HOPPING_SEQUENCE 144 #define TSCH_JOIN_HOPPING_SEQUENCE TSCH_CONF_JOIN_HOPPING_SEQUENCE 146 #define TSCH_JOIN_HOPPING_SEQUENCE TSCH_DEFAULT_HOPPING_SEQUENCE 151 #ifdef TSCH_CONF_HOPPING_SEQUENCE_MAX_LEN 152 #define TSCH_HOPPING_SEQUENCE_MAX_LEN TSCH_CONF_HOPPING_SEQUENCE_MAX_LEN 154 #define TSCH_HOPPING_SEQUENCE_MAX_LEN sizeof(TSCH_DEFAULT_HOPPING_SEQUENCE) 163 #ifdef TSCH_CONF_AUTOSTART 164 #define TSCH_AUTOSTART TSCH_CONF_AUTOSTART 166 #define TSCH_AUTOSTART 1 170 #ifdef TSCH_CONF_MAX_JOIN_PRIORITY 171 #define TSCH_MAX_JOIN_PRIORITY TSCH_CONF_MAX_JOIN_PRIORITY 173 #define TSCH_MAX_JOIN_PRIORITY 32 177 #ifdef TSCH_CONF_JOIN_SECURED_ONLY 178 #define TSCH_JOIN_SECURED_ONLY TSCH_CONF_JOIN_SECURED_ONLY 181 #define TSCH_JOIN_SECURED_ONLY LLSEC802154_ENABLED 185 #ifdef TSCH_CONF_JOIN_MY_PANID_ONLY 186 #define TSCH_JOIN_MY_PANID_ONLY TSCH_CONF_JOIN_MY_PANID_ONLY 188 #define TSCH_JOIN_MY_PANID_ONLY 1 192 #ifdef TSCH_CONF_ASSOCIATION_POLL_FREQUENCY 193 #define TSCH_ASSOCIATION_POLL_FREQUENCY TSCH_CONF_ASSOCIATION_POLL_FREQUENCY 195 #define TSCH_ASSOCIATION_POLL_FREQUENCY 100 201 #ifdef TSCH_CONF_CHECK_TIME_AT_ASSOCIATION 202 #define TSCH_CHECK_TIME_AT_ASSOCIATION TSCH_CONF_CHECK_TIME_AT_ASSOCIATION 204 #define TSCH_CHECK_TIME_AT_ASSOCIATION 0 209 #ifdef TSCH_CONF_INIT_SCHEDULE_FROM_EB 210 #define TSCH_INIT_SCHEDULE_FROM_EB TSCH_CONF_INIT_SCHEDULE_FROM_EB 212 #define TSCH_INIT_SCHEDULE_FROM_EB 1 216 #ifdef TSCH_CONF_CHANNEL_SCAN_DURATION 217 #define TSCH_CHANNEL_SCAN_DURATION TSCH_CONF_CHANNEL_SCAN_DURATION 219 #define TSCH_CHANNEL_SCAN_DURATION CLOCK_SECOND 223 #ifdef TSCH_PACKET_CONF_EB_WITH_TIMESLOT_TIMING 224 #define TSCH_PACKET_EB_WITH_TIMESLOT_TIMING TSCH_PACKET_CONF_EB_WITH_TIMESLOT_TIMING 226 #define TSCH_PACKET_EB_WITH_TIMESLOT_TIMING 0 230 #ifdef TSCH_PACKET_CONF_EB_WITH_HOPPING_SEQUENCE 231 #define TSCH_PACKET_EB_WITH_HOPPING_SEQUENCE TSCH_PACKET_CONF_EB_WITH_HOPPING_SEQUENCE 233 #define TSCH_PACKET_EB_WITH_HOPPING_SEQUENCE 0 237 #ifdef TSCH_PACKET_CONF_EB_WITH_SLOTFRAME_AND_LINK 238 #define TSCH_PACKET_EB_WITH_SLOTFRAME_AND_LINK TSCH_PACKET_CONF_EB_WITH_SLOTFRAME_AND_LINK 240 #define TSCH_PACKET_EB_WITH_SLOTFRAME_AND_LINK 0 247 #ifdef TSCH_CONF_DEQUEUED_ARRAY_SIZE 248 #define TSCH_DEQUEUED_ARRAY_SIZE TSCH_CONF_DEQUEUED_ARRAY_SIZE 252 #if QUEUEBUF_CONF_NUM <= 4 253 #define TSCH_DEQUEUED_ARRAY_SIZE 4 254 #elif QUEUEBUF_CONF_NUM <= 8 255 #define TSCH_DEQUEUED_ARRAY_SIZE 8 256 #elif QUEUEBUF_CONF_NUM <= 16 257 #define TSCH_DEQUEUED_ARRAY_SIZE 16 258 #elif QUEUEBUF_CONF_NUM <= 32 259 #define TSCH_DEQUEUED_ARRAY_SIZE 32 260 #elif QUEUEBUF_CONF_NUM <= 64 261 #define TSCH_DEQUEUED_ARRAY_SIZE 64 262 #elif QUEUEBUF_CONF_NUM <= 128 263 #define TSCH_DEQUEUED_ARRAY_SIZE 128 265 #define TSCH_DEQUEUED_ARRAY_SIZE 256 271 #ifdef TSCH_CONF_MAX_INCOMING_PACKETS 272 #define TSCH_MAX_INCOMING_PACKETS TSCH_CONF_MAX_INCOMING_PACKETS 274 #define TSCH_MAX_INCOMING_PACKETS 4 281 #ifdef TSCH_QUEUE_CONF_NUM_PER_NEIGHBOR 282 #define TSCH_QUEUE_NUM_PER_NEIGHBOR TSCH_QUEUE_CONF_NUM_PER_NEIGHBOR 286 #if QUEUEBUF_CONF_NUM <= 4 287 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 4 288 #elif QUEUEBUF_CONF_NUM <= 8 289 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 8 290 #elif QUEUEBUF_CONF_NUM <= 16 291 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 16 292 #elif QUEUEBUF_CONF_NUM <= 32 293 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 32 294 #elif QUEUEBUF_CONF_NUM <= 64 295 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 64 296 #elif QUEUEBUF_CONF_NUM <= 128 297 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 128 299 #define TSCH_QUEUE_NUM_PER_NEIGHBOR 256 305 #ifdef TSCH_QUEUE_CONF_MAX_NEIGHBOR_QUEUES 306 #define TSCH_QUEUE_MAX_NEIGHBOR_QUEUES TSCH_QUEUE_CONF_MAX_NEIGHBOR_QUEUES 308 #define TSCH_QUEUE_MAX_NEIGHBOR_QUEUES ((NBR_TABLE_CONF_MAX_NEIGHBORS) + 2) 314 #ifdef TSCH_SCHEDULE_CONF_WITH_6TISCH_MINIMAL 315 #define TSCH_SCHEDULE_WITH_6TISCH_MINIMAL TSCH_SCHEDULE_CONF_WITH_6TISCH_MINIMAL 317 #define TSCH_SCHEDULE_WITH_6TISCH_MINIMAL (!(BUILD_WITH_ORCHESTRA)) 323 #ifdef TSCH_CONF_BURST_MAX_LEN 324 #define TSCH_BURST_MAX_LEN TSCH_CONF_BURST_MAX_LEN 326 #define TSCH_BURST_MAX_LEN 32 330 #ifdef TSCH_SCHEDULE_CONF_DEFAULT_LENGTH 331 #define TSCH_SCHEDULE_DEFAULT_LENGTH TSCH_SCHEDULE_CONF_DEFAULT_LENGTH 333 #define TSCH_SCHEDULE_DEFAULT_LENGTH 7 337 #ifdef TSCH_SCHEDULE_CONF_MAX_SLOTFRAMES 338 #define TSCH_SCHEDULE_MAX_SLOTFRAMES TSCH_SCHEDULE_CONF_MAX_SLOTFRAMES 340 #define TSCH_SCHEDULE_MAX_SLOTFRAMES 4 344 #ifdef TSCH_SCHEDULE_CONF_MAX_LINKS 345 #define TSCH_SCHEDULE_MAX_LINKS TSCH_SCHEDULE_CONF_MAX_LINKS 347 #define TSCH_SCHEDULE_MAX_LINKS 32 351 #ifdef TSCH_CONF_WITH_SIXTOP 352 #define TSCH_WITH_SIXTOP TSCH_CONF_WITH_SIXTOP 354 #define TSCH_WITH_SIXTOP 0 359 #ifdef TSCH_CONF_WITH_LINK_SELECTOR 360 #define TSCH_WITH_LINK_SELECTOR TSCH_CONF_WITH_LINK_SELECTOR 362 #define TSCH_WITH_LINK_SELECTOR (BUILD_WITH_ORCHESTRA) 370 #ifdef TSCH_CONF_MAC_MIN_BE 371 #define TSCH_MAC_MIN_BE TSCH_CONF_MAC_MIN_BE 373 #define TSCH_MAC_MIN_BE 1 377 #ifdef TSCH_CONF_MAC_MAX_BE 378 #define TSCH_MAC_MAX_BE TSCH_CONF_MAC_MAX_BE 380 #define TSCH_MAC_MAX_BE 5 384 #ifdef TSCH_CONF_MAC_MAX_FRAME_RETRIES 385 #define TSCH_MAC_MAX_FRAME_RETRIES TSCH_CONF_MAC_MAX_FRAME_RETRIES 387 #define TSCH_MAC_MAX_FRAME_RETRIES 7 391 #ifdef TSCH_PACKET_CONF_EACK_WITH_SRC_ADDR 392 #define TSCH_PACKET_EACK_WITH_SRC_ADDR TSCH_PACKET_CONF_EACK_WITH_SRC_ADDR 394 #define TSCH_PACKET_EACK_WITH_SRC_ADDR 0 398 #ifdef TSCH_CONF_CCA_ENABLED 399 #define TSCH_CCA_ENABLED TSCH_CONF_CCA_ENABLED 401 #define TSCH_CCA_ENABLED 0 405 #ifdef TSCH_PACKET_CONF_EACK_WITH_DEST_ADDR 406 #define TSCH_PACKET_EACK_WITH_DEST_ADDR TSCH_PACKET_CONF_EACK_WITH_DEST_ADDR 408 #define TSCH_PACKET_EACK_WITH_DEST_ADDR 1 415 #ifdef TSCH_CONF_HW_FRAME_FILTERING 416 #define TSCH_HW_FRAME_FILTERING TSCH_CONF_HW_FRAME_FILTERING 418 #define TSCH_HW_FRAME_FILTERING 1 422 #ifdef TSCH_CONF_RADIO_ON_DURING_TIMESLOT 423 #define TSCH_RADIO_ON_DURING_TIMESLOT TSCH_CONF_RADIO_ON_DURING_TIMESLOT 425 #define TSCH_RADIO_ON_DURING_TIMESLOT 0 429 #ifdef TSCH_CONF_DEFAULT_TIMESLOT_TIMING 430 #define TSCH_DEFAULT_TIMESLOT_TIMING TSCH_CONF_DEFAULT_TIMESLOT_TIMING 432 #define TSCH_DEFAULT_TIMESLOT_TIMING tsch_timeslot_timing_us_10000 436 #ifndef TSCH_CONF_RX_WAIT 437 #define TSCH_CONF_RX_WAIT 2200