zephyr/include/bluetooth
Trond Einar Snekvik 820cfc52ad Bluetooth: Mesh: Rework publication timer
Periodic publication would previously build and send the first
publication inside the bt_mesh_model_pub() function, before cancelling
and rescheduling the next publication. The timer handler would only
handle retransmissions, and would abandon the rest of the publication
event if one of the packets failed to send.

This design has three issues:
- If the initial timer cancel fails, the publication would interfer with
  the periodic publication management, which might skip an event or
  send too many packets.
- If any of the messages fail to publish, the full publication event
  would be abandoned. This is not predictable or expected from the API.
- bt_mesh_model_pub() required 384 bytes of stack to build the message,
  which has to be factored into all calling threads.

This patch moves all transmission into the publication timer by
replacing k_work_cancel with a single k_work_reschedule(K_NO_WAIT). It
also changes the error recovery behavior to attempt to finish the full
publication event even if some of the transmissions fail.

Split out from #33782.

Signed-off-by: Trond Einar Snekvik <Trond.Einar.Snekvik@nordicsemi.no>
2021-04-15 20:31:44 +02:00
..
audio Bluetooth: Audio: Audio Input Control Service and client 2021-04-12 11:47:00 -04:00
mesh Bluetooth: Mesh: Rework publication timer 2021-04-15 20:31:44 +02:00
services Bluetooth: services: Refacter OTS dir list to avoid circular dependency 2021-03-17 11:30:07 +01:00
a2dp-codec.h license: add missing SPDX headers 2021-02-11 08:05:16 -05:00
a2dp.h
addr.h Bluetooth: host: Fix doxygen in addr header 2021-02-02 08:46:17 -05:00
att.h Bluetooth: ATT: Add ATT first/last handle defines 2021-04-08 16:35:57 +02:00
avdtp.h
bluetooth.h Bluetooth: host: Add functions for periodic adv sync objects 2021-04-07 14:16:46 +02:00
buf.h Bluetooth: host: Remove deprecated BT_BUF_USER_DATA_MIN macro 2021-01-29 12:53:10 -05:00
conn.h bluetooth: host: EAGAIN when initiating a connection when scanning 2021-03-17 15:33:43 -04:00
controller.h
crypto.h
direction.h Bluetooth: host: direction: Add public API to set CTE TX enable for adv 2021-01-14 15:26:32 +01:00
gap.h Bluetooth: Host: Updated ISO SCA description 2021-03-11 06:38:08 -05:00
gatt.h Bluetooth: GATT: Fix undefined symbols 2021-04-14 18:19:42 +02:00
hci_err.h Bluetooth: host: Remove deprecated security defines 2021-01-29 12:53:10 -05:00
hci_raw.h Bluetooth: HCI: Add option CONFIG_BT_HCI_ACL_DATA_SIZE 2021-03-12 20:40:21 +02:00
hci_vs.h
hci.h Bluetooth: controller: ISO adaptation layer, Rx unframed 2021-04-14 18:17:09 +02:00
hfp_hf.h
iso.h Bluetooth: host: Add ISO disconnect reason 2021-04-07 14:16:54 +02:00
l2cap.h Bluetooth: Fix a comment typo for bt_l2cap_server.sec_level in l2cap.h 2021-03-11 08:59:02 -05:00
mesh.h Bluetooth: Mesh: Introduce acknowledged message API 2021-04-08 13:44:24 +02:00
rfcomm.h
sdp.h
testing.h
uuid.h Bluetooth: Audio: Audio Input Control Service and client 2021-04-12 11:47:00 -04:00