void mac_helper_devicetable_set(mle_neigh_table_entry_t *entry_temp, protocol_interface_info_entry_t *cur, uint32_t frame_counter, uint8_t keyID) { if (!cur->mac_api) { return; } if (cur->mac_parameters->SecurityEnabled && cur->mac_parameters->mac_default_key_index != keyID) { tr_debug("Do not set counter by index %u != %u", cur->mac_parameters->mac_default_key_index, keyID); return; } mlme_device_descriptor_t device_desc; mlme_set_t set_req; device_desc.FrameCounter = frame_counter; device_desc.Exempt = false; device_desc.ShortAddress = entry_temp->short_adr; memcpy(device_desc.ExtAddress, entry_temp->mac64, 8); device_desc.PANId = mac_helper_panid_get(cur); set_req.attr = macDeviceTable; set_req.attr_index = entry_temp->attribute_index; set_req.value_pointer = (void*)&device_desc; set_req.value_size = sizeof(mlme_device_descriptor_t); tr_debug("Register Device"); cur->mac_api->mlme_req(cur->mac_api,MLME_SET , &set_req); }
void mac_helper_device_description_write(protocol_interface_info_entry_t *cur, mlme_device_descriptor_t *device_desc, uint8_t *mac64, uint16_t mac16, uint32_t frame_counter, bool exempt) { memcpy(device_desc->ExtAddress, mac64, 8); device_desc->ShortAddress = mac16; device_desc->PANId = mac_helper_panid_get(cur); device_desc->Exempt = exempt; device_desc->FrameCounter = frame_counter; }