Downlink event allocation in a network
Techniques for allocating event offsets within a period of transmission are described. A mains-powered device (MPD) may act as a “parent” to one or more battery-powered devices (BPDs). The MPD may assign “event offsets” to each BPD. The event offset is a time by which the BPD's timeslot is “offset” from the start of a periodic cycle of transmissions by the MPD. Thus, each event offset indicates a time that the BPD must be “awake,” i.e., operating its radio receiver and/or performing other functionality. A BPD may spend a substantial fraction of its time in a “sleep” mode, wherein less power is used and fewer functions are performed than during a period of that BPD's event offset. Another BPD may have a different event offset. Communications by the MPD with each child BPD may be substantially uniformly distributed over the period. To increase efficiency, groups of BPDs may receive multicasts.
1. A method, comprising:
transmitting, according to a schedule, a broadcast transmission to a plurality of devices at a first event start-time offset from among a plurality of event start-time offsets indicated by the schedule;
transmitting, according to the schedule, a first unicast transmission to a device of the plurality of devices at a second time indicated by a second event start-time offset from among the plurality of event start-time offsets indicated by the schedule;
transmitting a plurality of unicast transmissions to the plurality of devices, wherein the transmitting is performed according to the schedule, and wherein a distribution of numbers of devices associated with event start-time offsets dedicated to unicast transmissions is substantially uniform;
receiving a request from a device to join a network of the plurality of devices; and
assigning the device requesting to join the network to an event start-time offset such that a number of devices assigned to each event start-time offset is substantially uniform.
2. The method of claim 1 , further comprising:
assigning devices of the plurality of devices to event start-time offsets such that a variance of the distribution of numbers of devices associated with each of the plurality of event start-time offsets is under a threshold value.
3. The method of claim 1 , further comprising:
assigning devices of the plurality of devices to event start-time offsets within the schedule such that a difference between a number of devices assigned to a third event start-time offset and a number of devices assigned to a fourth event start-time offset is within a threshold value.
4. The method of claim 1 , further comprising:
assigning devices of the plurality of devices to event start-time offsets within the schedule in a manner that results in each event start-time offset being associated with “n” number of devices or “n” plus 1 number of devices, wherein “n” is an integer that is zero or greater.
5. The method of claim 1 , wherein a number of event start-time offsets defined within the schedule is based at least in part on one or more factors, the method comprising:
a number of battery-powered devices expected to communicate with a mains-powered device;
an expected message length used in communications between the battery-powered devices and the mains-powered device; and
an expected data rate used by the battery-powered devices and the mains-powered device.
6. The method of claim 1 , further comprising:
transmitting, according to the schedule, a multicast transmission to at least two devices of the plurality of devices, wherein the multicast transmission is sent at a third time indicated by a third event start-time offset from among the plurality of event start-time offsets.
7. The method of claim 1 , further comprising:
detecting that a first device from among the plurality of devices has left the network; and
changing an event start-time offset of a second device of the plurality of devices that is not leaving the network to an event start-time offset previously used by the first device.
8. The method of claim 7 , further comprising:
prior to changing the event start-time offset of the second device, receiving a request to join the network from the second device.
9. The method of claim 1 , further comprising:
receiving requests from additional devices to join the network;
assigning the additional devices to event start-time offsets within the schedule in a manner that results in each event start-time offset being associated with “n” number of devices or “n” plus 1 number of devices, wherein “n” is an integer that is zero or greater.
10. The method of claim 1 , wherein:
a device transmitting according to the schedule is a mains-powered device (MPD); and
devices of the plurality of devices are battery-powered devices (BPDs).
11. The method of claim 1 , further comprising:
transmitting a preamble of a packet of the first unicast transmission at the first event start-time offset associated with a first battery-powered device of the plurality of devices; and
transmitting portions of the packet other than the preamble of the packet after the second event start-time offset associated with a second battery-powered device of the plurality of devices.
12. The method of claim 1 , further comprising:
sending a second unicast transmission to a third device of the plurality of devices at a time indicated by a third event start-time offset;
wherein a radio frequency of the second unicast transmission is based at least in part on a media access control (MAC) address of the third device.
13. The method of claim 1 , further comprising:
transmitting to a first battery-powered device of the plurality of devices according to the first event start-time offset of the schedule during a high-power-use period of the first battery-powered device; and
transmitting to a second battery-powered device of the plurality of devices according to the second event start-time offset of the schedule during a low-power-use period of the first battery-powered device.
14. A mains-powered device comprising:
one or more processors; and
memory communicatively coupled to the one or more processors, the memory storing thereon processor-executable instruction that, when executed by the one or more processors, perform operations comprising:
transmitting, according to a schedule, a broadcast transmission to a plurality of devices at a first event start-time offset from among a plurality of event start-time offsets indicated by the schedule;
transmitting, according to the schedule, a first unicast transmission to a device of the plurality of devices at a second time indicated by a second event start-time offset from among the plurality of event start-time offsets indicated by the schedule;
transmitting a plurality of unicast transmissions to the plurality of devices, wherein the transmitting is performed according to the schedule, and wherein a distribution of numbers of devices associated with event start-time offsets dedicated to unicast transmissions is substantially uniform;
receiving a request from a device to join a network of the plurality of devices; and
assigning the device requesting to join the network to an event start-time offset such that a number of devices assigned to each event start-time offset is substantially uniform.
15. The mains-powered device of claim 14 , wherein the operations further comprise one of:
assigning devices of the plurality of devices to event start-time offsets such that a variance of the distribution of numbers of devices associated with each of the plurality of event start-time offsets is under a threshold value;
assigning devices of the plurality of devices to event start-time offsets within the schedule such that a difference between a number of devices assigned to a third event start-time offset and a number of devices assigned to a fourth event start-time offset is within a threshold value, or
assigning devices of the plurality of devices to event start-time offsets within the schedule in a manner that results in each event start-time offset being associated with “n” number of devices or “n” plus 1 number of devices, wherein “n” is an integer that is zero or greater.
16. The mains-powered device of claim 14 , wherein the operations further comprise:
transmitting, according to the schedule, a multicast transmission to at least two devices of the plurality of devices, wherein the multicast transmission is sent at a third time indicated by a third event start-time offset from among the plurality of event start-time offsets.
17. The mains-powered device of claim 14 , wherein the operations further comprise:
detecting that a first device from among the plurality of devices has left the network; and
changing an event start-time offset of a second device of the plurality of devices that is not leaving the network to an event start-time offset previously used by the first device.
18. The mains-powered device of claim 14 , wherein the operations further comprise:
receiving requests from additional devices to join the network; and
assigning the additional devices to event start-time offsets within the schedule in a manner that results in each event start-time offset being associated with “n” number of devices or “n” plus 1 number of devices, wherein “n” is an integer that is zero or greater.
19. The mains-powered device of claim 14 , wherein the operations further comprise:
transmitting to a first battery-powered device of the plurality of devices according to the first event start-time offset of the schedule during a high-power-use period of the first battery-powered device; and
transmitting to a second battery-powered device of the plurality of devices according to the second event start-time offset of the schedule during a low-power-use period of the first battery-powered device.
20. Non-transitory computer-readable media storing thereon processor executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
transmitting, according to a schedule, a broadcast transmission to a plurality of devices at a first event start-time offset from among a plurality of event start-time offsets indicated by the schedule;
transmitting, according to the schedule, a first unicast transmission to a device of the plurality of devices at a second time indicated by a second event start-time offset from among the plurality of event start-time offsets indicated by the schedule;
transmitting a plurality of unicast transmissions to the plurality of devices, wherein the transmitting is performed according to the schedule, and wherein a distribution of numbers of devices associated with event start-time offsets dedicated to unicast transmissions is substantially uniform;
receiving a request from a device to join a network of the plurality of devices; and
assigning the device requesting to join the network to an event start-time offset such that a number of devices assigned to each event start-time offset is substantially uniform.