zephyr/doc
Jonathan Rico 38c39af4df Bluetooth: L2CAP: Prepend SDU header immediately
Previously it was not always possible to prepend the header.

It was not possible if the application neglected to reserve the space
for headers.  This is bad because it forces a buffer segment allocation
even if the buffer had enough room for the headers. E.g. a payload of 10
bytes in a netbuf of 30 bytes would have been segmented.

We now explicitly reject the buffer if it does not have the headroom.

This allows us to do a nice thing; simplify L2CAP segmentation.

We convert the SDU from the application into a PDU payload, by
prepending the SDU header, i.e. the SDU length in the original buffer.

This PDU payload is ready to be chunked into PDUs without having to keep
track of where in the SDU we are. This has the effect of removing a
bunch of logic in the segmentation machine.

Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
Signed-off-by: Aleksander Wasaznik <aleksander.wasaznik@nordicsemi.no>
2024-01-16 11:29:43 +00:00
..
_doxygen doc: update doxygen awesome to v2.3.1 2023-12-15 04:33:16 -05:00
_extensions/zephyr doc: extensions: zephyr-domain: make Breathe inserts optional 2024-01-11 10:04:44 +01:00
_scripts doc: kconfig: redirect: Add redirects for some old URLs 2023-12-21 10:02:58 +00:00
_static doc: Make search engine configurable 2023-12-15 04:34:48 -05:00
_templates doc: Make search engine configurable 2023-12-15 04:34:48 -05:00
build doc: build: dts: bindings-syntax: compatible typo 2023-11-29 17:39:30 -08:00
connectivity doc: net: Add network configuration guide 2024-01-11 10:26:47 -05:00
contribute doc: contribute: fix heading formatting 2024-01-07 18:41:16 +01:00
develop doc: twister: fix spelling errors 2024-01-15 11:33:06 +00:00
hardware docs boards native_sim: Add mention about the EEPROM simu 2024-01-09 10:04:03 +01:00
images doc: remove unused images 2021-07-19 20:06:00 -04:00
introduction bluetooth: mesh: Doc fix Bluetooth mesh to Mesh 2023-12-01 10:56:18 +00:00
kernel code_relocation: Add NOKEEP option 2024-01-15 13:20:17 +01:00
project doc: roles: Remove ambiguity for static analysis 2024-01-06 11:57:36 -05:00
releases Bluetooth: L2CAP: Prepend SDU header immediately 2024-01-16 11:29:43 +00:00
safety docs: safety: Add safety documentation 2023-06-22 06:01:39 -04:00
security doc: vuln: Add CVEs under embargo 2024-01-05 23:57:30 +01:00
services posix: sched: Add CONFIG_POSIX_PRIORITY_SCHEDULING 2024-01-15 09:57:44 +01:00
templates doc: Update sample.tmpl with new directive 2023-09-06 12:11:28 +02:00
404.rst doc: Suggest filing GitHub issue for broken links 2022-04-28 10:26:03 +02:00
CMakeLists.txt doc: enable Sphinx tracebacks 2023-07-12 09:13:49 -04:00
conf.py doc: extensions: zephyr-domain: make Breathe inserts optional 2024-01-11 10:04:44 +01:00
glossary.rst doc: Fix occurrences of repeated words 2023-11-15 17:34:39 -05:00
index-tex.rst doc: pdf: Add Glossary of Terms to PDF output 2023-11-13 12:17:51 -05:00
index.rst docs: safety: Add safety documentation 2023-06-22 06:01:39 -04:00
kconfig.rst doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
known-warnings.txt doc: Revert "doc: Add more known-warnings" 2023-09-15 15:05:23 +02:00
LICENSING.rst doc licensing: Remove get_maintainers.pl 2023-06-25 02:46:42 -04:00
Makefile doc: align pseudo-Makefile with latest CMake changes 2023-07-13 14:27:56 +02:00
requirements.txt doc: test: improve pytest documentation 2023-12-14 10:12:21 +01:00
substitutions.txt doc: New developer getting started guide 2019-11-13 14:05:47 -06:00
zephyr.doxyfile.in doc: force include interface header files first 2024-01-11 21:06:03 -05:00