LPN terminated friendship : No response from Friend after 6 retries Ran out of retransmit attempts

Hi,

We have a device running on a nrf52840 which is a Low Power Node and it has a friend.

The device is using zephyr set on the branch v3.3.0-branch.

When a message is transmitted from the friend to the LPN, the poll timeout is repeated 6 times with a short delay (about 150ms) then the friendship is terminated by the LPN device.

But with the exact same code embedded with a zephyr set on the branch v2.5-branch, the device does not have 6 following timeouts.

The configuration of the LPN device is exactly the same:

CONFIG_BT_MESH_LPN_AUTO=n
# 100ms
CONFIG_BT_MESH_LPN_POLL_TIMEOUT=100
# in sec
CONFIG_BT_MESH_LPN_RETRY_TIMEOUT=3600
CONFIG_BT_MESH_LPN_SCAN_LATENCY=0
CONFIG_BT_MESH_LPN_RECV_DELAY=50

You can see the log with the zephyr version 3.3.0:

[00:02:14.267,456] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 
[00:02:23.377,136] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 
[00:02:23.435,302] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 
... Reception of the message
[00:02:23.494,262] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:23.673,431] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 (retry)
[00:02:23.728,546] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:23.833,099] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 (retry)
[00:02:23.888,214] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:23.998,657] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 (retry)
[00:02:24.053,802] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:24.158,325] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 (retry)
[00:02:24.213,439] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:24.317,962] <inf> core_mesh_lpn: core_mesh_lpn_polled: LPN polled 0x0002 (retry)
[00:02:24.373,107] <wrn> bt_mesh_lpn: update_timeout: No response from Friend during ReceiveWindow
[00:02:24.473,419] <err> bt_mesh_lpn: lpn_timeout: No response from Friend after 6 retries
[00:02:24.473,480] <inf> core_mesh_lpn: core_mesh_lpn_terminated: Friendship (as LPN) lost with Friend 0x0002
[00:02:27.141,906] <err> bt_mesh_transport: seg_tx_send_unacked: Ran out of retransmit attempts

he log with the zephyr version 2.5:

[00:00:46.791,778] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:00:55.379,272] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:03.967,102] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:04.057,830] <inf> core_mesh_lpn: LPN polled 0x0002 .
... Reception of the message
[00:01:04.281,524] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:04.426,666] <wrn> bt_mesh_lpn: No response from Friend during ReceiveWindow
[00:01:04.614,990] <inf> core_mesh_lpn: LPN polled 0x0002 (retry)
[00:01:05.671,569] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:05.762,451] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:05.907,592] <wrn> bt_mesh_lpn: No response from Friend during ReceiveWindow
[00:01:06.008,636] <inf> core_mesh_lpn: LPN polled 0x0002 (retry)
[00:01:14.595,733] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:14.686,462] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:15.151,367] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:15.242,095] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:23.829,864] <inf> core_mesh_lpn: LPN polled 0x0002 
[00:01:23.920,562] <inf> core_mesh_lpn: LPN polled 0x0002 

We are stucked with this and it becomes a real preoccupation matter because we cannot communicate with a LPN without loosing the friendship.

As anyone got this problem and knows how to fix it or help us?

Sincerely.

Parents
  • Hi,

    To solve the issue we have to modify the configuration of the friend node

    CONFIG_BT_MESH_FRIEND_LPN_COUNT=10

    CONFIG_BT_MESH_FRIEND_RECV_WIN=25

    CONFIG_BT_EXT_ADV_MAX_ADV_SET=10
    CONFIG_BT_MESH_ADV_EXT_FRIEND_SEPARATE=y
    Using zephyr 3.3, we were able to see an improvement of the power consumption even with a longer receive window.
    CONFIG_BT_MESH_ADV_EXT_FRIEND_SEPARATE : Using the separate extended advertising set makes the Friend node send friendship messages as close to the start of the ReceiveWindow as possible, thus reducing the scanning time on the Low Power node.
Reply
  • Hi,

    To solve the issue we have to modify the configuration of the friend node

    CONFIG_BT_MESH_FRIEND_LPN_COUNT=10

    CONFIG_BT_MESH_FRIEND_RECV_WIN=25

    CONFIG_BT_EXT_ADV_MAX_ADV_SET=10
    CONFIG_BT_MESH_ADV_EXT_FRIEND_SEPARATE=y
    Using zephyr 3.3, we were able to see an improvement of the power consumption even with a longer receive window.
    CONFIG_BT_MESH_ADV_EXT_FRIEND_SEPARATE : Using the separate extended advertising set makes the Friend node send friendship messages as close to the start of the ReceiveWindow as possible, thus reducing the scanning time on the Low Power node.
Children
No Data
Related