(G)ATT transactions shall be queued by host
- Dominant language
- C
- Stars
- 893
- Forks
- 512
- Avg merge
- 13d 31m
- Merged PRs (30d)
- 7
Description
NimBLE host seems to allow to send subsequent ATT requests without waiting for previous one to complete. This behavior is invalid as per Core 5.0, Vol 3, Part F, Section 3.3.2:
> Once a client sends a request to a server, that client shall send no other request to the same server until a response PDU has been received.
We could just let application handle this, however:
1. it makes apps more complicated
2. there are already sample apps which seem to assume that multiple concurrent requests are handled properly (see `blecent_read_write_subscribe` in `apps/blecent`)
Since we already have `ble_gattc_proc`s, we should leverage this to implement proper handling of GATT procedures inside host.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the existing ble_gattc_proc handling and the blecent_read_write_subscribe sample in apps/blecent. Trace how subsequent ATT requests are currently sent and determine where host-side queuing belongs. Done means requests to the same server wait for the preceding response while the cited sample continues to work correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- embedded-iot, networking
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100