zephyr/subsys/bluetooth/mesh
Pavel Vasilyev 867b88635d Bluetooth: Mesh: Don't do bulk tx of seg msgs
In the current implementation of segmented messages transmission, the
transport layer will put as many segments as it can into the advertiser
buffer. If a long segmented message is transmitted, there is a chance
that an ack will be received before the transport layer finishes sending
the first batch of segments. This will trigger retransmissions of those
segments that are marked as missing in the ack, that are also the
segments that are scheduled (or about to be scheduled), but not sent
out by the advertiser yet. Thus, the receiver may receive already
received segments.

This commit changes 2 things:
- it prevents rescheduling transmission of missing segments upon
reception of ack. Thus, ack doesn't cause segments duplication in the
advertiser buffer;
- it doesn't put all segments to the advertiser buffer. Thus, ack that
acknowledges all segments can immediately stop rescheduling segments as
they are already received;

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2022-07-04 14:31:44 +00:00
..
access.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
access.h everywhere: fix typos 2022-03-18 13:24:08 -04:00
adv_ext.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
adv_legacy.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
adv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
adv.h
app_keys.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
app_keys.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
beacon.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
beacon.h Bluetooth: Mesh: Fix unable iv update due to cache 2022-03-08 11:09:49 +01:00
cdb.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
cdb.h
cfg_cli.c Bluetooth: Mesh: model sub status async callback 2022-06-29 10:26:00 +02:00
cfg_srv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
cfg.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
cfg.h
CMakeLists.txt Bluetooth: Mesh: Configurable RPL module 2022-06-16 10:29:38 +02:00
crypto.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
crypto.h Bluetooth: Mesh: encapsulate tinycrypt dependency 2022-04-27 10:07:47 +02:00
foundation.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
friend.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
friend.h
gatt_cli.c Bluetooth: Gatt: Update users of write callback in subscription params 2022-05-16 16:54:27 +02:00
gatt_cli.h Bluetooth: Mesh: Add Proxy Client Feature 2022-02-24 13:51:09 -08:00
health_cli.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
health_srv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
heartbeat.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
heartbeat.h
Kconfig Bluetooth: Mesh: Configurable RPL module 2022-06-16 10:29:38 +02:00
lpn.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
lpn.h
main.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
mesh.h
msg.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net.h
pb_adv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
pb_gatt_cli.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
pb_gatt_cli.h Bluetooth: Mesh: Add Provisioner Over PB-GATT Support 2022-02-24 13:51:09 -08:00
pb_gatt_srv.c Bluetooth: Mesh: fix pb gatt fast advertising 2022-06-24 20:26:48 +02:00
pb_gatt_srv.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
pb_gatt.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
pb_gatt.h Bluetooth: Mesh: Add Provisioner Over PB-GATT Support 2022-02-24 13:51:09 -08:00
prov_bearer.h Bluetooth: Mesh: Fix missing add suffix _COMMON 2022-03-07 10:52:14 +01:00
prov_device.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
prov.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
prov.h Bluetooth: Mesh: Move relative function to pb_gatt.h 2022-02-24 13:51:09 -08:00
provisioner.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
provisioner.h Bluetooth: Mesh: Add Provisioner Over PB-GATT Support 2022-02-24 13:51:09 -08:00
proxy_cli.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
proxy_cli.h Bluetooth: Mesh: Add Proxy Client Feature 2022-02-24 13:51:09 -08:00
proxy_msg.c Bluetooth: Mesh: Fix segmentation when sending proxy message 2022-05-13 15:45:22 +03:00
proxy_msg.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
proxy_srv.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
proxy.h Bluetooth: Mesh: Add Proxy Client Feature 2022-02-24 13:51:09 -08:00
rpl.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
rpl.h
settings.c Bluetooth: Mesh: Configurable RPL module 2022-06-16 10:29:38 +02:00
settings.h
shell.c Bluetooth: Mesh: fix not initialized uuid in model publication 2022-06-21 10:49:01 +02:00
subnet.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
subnet.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
test.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
test.h
TODO
transport.c Bluetooth: Mesh: Don't do bulk tx of seg msgs 2022-07-04 14:31:44 +00:00
transport.h Bluetooth: Mesh: Opt ram of transport segment message 2022-02-21 22:06:38 -05:00