Lines Matching full:the
7 in a mesh network, with a purpose of enhancing the Bluetooth Mesh throughput. The segmentation and
8 reassembly mechanism is used by the lower transport layer.
10 The lower transport layer defines how the upper transport layer PDUs are segmented and reassembled
11 into multiple Lower Transport PDUs, and sends them to the lower transport layer on a peer device.
12 If the Upper Transport PDU fits, it is sent in a single Lower Transport PDU. For longer packets,
13 which do not fit into a single Lower Transport PDU, the lower transport layer performs segmentation,
14 splitting the Upper Transport
17 The lower transport layer on the receiving device reassembles the segments into a single Upper
18 Transport PDU before passing it up the stack. Delivery of a segmented message is acknowledged by the
19 lower transport layer of the receiving node, while an unsegmented message delivery is not
21 sent as a single-segment segmented message when acknowledgment by the lower transport layer is
22 required. Set the ``send rel`` flag (see :c:struct:`bt_mesh_msg_ctx`) to use the reliable message
25 The transport layer is able to transport up to 32 segments with its SAR mechanism, with a maximum
26 message (PDU) size of 384 octets. To configure message size for the Bluetooth Mesh stack, use the
29 * :kconfig:option:`CONFIG_BT_MESH_RX_SEG_MAX` to set the maximum number of segments in an incoming …
30 * :kconfig:option:`CONFIG_BT_MESH_TX_SEG_MAX` to set the maximum number of segments in an outgoing …
32 The Kconfig options :kconfig:option:`CONFIG_BT_MESH_TX_SEG_MSG_COUNT` and
34 messages can be processed simultaneously. When more than one segmented message is sent to the same
35 destination, the messages are queued and sent one at a time.
37 Incoming and outgoing segmented messages share the same pool for allocation of their segments. This
38 pool size is configured through the :kconfig:option:`CONFIG_BT_MESH_SEG_BUFS` Kconfig option.
39 Both incoming and outgoing messages allocate segments at the start of the transaction. The outgoing
40 segmented message releases its segments one by one as soon as they are acknowledged by the receiver,
41 while the incoming message releases the segments first after the message is fully received.
42 Keep this in mind when defining the size of the buffers.
44 SAR does not impose extra overhead on the access layer payload per segment.
56 The following SAR behavior applies regardless of the presence of a SAR Configuration Server on a
59 Transmission of segments is separated by a segment transmission interval (see the
60 `SAR Segment Interval Step`_ state). Other configurable time intervals and delays available for the
63 * Interval between unicast retransmissions (see the states `SAR Unicast Retransmissions Interval St…
64 * Interval between multicast retransmissions (see the `SAR Multicast Retransmissions Interval Step`…
65 * Segment reception interval (see the `SAR Receiver Segment Interval Step`_ state).
66 * Acknowledgment delay increment (see the `SAR Acknowledgment Delay Increment`_ state).
68 When the last segment marked as unacknowledged is transmitted, the lower transport layer starts a
69 retransmissions timer. The initial value of the SAR Unicast Retransmissions timer depends on the
70 value of the TTL field of the message. If the TTL field value is greater than ``0``, the initial
71 value for the timer is set according to the following formula:
78 If the TTL field value is ``0``, the initial value of the timer is set to the unicast
81 The initial value of the SAR Multicast Retransmissions timer is set to the multicast retransmissions
84 When the lower transport layer receives a message segment, it starts a SAR Discard timer. The
85 discard timer tells how long the lower transport layer waits before discarding the segmented message
86 the segment belongs to. The initial value of the SAR Discard timer is the discard timeout value
87 indicated by the `SAR Discard Timeout`_ state.
89 SAR Acknowledgment timer holds the time before a Segment Acknowledgment message is sent for a
90 received segment. The initial value of the SAR Acknowledgment timer is calculated using the
98 The ``SegN`` field value identifies the total number of segments the Upper Transport PDU is
107 If the number of segments in the transmission is higher than the value of the
108 `SAR Segments Threshold`_ state, Segment Acknowledgment messages are retransmitted using the value
109 of the `SAR Acknowledgment Retransmissions Count`_ state.
121 The SAR Transmitter state is a composite state that controls the number and timing of transmissions
122 of segmented messages. It includes the following states:
132 The SAR Receiver state is a composite state that controls the number and timing of Segment
133 Acknowledgment transmissions and the discarding of reassembly of a segmented message. It includes
134 the following states:
145 SAR Segment Interval Step state holds a value that controls the interval between transmissions of
146 segments of a segmented message. The interval is measured in milliseconds.
148 Use the :kconfig:option:`CONFIG_BT_MESH_SAR_TX_SEG_INT_STEP` Kconfig option to set the default
149 value. Segment transmission interval is then calculated using the following formula:
159 SAR Unicast Retransmissions Count holds a value that defines the maximum number of retransmissions
160 of a segmented message to a unicast destination. Use the
161 :kconfig:option:`CONFIG_BT_MESH_SAR_TX_UNICAST_RETRANS_COUNT` Kconfig option to set the default
167 This state holds a value that defines the maximum number of retransmissions of a segmented message
168 to a unicast address that will be sent if no acknowledgment was received during the timeout, or if
169 an acknowledgment with already confirmed segments was received. Use the Kconfig option
170 :kconfig:option:`CONFIG_BT_MESH_SAR_TX_UNICAST_RETRANS_WITHOUT_PROG_COUNT` to set the maximum number
176 The value of this state controls the interval step used for delaying the retransmissions of
177 unacknowledged segments of a segmented message to a unicast address. The interval step is measured
180 Use the :kconfig:option:`CONFIG_BT_MESH_SAR_TX_UNICAST_RETRANS_INT_STEP` Kconfig option to set the
181 default value. This value is then used to calculate the interval step using the following formula:
191 SAR Unicast Retransmissions Interval Increment holds a value that controls the interval increment
192 used for delaying the retransmissions of unacknowledged segments of a segmented message to a unicast
193 address. The increment is measured in milliseconds.
195 Use the Kconfig option :kconfig:option:`CONFIG_BT_MESH_SAR_TX_UNICAST_RETRANS_INT_INC` to set the
196 default value. The Kconfig option value is used to calculate the increment using the following
207 The state holds a value that controls the total number of retransmissions of a segmented message to
208 a multicast address. Use the Kconfig option
209 :kconfig:option:`CONFIG_BT_MESH_SAR_TX_MULTICAST_RETRANS_COUNT` to set the total number of
215 This state holds a value that controls the interval between retransmissions of all segments in a
216 segmented message to a multicast address. The interval is measured in milliseconds.
218 Use the Kconfig option :kconfig:option:`CONFIG_BT_MESH_SAR_TX_MULTICAST_RETRANS_INT` to set the
219 default value that is used to calculate the interval using the following formula:
229 The value of this state defines the time in seconds that the lower transport layer waits after
230 receiving segments of a segmented message before discarding that segmented message. Use the Kconfig
231 option :kconfig:option:`CONFIG_BT_MESH_SAR_RX_DISCARD_TIMEOUT` to set the default value. The discard
232 timeout will be calculated using the following formula:
242 This state holds a value that controls the delay increment of an interval used for delaying the
243 transmission of an acknowledgment message after receiving a new segment. The increment is measured
246 Use the Kconfig option :kconfig:option:`CONFIG_BT_MESH_SAR_RX_ACK_DELAY_INC` to set the default
247 value. The increment value is calculated to be
254 segmented message for acknowledgment retransmissions. Use the Kconfig option
255 :kconfig:option:`CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD` to set the threshold.
257 When the number of segments of a segmented message is above this threshold, the stack will
258 additionally retransmit every acknowledgment message the number of times given by the value of
264 The SAR Acknowledgment Retransmissions Count state controls the number of retransmissions of Segment
265 Acknowledgment messages sent by the lower transport layer. It gives the total number of
266 retranmissions of an acknowledgment message that the stack will additionally send when the size of
267 segments in a segmented message is above the :kconfig:option:`CONFIG_BT_MESH_SAR_RX_SEG_THRESHOLD`
270 Use the Kconfig option :kconfig:option:`CONFIG_BT_MESH_SAR_RX_ACK_RETRANS_COUNT` to set the default
271 value for this state. The maximum number of transmissions of a Segment Acknowledgment message is
277 The SAR Receiver Segment Interval Step defines the segments reception interval step used for
278 delaying the transmission of an acknowledgment message after receiving a new segment. The interval
281 Use the Kconfig option :kconfig:option:`CONFIG_BT_MESH_SAR_RX_SEG_INT_STEP` to set the default value
282 and calculate the interval using the following formula: