ble mesh transmit count on zephyr

Hi all,

I have evaluated the performance with ble mesh on nrf52840 board on zephyr system.

when I use ble sniffer(wireshark) to catch the package I fond that every message is retransmited multiple times on ble mesh.

and then, after seting the CONFIG_BT_MESH_NETWORK_TRANSMIT_COUNT to zero,

the retransmited times is reduced but can not full reduced to send only once transmission !!!

I also checked above and set it to zero, but still retransmit the mesh package! why? 

 

following is which I catched package once mesh message,

it transmit two times on 37,38,39 respectively.

Parents
  • Hi,

    The CONFIG_BT_MESH_NETWORK_TRANSMIT_COUNT sets the default setting for number of additional transmissions of messages originating from the node. This means a setting of 0 should lead to one message getting sent, which means three packets in total, one on each of the three advertising channels.

    However, it is possible to see more packets on the receiver end, depending on some factors:

    One message may consist of multiple packets, if it is so long that it must be segmented. If it is segmented, then each segment will be sent in a separate BLE advertising packet. Each advertising packet gets sent on all three advertising channels. However, it looks from the screenshot like the message is unsegmented (at least the one being showed is unsegmented) so this is most likely not the issue.

    The packets may come via a Relay node. In that case, the "relay retransmit count" on the Relay node decides how many times the message will be sent from that Relay node. Like with the "network transmit count", it is the number of additional transmissions, so a setting of 0 will lead to 1 transmission total, and a setting of 1 will lead to 2 transmissions total, and so on. The default for this setting (compile time) for the relay node is CONFIG_BT_MESH_RELAY_RETRANSMIT_COUNT. If relay nodes are involved, you will typically get both direct and retransmitted packets on the sniffer.

    In addition to the compile time (default) settings, the transmit and retransmit settings can also be configured for the nodes through runtime configuration. So you might see that if you connect to the node from a provisioner, the network transmit count for the model is set different from the default (compile time) configuration. Similar for the retransmit setting of a Relay node.

    Regards,
    Terje

  • HI ,

    thanks for your reply!

    and I have checked CONFIG_BT_MESH_RELAY = n,

    and I use the mesh example which is provided by zephyr,

    and use self-provision but still get this result.

    how to configure it to only transmit one time?  even if is runtime and after provisioned?

Reply Children
No Data
Related