Provides minimal fragment forwarding using the VRB.
More...
Provides minimal fragment forwarding using the VRB.
- See also
- RFC 8930
-
Virtual reassembly buffer
- Warning
- This feature is experimental!
|
file | minfwd.h |
| Minimal fragment forwarding definitions.
|
|
◆ gnrc_sixlowpan_frag_minfwd_forward()
Forwards a fragment according to a VRB entry.
- Parameters
-
[in] | pkt | The fragment to forward (without fragmentation header). Is consumed by this function. |
[in] | frag | The originally received fragmentation header. |
[in] | vrbe | Virtual reassembly buffer containing the forwarding information. Removed when datagram was completely forwarded. |
[in] | page | Current 6Lo dispatch parsing page. |
- Precondition
vrbe != NULL
-
pkt != NULL
-
frag != NULL
- Returns
- 0 on success.
-
-ENOMEM, when packet buffer is too full to prepare packet for forwarding.
◆ gnrc_sixlowpan_frag_minfwd_frag_iphc()
Fragments a packet with just the IPHC (and padding payload to get to 8 byte) as the first fragment.
- Precondition
(frag_msg != NULL)
-
(pkt != NULL) && (pkt->type == GNRC_NETTYPE_NETIF)
-
(pkt->next != NULL) && (pkt->next->type == GNRC_NETTYPE_SIXLOWPAN)
- Parameters
-
[in] | pkt | The compressed packet to be sent. Must be in send order with a packet snip of type GNRC_NETTYPE_NETIF first, GNRC_NETTYPE_SIXLOWPAN (the IPHC header including NHC) second, and 0 or more snips of payload. |
[in] | orig_datagram_size | The size of the pkt before compression (without GNRC_NETTYPE_NETIF snip). This can differ from frag_msg's gnrc_sixlowpan_msg_frag_t::datagram_size as it might just be a fragment in forwarding that is re-compressed in pkt . |
[in] | ipv6_addr | The (uncompressed) destination address of pkt . |
[in] | fbuf | A fragmentation buffer entry. |
- Returns
- 0, when fragmentation was successful
-
-1, on error.
pkt
is not released in that case and should be handled by normal fragmentation.