This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Mesh seqnum reached maximum

Hi,

I am using sdk for mesh 1.0.0v and have been running some tests on the mesh network. I have been getting an error within the function net_state_seqnum_alloc(), which is preventing any further transmissions due the fact that m_net_state.seqnum < m_net_state.seqnum_max_availableis returning false and triggering the error NRF_ERROR_FORBIDDEN.

I am unsure what the seqnum and seqnum_max_available in the network_state_t are referring to.

What can be done rectify this problem without erasing the device and re-provisioning the mesh?

Thanks,

Richard

Parents
  • The sequence number is explained at section 2.3.9.4 in Mesh Profile v1.0

    According to the spec, IV index need to be updated to avoid the sequence number wrap around. We have implemented that in net_state_seqnum_alloc() in net_state.c. IV index is supposed to be updated.

    How long did it take you to see the issue ? To reach the maximum sequence number, it takes dozens of day to 1, 2 months. Do you see the problem if you disable flash (PERSISTENT_STORAGE = 0) ?

    I would suggest to change the NETWORK_SEQNUM_MAX to something smaller and run the test again and check if iv_update_trigger_if_pending() is called.

Reply
  • The sequence number is explained at section 2.3.9.4 in Mesh Profile v1.0

    According to the spec, IV index need to be updated to avoid the sequence number wrap around. We have implemented that in net_state_seqnum_alloc() in net_state.c. IV index is supposed to be updated.

    How long did it take you to see the issue ? To reach the maximum sequence number, it takes dozens of day to 1, 2 months. Do you see the problem if you disable flash (PERSISTENT_STORAGE = 0) ?

    I would suggest to change the NETWORK_SEQNUM_MAX to something smaller and run the test again and check if iv_update_trigger_if_pending() is called.

Children
Related