Detecting mesh retransmitted packets at the application layer in Zephyr

I have a custom model that subscribes to messages from other devices. I'd like to detect if a  mesh message that is received, is the original or a retransmission so I can filter out duplicates
I saw in the log that this info is available at the mesh stack level  but is it possible to access it at the application level?
Thanks

Parents
  • Hi,

    I have talked to our developer and it seems the message cache will not catch retransmissions done by the access layer. As per BT SIGs website, all actions which are consequences of receiving mesh messages should be idempotent. www.bluetooth.com/.../

    If the action by its nature is not idempotent, the common way to make it idempotent is to include a TID field in the custom message payload.

    The details will be up to the application, but it is the responsibility of the application (and custom model) to ensure idempotence. The actual filtering of the duplicates is something you have to implement yourself.

Reply
  • Hi,

    I have talked to our developer and it seems the message cache will not catch retransmissions done by the access layer. As per BT SIGs website, all actions which are consequences of receiving mesh messages should be idempotent. www.bluetooth.com/.../

    If the action by its nature is not idempotent, the common way to make it idempotent is to include a TID field in the custom message payload.

    The details will be up to the application, but it is the responsibility of the application (and custom model) to ensure idempotence. The actual filtering of the duplicates is something you have to implement yourself.

Children
Related