TSCH: add argument validation in tsch_schedule_add_link()
The purpose is to avoid allocating a meaningless link, which could cause communication issue with a peer.
This commit is contained in:
parent
a5a0505d54
commit
4ba8b2e684
@ -180,6 +180,16 @@ tsch_schedule_add_link(struct tsch_slotframe *slotframe,
|
|||||||
struct tsch_link *l = NULL;
|
struct tsch_link *l = NULL;
|
||||||
if(slotframe != NULL) {
|
if(slotframe != NULL) {
|
||||||
/* We currently support only one link per timeslot in a given slotframe. */
|
/* We currently support only one link per timeslot in a given slotframe. */
|
||||||
|
|
||||||
|
/* Validation of specified timeslot and channel_offset */
|
||||||
|
if(timeslot > (slotframe->size.val - 1)) {
|
||||||
|
LOG_ERR("! add_link invalid timeslot: %u\n", timeslot);
|
||||||
|
return NULL;
|
||||||
|
} else if(channel_offset > 15) {
|
||||||
|
LOG_ERR("! add_link invalid channel_offset: %u\n", channel_offset);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Start with removing the link currently installed at this timeslot (needed
|
/* Start with removing the link currently installed at this timeslot (needed
|
||||||
* to keep neighbor state in sync with link options etc.) */
|
* to keep neighbor state in sync with link options etc.) */
|
||||||
tsch_schedule_remove_link_by_timeslot(slotframe, timeslot);
|
tsch_schedule_remove_link_by_timeslot(slotframe, timeslot);
|
||||||
|
Loading…
Reference in New Issue
Block a user