1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

Merge pull request #8235 from zhuoshuguo/gnrc_gomach_beacon_length_limit

gnrc_gomach: add sender ID number limit in beacon packet.
This commit is contained in:
Martine Lenders 2017-12-11 16:17:47 +01:00 committed by GitHub
commit 93cb169c1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 0 deletions

View File

@ -276,6 +276,19 @@ extern "C" {
#define GNRC_GOMACH_MAX_ALLOC_SLOTS_NUM (25U)
#endif
/**
* @brief Maximum number of senders allowed to be allocated slots in one cycle.
*
* Exclude the static GoMacH MAC header payload in the beacon, which is 20 bytes,
* we have 107 bytes left for constructing the sender-ID list and the related slots-number
* list. A combined slots allocation information pair (sender ID with its corresponded
* allocate slots number) will cost 9 (8+1) bytes, thus we can hold a maximum of 11
* i.e., ((127 - 20) / 9), sender IDs in the beacon.
*/
#ifndef GNRC_GOMACH_MAX_ALLOC_SENDER_NUM
#define GNRC_GOMACH_MAX_ALLOC_SENDER_NUM (11U)
#endif
/**
* @brief Maximum t2k attempts before going to t2u in GoMacH.
*

View File

@ -488,7 +488,13 @@ int gnrc_gomach_send_beacon(gnrc_netif_t *netif)
total_tdma_slot_num -= redueced_slots_num;
break;
}
j++;
/* If reach the maximum sender ID number limit, stop. */
if (total_tdma_node_num >= GNRC_GOMACH_MAX_ALLOC_SENDER_NUM) {
break;
}
}
}