[riot-notifications] [RIOT-OS/RIOT] pkg/nimble: configure BLE_LL_INIT_SLOT_SIZE to 1 (#16602)

Hauke Petersen notifications at github.com
Thu Jul 1 10:39:20 CEST 2021


### Contribution description
NimBLE offers the option to configure a minimum slotsize that is used when scheduling connection events. I means that a minimum of `SLOT_SIZE * 1,25ms` slot will be reserved for every connection event in the controller, even if the event itself will take less time. The default value for NimBLE is `4`, making the controller block a 5ms for every connection event. Now when running multiple connections in parallel, the connection events will more likely overloap and be skipped, the larger this slot size is. Setting this value to its minimum value of `1` does greatly improve link layer performance for multi-hop (multiple connections per node) scenarios:

The impacts on the link layer are quite drastic, below plotted is the link layer packet delivery radio (PDR) for two runs of the same experiment (15 nodes, 1 to 3 hops in a tree topo, 14 nodes sending CoAP packets every 1s). For the first `BLE_LL_INIT_SLOTS` was configured to `1`, for the second run I configured it to its default value of `4`:
![non_fig_ll_pdr_slotsize](https://user-images.githubusercontent.com/620834/124092963-afb7cb80-da57-11eb-8617-4b9b2a3250fb.png)

Reducing the slot size to `1` increases the link layer reliability by more than 5%!

Looking at the link layer PDR per channel, this improvement can also be observed:

`BLE_LL_INIT_SLOTS := 1`:
![em6_putnon_meshconn-rpl_1s1h39b_i90r110_20210701-085259_ll_pdr_pc](https://user-images.githubusercontent.com/620834/124093693-6156fc80-da58-11eb-99fb-86dd02943265.png)

`BLE_LL_INIT_SLOTS := 4`:
![em6_putnon_meshconn-rpl_1s1h39b_i90r110_20210630-171804_ll_pdr_pc](https://user-images.githubusercontent.com/620834/124093763-6fa51880-da58-11eb-9546-a022d66bc3e0.png)


### Testing procedure
Quickly verifying `gnrc_networking` with at least two BLE nodes would certainly not hurt, everything should still work as expected.

### Issues/PRs references
none

You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/16602

-- Commit Summary --

  * pkg/nimble: configure BLE_LL_INIT_SLOT_SIZE to 1

-- File Changes --

    M pkg/nimble/Makefile.include (1)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/16602.patch
https://github.com/RIOT-OS/RIOT/pull/16602.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/16602
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210701/92a2a958/attachment-0001.htm>


More information about the notifications mailing list