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
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
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
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
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
prov_bearer.h
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
provisioner.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
provisioner.h
proxy_cli.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
proxy_cli.h
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
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