1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

Merge pull request #10841 from miri64/gnrc_sixlowpan/enh/doc-i8511

gnrc_sixlowpan: document submodules according to #8511
This commit is contained in:
Martine Lenders 2019-01-22 15:50:31 +01:00 committed by GitHub
commit 55c0694da6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,11 +11,44 @@
* @ingroup net_gnrc
* @brief GNRC's 6LoWPAN implementation
*
* This module is for usage with the @ref net_gnrc_netapi.
* # Internal API and sub-modules
*
* Internally, @ref net_gnrc_sixlowpan is sub-divided into several sub-modules.
* They implement certain features of the 6LoWPAN standard. Currently
* implemented are
*
* - [Fragmentation](https://tools.ietf.org/html/rfc4944#section-5.3)
* ([gnrc_sixlowpan_frag](@ref net_gnrc_sixlowpan_frag))
* - [Uncompressed IPv6](https://tools.ietf.org/html/rfc4944#section-5.1)
* (as part of the main @ref net_gnrc_sixlowpan module)
* - IPv6 datagram compression according to [RFC 6282](https://tools.ietf.org/html/rfc6282)
* aka IPHC ([gnrc_sixlowpan_iphc](@ref net_gnrc_sixlowpan_iphc), IPv6
* extension header NHC currently missing)
*
* Each sub-module has a `send` and `recv` function prefixed by their
* respective sub-module name with the following signatures
*
* ~~~~~~~~~~~~~~~~~~~~~ {.c}
* void send(gnrc_pktsnip_t *pkt, void *ctx, uint8_t page);
* void recv(gnrc_pktsnip_t *pkt, void *ctx, uint8_t page);
* ~~~~~~~~~~~~~~~~~~~~~
*
* A 6LoWPAN frame `pkt` must pass the sub-modules sequentially in the order of
* its dispatches on receive or the step that makes most sense next on send.
* After it was passed into another sub-module using the respective
* `send`/`recv` function a sub-module must not operate on the `pkt` anymore.
*
* The `ctx` parameter can be used to provide data structures of a sub-module to
* the next sub-module if that needs to modify or read them (e.g. reassembly
* buffer state for IPHC) otherwise, leave it `NULL`.
*
* Finally, the `page` parameter is to provide a sub-module the current parsing
* page context according to [RFC 8025](https://tools.ietf.org/html/rfc8025).
*
* # Supported NETAPI commands
*
* This module handles the following @ref net_gnrc_netapi message types:
* To interact with other modules this module handles the following
* @ref net_gnrc_netapi message types:
*
* ## `GNRC_NETAPI_MSG_TYPE_RCV`
*