Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[nrf fromlist] Mesh 1.1 bugfixes from PRs #1358

Merged
merged 5 commits into from
Oct 19, 2023

Conversation

PavelVPV and others added 5 commits October 18, 2023 14:33
PTS uses BLOB server model instantiated by DFD server for MBT tests as
it is the first BLOB server model in the device composition data. DFU
server, which also has BLOB server model, is instantiated after DFD
server.

Upstream PR: zephyrproject-rtos/zephyr#63904
Signed-off-by: Pavel Vasilyev <[email protected]>
…sage

When the BLOB server is in Pull mode and all chunks were received for
the current block, and the current block is the last block, then
according to section 5.2.4 of MshMBTv1.0 the server should stop sending
BLOB Partial Block Report messages if it determines that the client
knows that the transfer is complete:

```
While the Pull BLOB State Machine is in the All Chunks Received state,
the Pull BLOB State Machine continues to send the BLOB Partial Block
Report messages until one of the following happens:
•  The Receive BLOB Timeout timer expires.
•  If the current block is not the last block, then the client starts a
new block, in which case a new Pull BLOB State Machine is instantiated.
•  If the current block is the last block, then the server determines
that the client knows the transfer is complete. For example, a
higher-layer model may indicate that the client considers the transfer
complete.
```

We currently don't have any OOB mean (for example, API) to determine
whether the client knows that the transfer is complete. We also need to
keep in mind that the Partial Block Report message can get lost so one
transmission may not be enough. The client could immediately send BLOB
Transfer Get message to get the transfer status, but this goes against
its state machine defined in section 6.2.4.2, where a Block transmission
completes when a BLOB Partial Block Report message is received with an
empty list of requested chunks (table 6.4, figure 6.1).

Because of this, we need to keep sending Partial Block Report messages.
We can keep sending them at least until Block Report timer expires.
If the client sends BLOB Transfer Get message, then it finished with
sending the block and we can change the phase and finish the transfer.

Upstream PR: zephyrproject-rtos/zephyr#63904
Signed-off-by: Pavel Vasilyev <[email protected]>
…t LPN

This can be needed to qualify features without LPN support.

Upstream PR: zephyrproject-rtos/zephyr#63904
Signed-off-by: Pavel Vasilyev <[email protected]>
This fixes an issue where the DFU client could get stuck trying to
transmit a message to servers if the DFU client was misconfigured, for
instance missing application key or network key.

Upstream PR: zephyrproject-rtos/zephyr#64034
Signed-off-by: Ludvig Jordet <[email protected]>
Adds a goto statement to ensure that model extensions are registered
in Composition Data Page 1 if it is enabled.

Upstream PR: zephyrproject-rtos/zephyr#64065
Signed-off-by: Håvard Reierstad <[email protected]>
@ludvigsj ludvigsj self-requested a review October 18, 2023 14:53
@cvinayak cvinayak merged commit 24edc9d into nrfconnect:main Oct 19, 2023
16 checks passed
PavelVPV added a commit to PavelVPV/sdk-nrf that referenced this pull request Oct 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants