New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Orchestra: optimize channel offsets of unicast slotframes #1673
Orchestra: optimize channel offsets of unicast slotframes #1673
Conversation
I have updated the PR with a change that also makes EB output to use multiple channel offsets by default. |
b5bc6e1
to
88da0a5
Compare
Updated the code style here. |
88da0a5
to
90b2436
Compare
90b2436
to
517f9e8
Compare
517f9e8
to
5d63354
Compare
…sc test congfiguration to avoid collisions between EB and unicast channel offsets
5d63354
to
2cfd7f4
Compare
A note for future reference: This PR changes the default channel offsets for Orchestra. An overview for cases when there are more than 2 channels in the hopping sequence (HS):
Mixed deployment will thus not work (or work poorly depending on HS) and adjustments to the different |
I did a quick test on FIT IoT-lab, it showed a slight improvement in PRR as expected. |
The problem: there is an intention to logically separate the channel offsets that are used for EB packets, for broadcast packets, and for unicast packets. However, the max unicast channel offset is set to 255. The real channel is calculated as
offset % hopping_sequence_size
. As typical hopping sequences are much shorter than 256 elements, in many cases unicast packet are going to use the same physical channels as EB and broadcast packets, leading to potential collisions between these types of packets.The solution: the PR makes the range of channel offsets dependent on the hopping sequence size. This will not work as intended if the hopping sequence is changed at the runtime to have a smaller number of channels. However, this is not typical for most networks.
Of course, keeping the three groups of packets is separate channels is not possible if the number of channels is less than 3. In that special case we set
ORCHESTRA_UNICAST_MIN_CHANNEL_OFFSET
to 0 and allow the ranges to overlap.The practical impact of this is very small for most networks, however, it makes it easier to reason about the causes of the collisions in the networks.
This is based on work done with Cysca Technologies.