Lines Matching full:missing

52 	enum bt_mesh_blob_chunks_missing missing;  member
198 /* Used in Pull mode to collect all missing chunks from each target in cli->block.missing. */
203 memset(cli->block.missing, 0, sizeof(cli->block.missing)); in update_missing_chunks()
211 bool missing = blob_chunk_missing_get(cli->block.missing, idx) || in update_missing_chunks() local
212 blob_chunk_missing_get(target->pull->missing, idx); in update_missing_chunks()
213 blob_chunk_missing_set(cli->block.missing, idx, missing); in update_missing_chunks()
278 /* In pull mode, the server will tell us which blocks are missing. */ in block_set()
279 memset(cli->block.missing, 0, sizeof(cli->block.missing)); in block_set()
282 memset(target->pull->missing, 0, sizeof(target->pull->missing)); in block_set()
367 !blob_chunk_missing_get((*current)->pull->missing, cli->chunk_idx))) { in next_target()
457 /* Update missing chunks to exclude chunks from dropped targets. */ in drop_remaining_targets()
470 * either retransmit the missing chunks (if any), or proceed to the next block, or suspend in retry_timeout()
714 * | [more missing chunks?]-----[Yes]-----+
754 * transmitting all missing chunks. In the block_check state, the Client will request a block status
755 * from all target nodes. If any targets have missing chunks, the Client will resend them.
758 * @ref bt_mesh_blob_target_pull structure. The Client uses @ref bt_mesh_blob_cli::block::missing
759 * to keep all missing chunks for the current block. Missing chunks for an individual target
760 * is kept in @ref bt_mesh_blob_target_pull::missing. The Client uses @ref
763 * After sending all reported missing chunks to each target, the Client updates
770 * missing chunks. The Client doesn't control when these messages are sent by target nodes, and
772 * receives the Partial Block Report message, it updates missing chunks, resets
904 uint16_t chunk_idx = next_missing_chunk(cli, cli->tx.target->pull->missing, in chunk_tx_complete()
966 blob_chunk_missing_set(cli->block.missing, cli->chunk_idx, false); in chunk_send_end()
969 cli->chunk_idx = next_missing_chunk(cli, cli->block.missing, cli->chunk_idx + 1); in chunk_send_end()
1008 if (next_missing_chunk(cli, cli->block.missing, 0) >= cli->block.chunk_count) { in block_report_wait()
1038 cli->chunk_idx = next_missing_chunk(cli, cli->block.missing, 0); in block_check_end()
1044 LOG_DBG("No more missing chunks for block %u", cli->block.number); in block_check_end()
1160 if (block->missing == BT_MESH_BLOB_CHUNKS_MISSING_NONE) { in rx_block_status()
1164 memset(target->pull->missing, 0, sizeof(target->pull->missing)); in rx_block_status()
1169 } else if (block->missing == BT_MESH_BLOB_CHUNKS_MISSING_ALL) { in rx_block_status()
1172 memcpy(target->pull->missing, block->block.missing, sizeof(block->block.missing)); in rx_block_status()
1174 LOG_DBG("Missing: %s", bt_hex(target->pull->missing, cli->block.chunk_count)); in rx_block_status()
1179 * missing chunks to it. in rx_block_status()
1183 for (int i = 0; i < ARRAY_SIZE(block->block.missing); ++i) { in rx_block_status()
1184 cli->block.missing[i] |= block->block.missing[i]; in rx_block_status()
1192 * transmitting missing chunks. in rx_block_status()
1285 .missing = (buf->len ? BT_MESH_BLOB_CHUNKS_MISSING_ENCODED : in handle_block_report()
1314 blob_chunk_missing_set(status.block.missing, idx, true); in handle_block_report()
1320 if (next_missing_chunk(cli, target->pull->missing, 0) >= cli->block.chunk_count) { in handle_block_report()
1350 status.missing = status_and_format >> 6; in handle_block_status()
1357 status.block.number, status.missing); in handle_block_status()
1359 switch (status.missing) { in handle_block_status()
1366 if (buf->len > sizeof(status.block.missing)) { in handle_block_status()
1371 memcpy(status.block.missing, net_buf_simple_pull_mem(buf, len), in handle_block_status()
1374 LOG_DBG("Missing: %s", bt_hex(status.block.missing, len)); in handle_block_status()
1377 /** MshMBTv1.0: 5.3.8: An empty Missing Chunks field entails that there are no in handle_block_status()
1378 * missing chunks for this block. in handle_block_status()
1381 status.missing = BT_MESH_BLOB_CHUNKS_MISSING_NONE; in handle_block_status()
1391 LOG_DBG("Missing %d", idx); in handle_block_status()
1393 blob_chunk_missing_set(status.block.missing, idx, true); in handle_block_status()