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
  • Looking at the code, I believe that net_state_seqnum_alloc() is trying to request a new block of sequence numbers with the call seqnum_block_allocate() That should require a write to flash, which may be lengthy. I'm guessing this function is supposed to block TX while the new block is being allocated, but walking back up the chain of function calls to access_model_publish(), I don't see a retry mechanism.

    I haven't seen this issue yet in my testing, but I worry that I may. I'm looking forward to what Nordic has to say about this.

    Cheers,

    Will

Reply
  • Looking at the code, I believe that net_state_seqnum_alloc() is trying to request a new block of sequence numbers with the call seqnum_block_allocate() That should require a write to flash, which may be lengthy. I'm guessing this function is supposed to block TX while the new block is being allocated, but walking back up the chain of function calls to access_model_publish(), I don't see a retry mechanism.

    I haven't seen this issue yet in my testing, but I worry that I may. I'm looking forward to what Nordic has to say about this.

    Cheers,

    Will

Children
No Data
Related