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

Failing to get config composition data

I am working with the light switch example and am having some issues surrounding node configuration, namely getting the composition data.

Setup: 1 client/provisioner (both in the same device), 50 servers. All devices within 1-2 meters of one another. All devices using nRF52840 with s140 softdevice.

Currently I am trying to provision all servers but for unknown reasons it never seems to be able to get past around 35-40 devices before repeatedly failing to get composition data.

Provisioning stage seems to work fine. SERVER_NODE_COUNT has been increased to 60.

Example log of successfully getting composition data:

<info> app: Provisioning complete. Node addr: 0x0102 elements: 1

<info> app: Configuring Node: 0x0102

<info> app: Config client setup: devkey_handle:4 addr_handle:2

<info> app: NODE_SETUP_CONFIG_COMPOSITION_GET
<info> app: Getting composition data

<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app: RX: [aop: 0x0002]

<info> app: RX: Msg
<debug> app: Config client event with opcode: 2    and message event type: 2
<info> app: NODE_SETUP_CONFIG_NETWORK_TRANSMIT
<info> app: Updating network transmit: count: 2 steps: 1
...

Example log of composition data failing:

<info> app: Provisioning complete. Node addr: 0x012A elements: 1

<info> app: Configuring Node: 0x012A

<info> app: Config client setup: devkey_handle:44 addr_handle:42

<info> app: NODE_SETUP_CONFIG_COMPOSITION_GET
<info> app: Getting composition data

<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net TX
<info> app: TX: [aop: 0x8008]

<info> app: TX: Msg
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 1

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 2

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app: Sending ACK...

<info> app: Net TX
<info> app: Message decrypted

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app: Got segment 0

<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<info> app: Sending ACK...

<info> app: Net TX
<info> app:   Net RX (enc)
<info> app: Net RX (unenc)
<info> app:   Net RX (enc)
<info> app:   Net RX (enc)
<debug> app: Config client event with opcode: 1024    and message event type: 0
<info> app: Acknowledged message status not received
<info> app: app_config_failed_cb

I have attempted to repeat the provisioning process when it fails multiple times and it always fails on getting composition data.

Any ideas what could be the issue?

Parents
  • It seems this was to do with REPLAY_CACHE_ENTRIES being set too low. If I increase this value I notice that I am getting a lot more SAR NRF_MESH_SAR_CANCEL_REASON_RETRY_OVER occurring which slows down the whole configuration process.

  • Hi, 
    It's not recommended to use the nRF52 to work as the provisioner for larger network especially for maintaining the database of the network. 
    It's suggested to use PC or mobile device for the task (we provide the PyACI interactive python for provisioning from PC) 

    For a large network in a dense area, you may consider reduce number of relay nodes. There is no point to have all 50 nodes with relay function when they are all in the same range. It may congest the network. Please try to reduce the number of relay nodes down to 2-4 in an area to see if the issue with SAR retry going away. 

Reply
  • Hi, 
    It's not recommended to use the nRF52 to work as the provisioner for larger network especially for maintaining the database of the network. 
    It's suggested to use PC or mobile device for the task (we provide the PyACI interactive python for provisioning from PC) 

    For a large network in a dense area, you may consider reduce number of relay nodes. There is no point to have all 50 nodes with relay function when they are all in the same range. It may congest the network. Please try to reduce the number of relay nodes down to 2-4 in an area to see if the issue with SAR retry going away. 

Children
No Data
Related