1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/sys/net/gnrc/network_layer
Martine Lenders d8081453f2 gnrc_ipv6: clean-up and simplify send handling
This change is a gnrc_ipv6_nib/gnrc_netif(2)-based rework of #7210.

Packet duplication
==================

Its main optimization is that it restructures `gnrc_ipv6` handling of
sent packets so that duplication for write-protection happens at the
latest possible step:

* potential `gnrc_netif` headers added by upper layers are
  write-protected before their removal
* This unifies the duplication of the IPv6 header directly after
  that
* Extension headers in-between the IPv6 header and the payload header
  are duplicated just before the check sum is duplicated

Especially the last point allows for only handing a single packet snip
to all lower functions instead of an already searched IPv6 header
(which now is always the first until it is handed to the interface) +
payload header.

Further clean-ups
=================
* Next-hop link-layer address determination was moved to the
  `_send_unicast` function, greatly simplifying the unicast case in the
  `_send` function
* Code for loopback case was added to a new function `_send_to_self`
* Removed some code duplication
2018-07-16 15:08:56 +02:00
..
icmpv6 gnrc_icmpv6_echo: fix ping for loopback 2018-01-31 15:46:52 +01:00
ipv6 gnrc_ipv6: clean-up and simplify send handling 2018-07-16 15:08:56 +02:00
ndp gnrc_ndp: add support for building RDNSS option 2018-07-05 11:01:22 +02:00
sixlowpan Merge pull request #9424 from miri64/gnrc_sixlowpan_frag/enh/async-gc 2018-07-03 11:45:52 +02:00