I am currently working on a project based on the light_switch mesh example and am running into an issue where I'm receiving several of the following error throughout operation:
[er5] Could not process mesh packet...
er5 refers to NRF_ERROR_NOT_FOUND
It would appear that it comes about from the following function in net_packet.c
uint32_t net_packet_decrypt(network_packet_metadata_t * p_net_metadata,
uint32_t net_packet_len,
const packet_mesh_net_packet_t * p_net_encrypted_packet,
packet_mesh_net_packet_t * p_net_decrypted_packet,
net_packet_kind_t packet_kind)
{
NRF_MESH_ASSERT(p_net_metadata != NULL && p_net_encrypted_packet != NULL &&
p_net_decrypted_packet != NULL &&
p_net_decrypted_packet != p_net_encrypted_packet);
if (net_packet_len < PACKET_MESH_NET_PDU_OFFSET || net_packet_len > PACKET_MESH_NET_MAX_SIZE)
{
return NRF_ERROR_INVALID_LENGTH;
}
p_net_metadata->internal.iv_index = net_state_rx_iv_index_get(packet_mesh_net_ivi_get(p_net_encrypted_packet));
p_net_metadata->p_security_material = NULL;
uint8_t nid = packet_mesh_net_nid_get(p_net_encrypted_packet);
const nrf_mesh_network_secmat_t * p_secmat[2] = { NULL, NULL };
do {
nrf_mesh_net_secmat_next_get(nid, &p_secmat[0], &p_secmat[1]);
for (uint32_t i = 0; i < ARRAY_SIZE(p_secmat) && p_secmat[i] != NULL; i++)
{
if (try_decrypt(p_net_metadata,
net_packet_len,
p_net_encrypted_packet,
p_net_decrypted_packet,
p_secmat[i],
packet_kind))
{
return NRF_SUCCESS;
}
}
} while (p_secmat[0] != NULL);
return NRF_ERROR_NOT_FOUND;
}
Any idea what would be causing this to happen?