1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
RIOT/sys
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
..
analog_util sys/analog_util: Refactor adc_map, fix compilation 2018-04-16 13:53:49 +02:00
arduino sys/arduino: use RIOTTOOLS variable 2018-05-04 11:16:48 +02:00
auto_init sys/auto_init: add init for asymcute 2018-07-05 15:44:16 +02:00
base64 sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
benchmark sys: added simple benchmark module 2018-01-31 13:55:36 +01:00
bitfield doc: remove sys_util references 2018-04-05 14:39:59 +02:00
bloom
can sys/can: reduce scope of variable 2018-02-22 19:13:39 +01:00
cb_mux sys/cb_mux: initial support 2018-05-28 15:43:41 -04:00
cbor cbor: Move header to cbor subdirectory 2018-05-01 11:12:39 +02:00
checksum
color
cpp11-compat doc: fix whitespaces 2017-09-06 08:49:05 +02:00
crypto sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
div sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
ecc
embunit embunit: Const test case names 2018-06-15 00:34:33 +02:00
event sys/event: allow calling event_post multiple times 2018-04-19 16:41:13 +02:00
evtimer evtimer: use conversion macro US_PER_MS 2018-05-23 15:13:31 +02:00
fmt fmt: Add fmt_strnlen function 2018-06-14 11:57:11 +02:00
fs sys/auto_init: fix doxygen grouping 2018-06-11 19:12:02 +02:00
hashes hashes:sha3: Remove unused functions from Keccak code 2018-03-06 16:18:26 +01:00
include net: add Asymcute (asynchronous MQTT-SN client) 2018-07-05 15:44:16 +02:00
iolist doc: remove sys_util references 2018-04-05 14:39:59 +02:00
isrpipe
libc/include/sys
log make: replace curly braces with parenthesis 2018-03-22 20:43:15 +01:00
luid
matstat sys/matstat: Integer mathematical statistics library 2018-04-28 08:03:35 +02:00
memarray memarray: add fixed-size memory block allocator 2018-04-10 14:37:29 +02:00
mineplex
net gnrc_ipv6: clean-up and simplify send handling 2018-07-16 15:08:56 +02:00
newlib_syscalls_default Merge pull request #9090 from jcarrano/newlib-missing-functions 2018-06-21 13:55:38 +02:00
od sys/od: add ASCII representation to memory dump 2017-11-14 09:22:02 +01:00
oneway-malloc pkg/tlsf: Refactor the TLSF package and bring back original TLSF api. 2018-05-18 15:41:07 +02:00
phydat sys/phydat: add ppb unit support 2018-06-11 15:46:46 +02:00
pipe
pm_layered pm_layered: Use {} for empty while loops 2018-02-01 06:55:49 +01:00
posix sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
ps Merge pull request #9327 from cgundogan/pr/tlsf_total_sizes 2018-06-12 10:07:07 +02:00
puf_sram cortexm_common: add SRAM based PRNG seeder 2018-07-04 17:55:16 +02:00
quad_math
random cortexm_common: add SRAM based PRNG seeder 2018-07-04 17:55:16 +02:00
rtt_stdio sys/rtt_stdio: reserve file descriptors for stdin, stdout, and stderr 2018-02-27 18:16:24 -08:00
saul_reg sys/saul_reg: Fix saul_reg_rm for first element 2018-02-18 11:30:46 +01:00
sema
seq
shell drivers/sht1x: Major refactoring 2018-06-27 08:58:00 +02:00
ssp sys, ssp: fix doxygen grouping 2017-07-03 10:55:35 +02:00
timex sys/timex: fix incompatible atmega time.h 2018-05-28 13:04:55 -04:00
trickle trickle: remove msg_time member from struct 2018-05-17 10:40:12 +02:00
tsrb
uart_stdio sys/uart_stdio: compile with -Wno-cast-function-type 2018-05-17 17:03:27 +02:00
ubjson
universal_address
uuid uuid: Initial import of RFC4122 UUID functions 2018-05-23 16:31:01 +02:00
vfs sys/vfs: Exclude stdio file numbers from auto allocation 2018-02-13 18:05:28 +01:00
xtimer sys: fix doxygen grouping 2018-06-11 19:12:02 +02:00
doc.txt sys: add initial SSP support 2017-06-27 18:05:14 +02:00
Makefile net: add Asymcute (asynchronous MQTT-SN client) 2018-07-05 15:44:16 +02:00
Makefile.dep sys: random: add fortuna PRNG 2018-05-29 18:40:58 +02:00
Makefile.include sys/Makefile.include: remove non existing include directory 2018-06-12 14:08:29 +02:00