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

Queries regarding iv update procedure in mesh sdk

Hi,

I am using nrf mesh sdk 3.1.0. with nrf52832.

For iv update one condition is iv_timeout_limit_passed(m_net_state.iv_update.timeout_counter). The timeout_counter value is not stored in flash. so on every power cycle it starts from zero. Please correct me if I am missing anything here in understanding.

If above statement is correct then if a node power cycles like many times such that sequence number has exhausted its 24bits value and iv never got updated because timeout_counter never reaches its max value then that node wont be able to send anymore messages.

can this case happen?

Parents
  • Hi Aniket

    Here are the possible workarounds provided by one of our developers:

    1. Decrease NETWORK_SEQNUM_FLASH_BLOCK_SIZE from 8192 to e.g. 512. This will prevent the application from running out of sequence numbers very quickly. Try this first to see if it helps.

    If you know how long the devices are awake, option 2 or 3 can be used as well:

    2. Set the initial value of timeout_counter close to 96 hours (depending on how long the devices are awake).

    3. Reduce NETWORK_MIN_IV_UPDATE_INTERVAL_MINUTES value so that the IV update procedure could be triggered earlier.

    We do not recommend using option 4 unless all of the above fails:

    4. Enable the test mode (like you suggest). This will allow you to change the IV update state as soon as the device has run out of sequence numbers.

    Best regards,

    Simon

Reply Children
No Data
Related