Hello
I've been experimenting in increasing the number of targets that a mesh FOTA distribution server can support on nRF52840
The CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX has a maximum 65535
Hello
I've been experimenting in increasing the number of targets that a mesh FOTA distribution server can support on nRF52840
The CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX has a maximum 65535
Please clarify what you mean by "send a few target once at a time" What commands should I use??
Do you mean I can do
mesh models dfd receivers-add <1,2,3>
mesh models dfd start ...
mesh models dfd receivers-add <4,5.6>
mesh models dfd start ...
??
If that's the case - how long should I wait before sending the next batch?
Please try:
mesh models dfd receivers-add <1,2,3>
mesh models dfd receivers-add <4,5,6>
mesh models dfd receivers-add <7,8,9>
mesh models dfd start ...
Set CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX = 70
Set CONFIG_BT_MESH_TX_SEG_MAX = 32
Used method you suggested to add targets in batches of 3
Get the "SDU canceled" error and transfer fails
The error occurs regardless of the number of targets - even with just one.
What triggers it it seems is CONFIG_BT_MESH_TX_SEG_MAX > 10
So at the moment I'm stuck with 22 targets - maximum possible with CONFIG_BT_MESH_TX_SEG_MAX =10 without getting build asserts.
Please advise
Hi Andy,
I'm finally back to the office and can actually do some tests.
I was doing a quick test with NCS v2.9.0 and the default distributor sample. Here is my list of commands:
By default CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX = 8 and CONFIG_BT_MESH_TX_SEG_MAX =10.
So it seems to works with small number of receiver and multiple dfd receivers-add packet.
However, when increasing CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX to 32 I hit what you reported earlier :
Yes, I'm using the same commands.
What you're describing is only 1 problem.
There are actually 3
1. When CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX is increased the CONFIG_BT_MESH_TX_SEG_MAX must be increased as well otherwise there is a build assert. Might be good to document it somewhere, (The one you describe)
2. Asserts check against BT_MESH_TX_SDU_MAX or BT_MESH_RX_SDU_MAX ( that the values they check are smaller)
However those defines use 2 hard coded values :BT_MESH_APP_SEG_SDU_MAX and BT_MESH_APP_UNSEG_SDU_MAX (12 and 15 respectively) - see in zephyr\include\zephyr\bluetooth\mesh\access.h
So even if CONFIG_BT_MESH_TX_SEG_MAX is increased to 32 the CONFIG_BT_MESH_DFD_SRV_TARGETS_MAX cannot go higher than 70 or so.
3. Increasing CONFIG_BT_MESH_TX_SEG_MAX to 32 causes DFD to fail almost immediately with "SDU canceled" error even if the number of targets is 1.