Martine Lenders
98f42eeea8
Merge pull request #10356 from miri64/gnrc_ipv6_nib/fix/netif_queued
...
gnrc_ipv6_nib: provide interface on packet queueing
2018-11-09 17:47:12 +01:00
Martine Lenders
94549d136b
gnrc_ipv6_nib_pl: return early if PL entry wasn't allocated
2018-11-09 15:40:46 +01:00
Martine Lenders
6d1a3caa26
gnrc_ipv6_nib: fix NULL pointer dereference
2018-11-09 15:39:41 +01:00
Martine Lenders
ce0c46836c
gnrc_ipv6_nib: provide interface on packet queueing
...
Without this the first packet to a new link-local address will not be
delivered in non-6Lo environments, since the interface is not provided.
With this change, if an internet was provided to the address resolver it
will be stored within an allocated `gnrc_netif_hdr_t`.
At this point [IPv6 already striped](netif strip) the packet of its
netif header, so there is no risk that there will be to, in case it was
provided and the `netif` came from its existence.
2018-11-09 12:56:20 +01:00
60a6e66f77
Merge pull request #10246 from miri64/gnrc_ipv6/fix/encaps-ipv6-recursion
...
gnrc_ipv6: don't recurse into receive for encapsulated IPv6
2018-11-08 12:34:40 +01:00
Martine Lenders
d54ac38f84
gnrc_ipv6: don't dispatch encapsulated IPv6 headers in central function
...
Otherwise, an encapsulated IPv6 packet is handled twice. Once in the
central function, once in the specialized decapsulation.
2018-11-08 11:54:05 +01:00
Martine Lenders
160ccbcf7e
gnrc_ipv6: don't recurse into receive for encapsulated IPv6
...
`_decapsulate()` is called by callees of `_receive()` so the call to
the latter function within the first creates a recursion we don't want.
Using `gnrc_netapi` instead removes that and provides the added benefit
that other subscribers to IPv6 are also informed.
2018-11-08 11:54:05 +01:00
152a9dc325
Merge pull request #10247 from miri64/ipv6_ext_rh/cleanup/central-types
...
ipv6_ext_rh: define type numbers at central place
2018-11-06 20:31:27 +01:00
Martine Lenders
a5c9f959b5
gnrc_ipv6: use gnrc_pktbuf_reverse_snips()
2018-10-25 23:11:33 +02:00
Martine Lenders
274371c174
ipv6_ext_rh: switch over to generic RH type define
2018-10-25 19:21:20 +02:00
Martine Lenders
6a9adf2b59
gnrc_ipv6_ext: remove unnecessary return-value indirection
...
Those return values are internal anyway, and they have the same intent
as the one provided by `gnrc_ipv6_ext_rh`.
2018-10-25 11:12:14 +02:00
Martine Lenders
84a62da102
gnrc_ipv6_ext_rh: rename GNRC_IPV6_EXT_RH_OK for clarity
2018-10-25 11:11:50 +02:00
Martine Lenders
c54ba49e82
gnrc_ipv6_ext: move ipv6_ext_rh (partly) to GNRC
2018-10-25 11:10:25 +02:00
Kevin "Bear Puncher" Weiss
7187bbf8cf
Merge pull request #9426 from gschorcht/esp32
...
ESP32 port
2018-10-16 15:24:25 +02:00
Schorcht
3ac99877ac
cpu: add esp32
2018-10-08 12:20:49 +02:00
chrysn
f07308b07d
gnrc: Extend gnrc_ipv6_get_header checks, use in sock recv
...
gnrc_sock_recv used to duplicate functionality of gnrc_ipv6_get_header,
but additionally checked whether the IPv6 snip is large enough.
All checks are now included in gnrc_ipv6_get_header, but as most of them
stem from programming / user errors, they were moved into asserts; this
constitutes an API change.
2018-09-28 19:40:59 +02:00
05b6af466c
sys: add missig <string.h> includes
2018-09-20 23:47:40 +02:00
Martine Lenders
235661668d
gnrc_ipv6_nib: always configure 802.15.4 long address
...
Our `gnrc_minimal` example configures the link-local address from the
IEEE 802.15.4 short address since it does not include 6Lo-ND.
This causes the application to be incompatible with our other GNRC
application that do include 6Lo-ND, since it [assumes][1] the link-local
address to be based on the EUI-64 for address resolution.
This enforces long addresses (aka EUI-64) for all IEEE 802.15.4 devices
when IPv6 is compiled in so `gnrc_minimal` is compatible again to the
rest.
Fixes #9910
[1]: https://tools.ietf.org/html/rfc6775#section-5.2
2018-09-10 17:08:04 +02:00
Martine Lenders
4f87883ab8
gnrc_ipv6_nib: fallback to SLAAC if ARO is ignored by upstream
...
Linux doesn't have ARO support at the moment so this is a workaround to
try to speak 6Lo-ND while still being able to do DAD with a border
router that doesn't.
2018-08-09 10:56:36 +02:00
Martine Lenders
9720cd857d
gnrc_ipv6_nib: include SLAAC debug addr_str into #ifdef
2018-08-06 14:51:34 +02:00
Martine Lenders
bdb1e80e0a
gnrc_ipv6_nib: make RS emission configurable
2018-08-06 14:51:18 +02:00
Martine Lenders
f946314837
gnrc_ipv6: refactor to remove superfluous temporary variable
...
Since no release in this function is required anyways, we can just use
`payload` to check the return value directly.
2018-08-02 15:20:59 +02:00
Martine Lenders
cb4f6a96a8
gnrc_ipv6: correctly reset from temporary variable
...
While `tmp` in the loop for write-protection for the check-sum
calculation is used to check the return value of
`gnrc_pktbuf_start_write()`, it was never overwriting `payload` causing
the original snip to be used in the following iteration `prev` when
duplicated, and destroying the sanity of `ipv6`.
2018-08-02 15:17:40 +02:00
Martine Lenders
72e9b1f623
gnrc_ipv6: remove superfluous release
...
The packet handed to `_fill_ipv6_hdr()` is already released in the
caller (in the current version this is only `_save_fill_ipv6_hdr()`).
2018-08-02 15:16:08 +02:00
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
Martine Lenders
1916c45dc0
gnrc_ipv6_nib_router: add support to send RDNSSO
2018-07-05 11:09:34 +02:00
Martine Lenders
6d1f012c9d
gnrc_ipv6_nib: add support to handle RDNSSO
2018-07-05 11:09:34 +02:00
Martine Lenders
579d9d78d4
Merge pull request #8823 from miri64/gnrc_ipv6_nib/feat/slaac
...
gnrc_ipv6_nib: add full RFC4862 DAD support
2018-06-21 14:10:36 +02:00
Martine Lenders
b6ab9eb343
gnrc_ipv6_nib: use router instead of netif for router timeout context
...
`GNRC_IPV6_NIB_RTR_TIMEOUT` [expects a default router entry][doc] as
context, so using the `netif` here is clearly wrong. This causes the
hardfault described in #9297 .
[doc]: http://doc.riot-os.org/group__net__gnrc__ipv6__nib.html#ga1c7e892ef6533f699c4e64737c2847c2
2018-06-06 11:37:51 +02:00
Martine Lenders
55adbee488
gnrc_ipv6_nib: add full RFC4862 DAD support
...
Parts of [RFC4862] were already implemented when NDP via the NIB was
first implemented. This change just includes the DAD portion of
[RFC4862]. This should be enough to make RIOT fully RFC4862 compliant.
[RFC4862]: https://tools.ietf.org/html/rfc4862
2018-05-31 17:11:25 +02:00
Sebastian Meiling
4f97fc76fd
Merge pull request #8894 from beduino-project/fix-gnrc_ipv6_blacklist-build
...
gnrc: fix build of gnrc_ipv6_blacklist when ENABLE_DEBUG is disabled
2018-04-23 14:26:53 +02:00
Martine Lenders
3be4b51209
Merge pull request #8867 from miri64/gnrc_ipv6/fix/possible-null-ptr-deref
...
gnrc_ipv6: fix possible NULL pointer dereference
2018-04-12 14:26:22 +02:00
d2db1ba2c3
Merge pull request #8568 from miri64/gnrc_ipv6_nib/fix/abro-ignore-only-on-6lr
...
gnrc_ipv6_nib: only discard RAs without ABROs on 6LR
2018-04-11 22:32:33 +02:00
Sören Tempel
93f65043ce
gnrc: fix build of gnrc_ipv6_blacklist when ENABLE_DEBUG is disabled
...
Without this commit it doesn't build because addr_str isn't defined when
ENABLE_DEBUG is not set.
This issue was introduced in: c001e14f9d
2018-04-06 14:48:32 +02:00
Robin Nehls
ad5617fb83
gnrc_ipv6: discard non-NONXT packets with 0 payload length
...
If the payload length is zero and the next header field is not set to
NONXT, GNRC will interpret the current header as the payload because the
first snip is always interpreted as the payload. This can lead to loops
and or crashes.
2018-04-03 18:34:48 +02:00
Robin Nehls
326be16b90
gnrc_ipv6: fix possible NULL pointer dereference
...
When the payload length of an encapsulated IPv6 packet is 0, the
`_receive` function of IPv6 can be given a NULL pointer, causing the
IPv6 header checker to crash because of a NULL pointer dereference.
2018-04-03 14:46:12 +02:00
Martine Lenders
e11550042c
gnrc_ipv6_nib_6ln: only register addresses not VALID yet
...
With the previous fix, we only have to register addresses that are not
VALID yet on reception of router advertisements. This removes the need
for the hacky `GNRC_NETIF_FLAGS_6LO_ADDRS_REG` flag that was only
introduced to prevent unnecessary re-registration.
2018-02-19 14:39:29 +01:00
Martine Lenders
8c8b6f9494
gnrc_ipv6_nib_6ln: do not mark non-link-local directly VALID
...
The whole address registration looses its point if all addresses are
marked valid from the get-go. With this fix non-link-local addresses
are first marked TENTATIVE and only after successful registration
marked as VALID. Link-local addresses are assumed to always be VALID.
2018-02-19 14:38:27 +01:00
Martine Lenders
3a8695bd0c
gnrc_ipv6_nib: only discard RAs without ABROs on 6LR
...
[RFC6775] only talks of *routers* processing router advertisements,
with regards of discarding them if they do not contain an ABRO.
Additionally, this change makes configuration of tests setups a lot
easier, where one note is a router distributing a prefix and the other
is a host to be configured with the RA. Just do the following on the
router:
```
> ifconfig <if> add <GUA>
> ifconfig <if> rtr_adv
```
e voilà! In current master both nodes would have needed to be compiled
with `GNRC_IPV6_NIB_CONF_MULTIHOP_P6C=0`.
[RFC6775]: https://tools.ietf.org/html/rfc6775#section-8.1.3
2018-02-15 14:40:33 +01:00
smlng
c2b403f4ad
gnrc/netreg: remove usages of gnrc_netreg_num
2018-02-06 21:39:58 +01:00
Martine Lenders
c40a05b6a8
gnrc: fix link-layer/IPv6 address conversion for XBee
2018-01-31 10:54:28 +01:00
Martine Lenders
8e80a372cb
gnrc_ipv6_nib: ignore corner case when adding to PL
...
In #8135 the handling of corner cases for the conversion of
milliseconds to seconds, but the internal handling was not adapted.
2018-01-30 12:28:50 +01:00
Martine Lenders
763b887017
gnrc_ipv6_nib: release packages for forwarding error cases
2018-01-26 17:35:57 +01:00
Martine Lenders
70c1fb7b4e
gnrc_ipv6_nib: fix final RA behavior
...
This fix
* assures that the periodicity of the final router advertisements is
kept (so that no administrative change e.g. adding prefixes to the
prefix list causes additional RAs outside the rate limitation)
* removes all administrative options (PIO, ABRO, 6CO) from final router
advertisements (with router lifetime == 0)
2018-01-26 13:57:19 +01:00
Martine Lenders
6cabac3600
gnrc_ipv6_nib: add reverse-translation for NRFmin
2018-01-22 16:15:30 +01:00
d27fa8efa5
Merge pull request #8214 from miri64/gnrc_ipv6/enh/simplify-netif-access
...
gnrc_ipv6: gnrc_icmpv6: simplify access to network interfaces
2018-01-17 17:02:55 +01:00
Martine Lenders
7c0bb427fa
gnrc_ipv6: gnrc_icmpv6: simplify access to network interfaces
2018-01-17 16:48:58 +01:00
12d4254ae1
gnrc: nib: DEBUG fix
2018-01-15 14:37:05 +01:00
4dba9ee6ba
sys: net: adapt to compile-checked debug messages
2018-01-15 14:37:04 +01:00
Martine Lenders
4013adcf65
Merge pull request #8277 from miri64/doc/fix/must-not-may-not-wording
...
doc: Fix 'must not'/'may not' wording
2018-01-10 20:34:17 +01:00
Martine Lenders
cee9a9c173
gnrc_ipv6_nib: fix nrfmin module check
...
The module is called `nrfmin` not `netdev_nrfmin`. As such this compile
path was never included, even if the `nrfmin` module was present.
2018-01-05 10:40:25 +01:00
17ac0fa3a7
Merge pull request #8101 from miri64/gnrc_netif2/opt/flag-checkers
...
gnrc_netif: assume flag settings on compile time
2017-12-19 12:10:25 +01:00
Martine Lenders
7b5a42ba58
gnrc_netif: assume flag settings on compile time
2017-12-19 12:04:36 +01:00
Martine Lenders
2e93ba1c50
doc: Fix 'must not'/'may not' wording
...
I applied the following terminology and changed the wording in the doc
accordingly:
* must not: If the parameter is of the value it *must not* be it either
hits an assert or crashes the system.
* may not: The value can be that value, but the function will return an
error.
2017-12-19 09:00:12 +01:00
Martine Lenders
2ae30cf582
gnrc_netif: rename IPv6 address "setters"
...
This renames the following functions
* `gnrc_netif_ipv6_addr_add()`
* `gnrc_netif_ipv6_addr_remove()`
* `gnrc_netif_ipv6_group_join()`
* `gnrc_netif_ipv6_group_leave()`
by appending the suffix `_internal`.
\## Reasoning
I'd like to provide a helper function for the *public* equivalent using
`gnrc_netapi_set()`, and those names are to nice to not be taken for
those.
\## Procedure
I used a combination of `git grep` and `sed` to do this and fixed the
alignment in the result of some cases by hand.
```sh
git grep --name-only "\<gnrc_netif_ipv6_\(addr\|group\)_\(add\|remove\|join\|leave\)\>" | \
xargs sed -i 's/\<gnrc_netif_ipv6_\(addr\|group\)_\(add\|remove\|join\|leave\)/\0_internal/g'
```
2017-12-13 13:50:39 +01:00
Martine Lenders
5bdf3670e3
gnrc_ipv6: fix packet snip switch-up
2017-12-05 12:57:50 +01:00
Martine Lenders
7d20a80ba8
gnrc_ipv6_nib: Allow l2addr == NULL for gnrc_ipv6_nib_nc_set()
2017-11-29 17:26:45 +01:00
smlng
b283b7784c
make: fix various compile errors with Wextra
...
pkg, nordic_softdevice_ble: disable CFLAGS to omit compiler error
sys, pm_layered: fix casting nonscalar to the same type
cpu, stm32_common: fix type-limits, remove always true assert
cpu, stm32f4: fix pointer arithmetic in periph/i2c
drivers, at86rf2xx: fix type-limits where condition always true
saul, gpio: fix if no gpio configured for saul
cpu, saml21: add frequency check to periph/timer
driver, cc110x: fix unused param and type-limts errors
boards, wsn430-common: fix old-style-declaration
make: fix old style definition
drivers, sdcard_spi: fix old style typedef
driver, at30tse: remove unnecessary check
driver, nrf24: fix type-limit
driver, pn532: change buffer from char to uint8_t
tests/driver_sdcard: fix type limits
boards, feather-m0: add missing field inits
driver, tcs37727: fix type limits
pkg, emb6: disable some compiler warnings
tests/emb6: disable some compiler warings
pkg, openthread: fix sign compare and unused params
tests/trickle: fix struct init
tests/pthread_cooperation: fix type limits
board, mips-malta: remove feature periph_uart
shell: fix var size for netif command
gnrc, netif: fix sign-compare
gnrc, nib: fix sign-compare
shell: fix output in netif command
posix: fix type-limits in pthread_cond
2017-11-28 18:31:43 +01:00
Martine Lenders
a32a2a93e1
gnrc_ipv6_nib: add interface parameter to nc_del function
2017-11-27 20:32:27 +01:00
Martine Lenders
2f8223106b
gnrc_ipv6_nib: fix ms to sec conversion for sending NDP PIOs
2017-11-24 13:52:20 +01:00
Martine Lenders
973007ad38
gnrc_ipv6_nib: fix ltime > MAX / 1000 corner case in NDP PIOs as well
2017-11-24 13:52:19 +01:00
aff7d6ecd8
Merge pull request #8097 from miri64/gnrc_ipv6_nib/fix/reduce-unreachable-backoff
...
gnrc_ipv6_nib: reduce backoff if neighbor UNREACHABLE and trying reach to it
2017-11-24 01:05:55 +01:00
Martine Lenders
4476d340f0
gnrc_ipv6_nib: remove trailing semicolon in ARSM macro
2017-11-21 17:21:34 +01:00
Martine Lenders
5b747e2629
gnrc_ipv6_nib: cap-off NS sent to prefent overflows
2017-11-21 17:21:34 +01:00
Martine Lenders
168228ddc9
gnrc_ipv6_nib: do not try to re-register to an unreachable router
2017-11-21 17:21:33 +01:00
Martine Lenders
61b539abf9
gnrc_ipv6_nib: reduce backoff if neighbor UNREACHABLE and trying to it
...
When a neighbor becomes UNREACHABLE which causes neighbor solicitations
to be send only up to every minute. If the medium is very busy this can
easily get lost, basically causing the neighbor never to be reachable
again from the perspective of the sending node. To fix this the backoff
is reduced to its start value, every time a packet is sent to that
neighbor.
2017-11-21 11:38:45 +01:00
b561e84b7f
Merge pull request #8091 from miri64/gnrc_ipv6_nib/fix/rereg-retrans-unit
...
gnrc_ipv6_nib: fix retransmission timeout unit for address re-registration
2017-11-20 15:42:59 +01:00
Martine Lenders
564d3c7581
gnrc_ipv6_nib: remove now duplicate join to sol. nodes
2017-11-20 14:22:55 +01:00
Martine Lenders
8c4eb43701
gnrc_ipv6_nib: fix retrans. timeout unit for address re-registration
2017-11-20 13:52:37 +01:00
Martine Lenders
12261a3e69
gnrc_ipv6_nib: Remove stray assert() in _handle_aro()
...
This assertion doesn't make any sense. The function is called by
_copy_and_handle_aro() on a router which causes `nce` to be NULL
(because there is no NCE known yet) and then the function called
directly after (_reg_addr_upstream()) checks if `nce` might be NULL and
creates an NCE if necessary.
2017-11-20 06:41:08 +01:00
Cenk Gündoğan
3be5c9fdf3
nib: use correct fall through hint
2017-11-20 00:35:17 +01:00
Martine Lenders
2a899c45ac
gnrc_ipv6_nib: make user added default route the primary one
2017-11-19 23:36:20 +01:00
Martine Lenders
f62974207d
gnrc_ipv6_nib: add timeouts to routes
2017-11-17 13:43:18 +01:00
Martine Lenders
fb5851dde4
gnrc_ipv6_nib: actually timeout a default router
...
While the GNRC_IPV6_NIB_RTR_TIMEOUT is properly handled, it is actually
never fired. Moreover, the router lifetime is set, but never read.
This removes the router lifetime and switches it out for an evtimer
to does the GNRC_IPV6_NIB_RTR_TIMEOUT event.
2017-11-17 11:43:32 +01:00
Martine Lenders
f90a9a875f
gnrc_ndp2: rename to gnrc_ndp
2017-11-17 10:41:54 +01:00
Martine Lenders
31b1ceb440
gnrc_netif2: rename to gnrc_netif
2017-11-17 10:41:54 +01:00
Martine Lenders
636ef2a498
gnrc: remove legacy neighbor discovery code
2017-11-17 09:20:30 +01:00
Martine Lenders
71a7dbf918
gnrc: remove legacy network interface structures
2017-11-17 09:20:29 +01:00
Martine Lenders
319c0f9d21
gnrc_ipv6_nib: implement behavior for router discovery
2017-11-16 15:49:20 +01:00
Martine Lenders
90549108ca
gnrc_ipv6_nib: add exception in address resolution for SLIP
2017-11-15 20:03:30 +01:00
Martine Lenders
b83bc1b763
Merge pull request #7456 from miri64/gnrc_ipv6_nib/feat/port-to-gnrc_netif2
...
gnrc_ipv6_nib: port to gnrc_netif2
2017-11-11 19:10:14 +01:00
Martine Lenders
72db5e48f0
gnrc_ipv6_nib: fix for 'holey' NIB
...
When there are holes in the NIB (e.g. when entries were removed)
currently the NIB crashes the system due to a failed assertion
(`DEVELHELP` needs to be activated to test this behavior).
This fixes this behavior by making the assertion a check that is always
compiled in.
2017-11-09 15:28:56 +01:00
Martine Lenders
a7d2c65b36
gnrc_ipv6_nib: port to gnrc_netif2
2017-11-08 20:18:53 +01:00
Martine Lenders
861035f22d
gnrc: integrate gnrc_netif2
...
Not link-able, since NDP and NC are missing (intentionally)
2017-11-07 19:08:44 +01:00
Martine Lenders
b1e69a776f
Merge pull request #7910 from x3ro/fix-gnrc-ipv6-nib-test-on-macos
...
tests/gnrc_ipv6_nib: Fix unused function error w/ clang/macOS
2017-11-07 18:16:55 +01:00
Lucas Jenss
069849f002
WIP tests/gnrc_ipv6_nib: Fix unused function error w/ clang/macOS
...
In the case that GNRC_IPV6_NIB_CONF_ARSM is set but
GNRC_IPV6_NIB_CONF_6LN is not, clang complains about
the function _get_l2addr_from_ipv6 never being used.
I couldn't easily figure out why this passes in Murdock,
but I'm guessing that clang is simply being smarter than
GCC. Can someone comment on whether there is a better fix
for this?
Relates to #6473
2017-11-07 17:35:42 +01:00
Lucas Jenss
4bb12ba091
tests/gnrc_ipv6_nib_6ln: Fix error w/ clang on macOS
...
_is_reachable is only used when GNRC_IPV6_NIB_CONF_ARSM
is enabled, and as such it must be guarded so that clang
doesn't complain about a unused function in case
GNRC_IPV6_NIB_CONF_ARSM is not set
Similar to #7910
Relates to 6473
2017-11-07 17:33:15 +01:00
Martine Lenders
eb76e8034d
gnrc_ipv6_nib: return registration state on upstream registration
...
The function `_update_nce_ar_state()` was introduced during the review
of \#7424, but it's return value never used, causing faulty behavior.
2017-10-10 11:06:47 +02:00
Martine Lenders
6a7de28cd1
gnrc: integrate NIB for testing
2017-10-10 10:12:19 +02:00
Martine Lenders
1b36cdf79e
nib: implement public NIB functions up to link-local AR
2017-10-10 10:12:19 +02:00
Martine Lenders
d8acdc9d2d
gnrc_ipv6_nib: add forwarding table component
2017-10-06 23:01:10 +02:00
Martine Lenders
0b2bc25ee0
gnrc_ipv6_nib: provide component to handle ABRO
2017-10-06 22:09:53 +02:00
Martine Lenders
3685fa02ae
gnrc_ipv6_nib: add prefix list component
2017-10-06 15:35:40 +02:00
Cenk Gündoğan
c3d3e7d024
Merge pull request #7212 from miri64/gnrc_ipv6_nib/feat/internal-offl
...
gnrc_ipv6_nib: provide internal implementation for off-link entries
2017-10-06 12:02:43 +02:00
Martine Lenders
f249c0c2a0
gnrc_ipv6_nib: provide internal implementation for off-link entries
2017-10-06 11:50:59 +02:00
Martine Lenders
4df88c89bf
gnrc_ipv6_nib: add neighbor cache component
2017-10-06 11:33:12 +02:00
Martine Lenders
b32200e3ad
gnrc_ipv6_nib: fix caching mechanism of neighbor cache
2017-06-15 11:40:46 +02:00
Martine Lenders
e92f97cb12
gnrc_ipv6_nib: initial import of internal NIB functions
2017-06-09 21:52:37 +02:00
Martine Lenders
c2c2516a53
gnrc: fix cppcheck warnings
2017-04-14 14:36:14 +02:00
smlng
3c0a2f6953
gnrc, ipv6: add static link local ipv6 address
2017-02-28 20:09:40 +01:00
Hauke Petersen
bc232a5642
Merge pull request #5524 from miri64/gnrc_netreg/api/helper-macro
...
gnrc_netreg: introduce helper macro/function for entry init
2016-10-25 21:21:25 +02:00
Martine Lenders
dc45cd2610
gnrc: use new netreg helper functions everywhere
2016-10-25 18:47:30 +02:00
Oleg Hahm
b428979a1d
debug: add missing line breaks
2016-09-27 23:38:41 +02:00
Martine Lenders
9874a6d69a
Merge pull request #5811 from makomi/gnrc
...
sys/net/gnrc: fix cppcheck errors/ warnings
2016-09-05 13:06:04 +02:00
Matthias Kolja Miehl
b108a57637
sys/net/gnrc: gnrc_ipv6_ext: fix variableScope
2016-09-05 02:23:59 +02:00
Martine Lenders
dd7fb1c63b
Merge pull request #5228 from OlegHahm/gnrc_ipv6_hdr_get
...
gnrc ipv6: convenient function to get the header
2016-09-01 23:16:49 +02:00
Martine Lenders
2c5fbab3ff
Merge pull request #5525 from miri64/gnrc/enh/dispatch-send
...
gnrc: use gnrc_netapi_dispatch_send() instead of manual iteration
2016-08-25 14:21:19 +02:00
Martine Lenders
bd230d3b63
gnrc_ipv6: gnrc_icmpv6: use dispatch_receive helper function
2016-08-18 13:25:07 +02:00
Martine Lenders
6d72cdb595
gnrc_ipv6: copy user flags from old netif headers
...
Upper layers might want to utilize the flags (e.g. to tell 6LoWPAN to elide
UDP checksums). This change allows for this by copying non-addressing related
flags to the address resolution generated netif header from the user generated
netif header.
2016-07-26 21:06:36 +02:00
Oleg Hahm
a2b9defc8b
gnrc ipv6: convenient function to get the header
2016-07-22 16:34:52 +02:00
Martine Lenders
e9bbd54f58
Merge pull request #5033 from Yonezawa-T2/validate_ipv6_size
...
gnrc_ipv6: validates payload size
2016-06-07 17:50:28 +02:00
Yonezawa-T2
0de34c91c6
gnrc_ipv6: validates payload size
2016-06-07 10:01:23 +09:00
7718f114cb
all: remove pointer casts for msg.content.ptr
2016-06-02 23:13:42 +02:00
Oleg Hahm
6707c20b7d
netstats: initial import of IPv6 netstats
2016-05-25 14:44:53 +02:00
Martine Lenders
4a13324abb
Merge pull request #5281 from authmillenon/gnrc_ipv6/fix/ext-fix-with-nhc
...
gnrc_ipv6: fix asserts for NHC
2016-04-27 08:39:39 +02:00
Martine Lenders
bf135c4750
Merge pull request #5362 from cgundogan/pr/gnrc_ipv6/remove_unnecessary_check
...
gnrc_ipv6: remove superfluous check for if_entry
2016-04-22 18:18:43 +02:00
Martine Lenders
82a3aae8be
gnrc_ipv6: fix asserts for NHC
2016-04-22 10:11:38 +02:00
kYc0o
d071b2a23d
Merge pull request #5309 from authmillenon/gnrc_ndp/fix/gua-hack
...
gnrc_ndp: don't let addresses timeout
2016-04-20 14:36:51 +02:00
Martine Lenders
8968b7602f
gnrc_ndp: don't let addresses timeout
...
This is a temporary quick-fix for #5122 to not have GUAs removed on an
interface.
It solves the issue by both not letting the registration run out on the router
and by not letting the lifetime of an auto-configured address expire.
2016-04-20 13:31:53 +02:00
Cenk Gündoğan
66507c8cfe
gnrc_ipv6: remove superfluous check for if_entry
2016-04-20 09:41:45 +02:00
Martine Lenders
d64b922db0
Revert "gnrc ipv6: replace check by assert"
...
This reverts commit 856e1ee0d2
.
2016-04-17 14:06:54 +02:00
592558ff33
sys: net: gnrc: fix IS_WIRED netopt call
2016-04-13 15:22:36 +02:00
Oleg Hahm
230e105599
Merge pull request #4738 from authmillenon/gnrc_ipv6/fix/accept-dst-for-all-if
...
gnrc_ipv6: accept packets for global dst at all interfaces
2016-03-30 15:05:35 +02:00
Martine Lenders
5532f92057
gnrc_ipv6: accept packets for global dst at all interfaces
2016-03-30 14:54:48 +02:00
Oleg Hahm
856e1ee0d2
gnrc ipv6: replace check by assert
...
The existence of netif is mandatory here.
2016-03-25 17:30:50 +01:00
kYc0o
f92b025b85
vtimer: get rid of
2016-03-24 17:10:54 +01:00
Cenk Gündoğan
c7a29918ca
Merge pull request #5169 from cgundogan/pr/gnrc_netif/DELETE_ALL_INTERFACES
...
gnrc_ipv6_netif: remove existing interfaces on INIT
2016-03-24 16:34:54 +01:00
Cenk Gündoğan
8bc65a9626
gnrc_ipv6_netif: remove existing interfaces on INIT
2016-03-24 16:10:51 +01:00
Martine Lenders
1724ab50fc
Merge pull request #4654 from Yonezawa-T2/fix_ipv6_ext
...
ipv6_ext: fixed extension header handling
2016-03-24 10:53:00 +01:00
Yonezawa-T2
6443a2bb5c
gnrc_pktbuf: Adds a function to duplicate packet chain
2016-03-24 18:20:28 +09:00
Oleg Hahm
32af3f962e
gnrc ipv6: make address parameters const
2016-03-23 15:20:12 +01:00
Oleg Hahm
991c71cf27
gnrc ipv6: use ipv6_addr_t ptr for hdr_build
2016-03-23 15:20:12 +01:00
Oleg Hahm
360413a033
gnrc ipv6 hdr: remove len params from hdr_build
2016-03-23 15:20:11 +01:00
Yonezawa-T2
f0acefd0af
gnrc_ipv6_nc: fix compilation error at debug output
2016-03-23 13:32:38 +09:00
Yonezawa-T2
bc5b0c3140
ipv6_ext: fixed extension header handling
2016-03-22 12:45:08 +09:00
Cenk Gündoğan
6f6ec3c8a5
gnrc_ipv6_nc: refactor nc_remove function
2016-03-16 13:51:21 +01:00
Martine Lenders
0a3b56e0b4
Merge pull request #5006 from immesys/fix-rtr-adv
...
ndp: change rtr adv src to link local
2016-03-16 12:42:12 +01:00
Joakim Nohlgård
ad40c208c1
Merge pull request #5070 from cgundogan/pr/gnrc_ipv6_nc/remove_timers
...
gnrc_ipv6_nc: remove nc_entry timers
2016-03-16 11:28:52 +01:00
Joakim Nohlgård
f2883792e0
gnrc_ipv6: Set preferred lifetime infinite on addresses in border router scenario.
2016-03-16 10:59:19 +01:00
Cenk Gündoğan
f91e4bde9d
gnrc_ipv6_nc: remove nc_entry timers
2016-03-14 23:45:17 +01:00
Joakim Nohlgård
61e2626779
gnrc_ipv6: Strip netif header and nothing else
2016-03-12 11:13:53 +01:00
Joakim Nohlgård
ea8b0325eb
gnrc: Set address valid lifetime to UINT32_MAX for border router scenario
2016-03-09 14:26:17 +01:00
Michael Andersen
60f6aeaf70
ndp: change rtr adv src to link local
2016-03-08 21:33:35 -08:00
Martine Lenders
0e32745b8a
gnrc: replace static initializers with constants where sensible
2016-03-01 18:29:15 +01:00
Cenk Gündoğan
0ac4ee705c
ipv6: rpl: add source routing header for RPL
2016-02-27 20:39:12 +01:00
Martine Lenders
a66ce9c3eb
Merge pull request #4784 from authmillenon/gnrc_pkt/api/search-type-function
...
gnrc_pkt: provide type search function
2016-02-15 13:33:45 +01:00
Cenk Gündoğan
27a4770601
gnrc_ipv6: make the DEBUG output useful
2016-02-11 16:46:16 +01:00
Martine Lenders
379703ae3a
gnrc: use gnrc_pkt_search_type instead of LL_SEARCH_SCALAR
2016-02-11 01:05:02 +01:00
Oleg Hahm
ae086aeed1
IPv6: cosmetic improvement
...
New condition -> new line
2016-01-29 18:56:03 +01:00
BytesGalore
10ea1226bc
gnrc/ipv6: add blacklisting of IPv6 addresses
2016-01-28 21:50:43 +01:00
BytesGalore
2d1671473b
gnrc_ipv6/whitelist: switch assignment operation to memcpy()
2016-01-28 06:23:31 +01:00
Martine Lenders
5ddcf09627
gnrc_ipv6_netif: don't advertise routers without GUAs
2016-01-26 23:25:07 +01:00
Martine Lenders
0e0eef1273
gnrc_ipv6: use gnrc_ipv6_nc_get_l2_addr()
2016-01-26 10:19:15 +01:00
Martine Lenders
7b21f95df5
gnrc_ipv6_nc: introduce L2 address lookup function
2016-01-26 10:19:15 +01:00
Yonezawa-T2
c9c83c7dc7
nc: cancel timer set by gnrc_ndp_rtr_sol_handle
in gnrc_ipv6_nc_remove
.
2016-01-07 10:12:46 +09:00
Yonezawa-T2
542e045bba
gnrc_ipv6_netif: fixed crash when ENABLE_DEBUG is 1.
...
When ENABLE_DEBUG is 1, `out` is dereferenced unconditionally, but
`_parse_options` in `gnrc_rpl_control_messages.c` calls it with NULL.
Clarified `out` must not NULL and fixed `_parse_options`.
2016-01-07 10:08:37 +09:00
Oleg Hahm
b7a7578e21
Merge pull request #4507 from authmillenon/gnrc_ipv6/fix/no-order-assumptions
...
gnrc_ipv6: make no pre-assumption about any marked headers
2015-12-22 11:18:47 +01:00
Yonezawa-T2
08ba1f8640
gnrc_ipv6_netif: fixed buffer overrun
2015-12-22 11:30:05 +09:00
Martine Lenders
68309045ed
gnrc_ipv6: make no pre-assumption about any marked headers
2015-12-18 18:31:24 +01:00
Yonezawa-T2
c36766a31f
OSX: fix warnings/errors thrown by clang on OS X
...
gnrc_ipv6_nc, gnrc_sixlowpan, gnrc_netdev2_eth, gnrc_ipv6, xbee, sixlowpan,
sc_gnrc_6ctx
2015-12-10 11:23:56 +09:00
Hauke Petersen
41979b64cd
sys: adapted to renamed THREAD FLAGS
2015-12-07 22:09:47 +01:00
Martine Lenders
5f04675403
Merge pull request #4284 from authmillenon/gnrc_ipv6/enh/addr-res-without-nd
...
gnrc_ipv6: get l2addr from NC if no ND present
2015-11-17 17:59:58 +01:00
Martine Lenders
c7ebcbbda2
gnrc_ipv6: get l2addr from NC if no ND present
2015-11-17 16:20:58 +01:00
Oleg Hahm
46dc908fcb
gnrc 6lowpan: exclude CTX if not part of the app
...
This removes dependencies to 6LoWPAN context module if an application is built without support for it.
Also, includes a missing header.
2015-11-17 12:04:11 +01:00
Cenk Gündoğan
bf3a504691
nc: ndp: sixlowpan: remove timex.h include
2015-11-09 14:55:04 +01:00
Cenk Gündoğan
b59fc825a3
netif: nc: ndp: gnrc_ipv6_netif_t::reach_time -> uint32_t
2015-11-09 14:55:01 +01:00
Cenk Gündoğan
42c5666357
Merge pull request #4186 from cgundogan/pr/ipv6/last_vtimers
...
network_layer: remove last occurences of vtimer
2015-11-02 15:42:50 +01:00
Cenk Gündoğan
47a02d9d07
ipv6: ndp: sixlowpan: remove vtimer includes
2015-11-02 15:02:08 +01:00
Cenk Gündoğan
206e027725
Merge pull request #3647 from BytesGalore/fib_source_routing
...
fib: initial source route support
2015-10-29 12:08:47 +01:00
Martine Lenders
23f8fecc04
Merge pull request #4157 from cgundogan/pr/nc/xtimer_nbr_sol_timer
...
nc: use xtimer for gnrc_ipv6_nc_t::nbr_sol_timer
2015-10-28 17:51:48 +01:00
Cenk Gündoğan
4297972054
nc: use xtimer for gnrc_ipv6_nc_t::nbr_sol_timer
2015-10-28 15:24:45 +01:00
Martine Lenders
a4533920a7
Merge pull request #4177 from authmillenon/gnrc_ipv6_netif/fix/no-l2-addr
...
gnrc_ipv6_netif: don't skip rest of config for address less l2
2015-10-28 15:16:34 +01:00
Martine Lenders
083c9442ab
gnrc_ipv6_netif: don't skip rest of config for address less l2
2015-10-28 13:40:21 +01:00
Cenk Gündoğan
a979d0c72c
netif: use xtimer for gnrc_ipv6_netif_t::rtr_adv_timer
2015-10-27 20:51:34 +01:00
Cenk Gündoğan
7490dc21a0
Merge pull request #4172 from cgundogan/pr/ndp/use_correct_timer
...
nc: ndp: add/use gnrc_ipv6_nc_t::rtr_adv_timer in gnrc_ndp_rtr_sol_handle
2015-10-27 20:43:30 +01:00
BytesGalore
6c57582107
fib: initial source route support
2015-10-27 20:20:18 +01:00
Cenk Gündoğan
b993914534
nc: ndp: add and use gnrc_ipv6_nc_t::rtr_adv_timer in gnrc_ndp_rtr_sol_handle
2015-10-27 17:15:52 +01:00
Cenk Gündoğan
d587cf9cd4
netif: use xtimer for gnrc_ipv6_netif_t::rtr_sol_timer
2015-10-26 21:03:38 +01:00
Cenk Gündoğan
2065537368
Merge pull request #4123 from cgundogan/pr/nc/xtimer_rtr_timeout
...
nc: user xtimer for gnrc_ipv6_nc_t::rtr_timeout
2015-10-26 15:46:01 +01:00
Martine Lenders
5b37e1ad0c
Merge pull request #4124 from cgundogan/pr/netif/xtimer_valid_timeout
...
netif: use xtimer for gnrc_ipv6_netif_addr_t::valid_timeout
2015-10-26 12:23:05 +01:00
Cenk Gündoğan
0258f29a5e
nc: user xtimer for gnrc_ipv6_nc_t::rtr_timeout
2015-10-26 11:27:07 +01:00
Cenk Gündoğan
40e504de65
nc: use xtimer for gnrc_ipv6_nc_t::type_timeout
2015-10-22 15:55:46 +02:00
Cenk Gündoğan
0146c1b1b9
netif: use xtimer for gnrc_ipv6_netif_addr_t::valid_timeout
2015-10-20 22:55:12 +02:00
Cenk Gündoğan
beb3321132
nc: remove unused rtr_sol_timer
2015-10-20 19:05:42 +02:00
Oleg Hahm
f2e78453af
gnrc IPv6: release correct pktsnip
2015-10-02 12:11:57 +02:00
Oleg Hahm
dbfe1c03cd
Merge pull request #3991 from authmillenon/gnrc_netapi/fix/recover_msg
...
gnrc_netapi: recover from message send errors
2015-09-30 17:08:13 +02:00
Martine Lenders
f413e9b413
Merge pull request #3987 from authmillenon/gnrc_ipv6_nc/fix/undef-iface
...
gnrc_ipv6_nc: interface in neighbor cache may be undefined but legal
2015-09-29 18:29:35 +02:00
Martine Lenders
891450d29d
gnrc_netapi: recover from message send errors
2015-09-29 16:58:08 +02:00
Martine Lenders
7861434e34
gnrc_ipv6_nc: interface in neighbor cache may be undefined but legal
2015-09-29 16:13:47 +02:00
Martine Lenders
5291f3b2bd
gnrc_ipv6_whitelist: initial import
2015-09-28 16:59:53 +02:00
Martine Lenders
a19b0d8262
gnrc_ipv6: fix multi-interface packet duplication
2015-09-26 06:09:54 +02:00
Martine Lenders
f334a9aa1b
gnrc_ipv6: remove unnecessary parameter to _send_multicast_over_iface
2015-09-26 06:09:37 +02:00
Martine Lenders
225dcaaf34
gnrc_ipv6_nc: leave UNMANAGED entries UNMANAGED
2015-09-24 21:21:25 +02:00
Oleg Hahm
63fda9e900
6lowpan: remove tentative flag for local addresses
...
There's no real need for this flag, but it causes problem during address registration.
2015-09-24 13:33:10 +02:00
Oleg Hahm
bb287ae7e8
6lowpan netif: set prefixes for 6LBR first
...
By adding a newly added prefix first, it is assured that the following router advertisement will already disseminate it via the PIO.
2015-09-24 13:15:38 +02:00
Martine Lenders
5e2b4b6b23
Merge pull request #3951 from OlegHahm/6lowpan_nd_pio_fixes
...
6lowpan nd: PIO fixes
2015-09-24 02:52:45 +02:00
Oleg Hahm
fee9ad77cb
ipv6: init addresses w/ infinite validity time
2015-09-24 02:27:42 +02:00
Oleg Hahm
0cc4f57fc0
6lowpan: do not send NAs for new MC addresses
2015-09-24 00:03:06 +02:00
Martine Lenders
771e7f40cd
gnrc_ipv6_netif: a RA source MUST be link-local
2015-09-23 18:34:47 +02:00
Oleg Hahm
171fb8e65c
IPv6 nc: missing debug parameter
2015-09-22 21:55:29 +02:00