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

74 Commits

Author SHA1 Message Date
Martine Lenders
4b82a56c89 gnrc_netif: introduce common init function 2019-11-06 18:45:15 +01:00
Francisco
0364c39694
Merge pull request #12408 from miri64/gnrc_netif/fix/src-addr-selection
gnrc_netif: only use prefix matching as tie-breaker in source selection
2019-10-24 17:14:17 +02:00
Martine S. Lenders
e9d75f5655 gnrc_netif: remove filter parameter from _match_to_idx()
`_match_to_idx()` was removed from source address selection (which was
the only one setting the filter parameter to a non-NULL value), so it
is the parameter is not needed anymore.
2019-10-24 16:04:41 +02:00
Martine S. Lenders
e787f6b60d gnrc_netif: only use prefix matching as tie-breaker in source selection
When source address selection is done, both RFC and comments in the code
state, that a longest prefix match should *only* be used as a
tie-breaker between more than one viable candidate. If there is only one
address, there is

a) no need for a tie-breaker
b) in the case of either the destination address or the single remaining
   address being ULAs ([which are considered to be of global scope]
   [RFC4193]) possibly not matching, as `fd00::/7` and e.g. `2001::/8`
   do not have a common prefix.

(b) in fact causes the match function to return -1, causing the source
address selection to return -1, causing the outer function to return the
first address it found (which most often is the link-local address),
causing e.g. a ping to an ULA to fail, even is there is a global
address.

[RFC4193]: https://tools.ietf.org/html/rfc4193
2019-10-24 16:04:41 +02:00
Martine Lenders
88090bc0f6 gnrc_netif: warn when not joining solicited-nodes from non-6LN netif
Similar as with #12513, when the NIB is compiled in 6LN mode (but not
6LR mode), the address-resolution state-machine (ARSM) functionality is
disabled in favor of the more simpler address resolution proposed in RFC
6775.

However, if a non-6LN interface is also compiled in (without making it
a router or border router) it will never join the solicited-nodes
multicast address of addresses added to it, resulting in address
resolution to that interface to fail.

If the interface is not a 6LN (which in case 6LN mode is disabled is
always false), a warning is now printed, encouraging the user to
activate the ARSM functionality if needed.
2019-10-22 22:14:03 +02:00
Martine S. Lenders
2458a612b6 gnrc_netif: reduce code duplication 2019-10-21 16:09:37 +02:00
Martine S. Lenders
e96faca739 gnrc_netif: add code comments on source candidate set selection 2019-10-21 16:09:37 +02:00
f8de22a985 gnrc/netif: _match_to_idx(): don't treat link local differently
Cherry-picked from 811c1ee70e (#12404)
2019-10-21 16:09:37 +02:00
Martine Lenders
6ad62b01a4 gnrc_netif: distinct is_6lo() and is_6ln()
The functions now are semantic distinct:

- gnrc_netif_is_6lo(): the interface is a 6Lo interface
- gnrc_netif_is_6ln(): the interface is using Neighbor Discovery
  according to RFC 6775
2019-10-20 15:38:14 +02:00
Martine Lenders
8bcce5615e gnrc_netif: use is_6lo() instead of is_6ln() 2019-10-20 15:38:13 +02:00
Jose Alamos
8fd0c2b60f gnrc_netif: adapt to new netif_t abstraction 2019-10-11 10:59:14 +02:00
Martine S. Lenders
ada7c0b7db gnrc_netif: avoid deprecated addresses, don't prefer them! 2019-10-09 15:18:14 +02:00
Martine Lenders
488c47cbf3 gnrc_netif: allow for wait of minimum time between sends 2019-08-09 10:21:42 +02:00
Martine Lenders
05bca5b2cf gnrc_netif: fix DEBUG output on error
`res` is an integer that is always negative in the given case, so using
`%u` here might be a little bit confusing.
2019-03-26 18:23:56 +01:00
Martine Lenders
bcb6b921d3
Merge pull request #11255 from aabadie/pr/gnrc_netif_nrfmin_fix
net/gnrc_netif/nrfmin: put NETOPT_PROTO assert at the right place
2019-03-24 15:01:50 +01:00
5fa2528185
net/gnrc_netif/nrfmin: put NETOPT assert at the right place
NETOPT depends on GNRC_SIXLOWPAN and should be moved inside the corresponding preprocessor conditional code
2019-03-24 14:34:12 +01:00
Jose Alamos
83ba971412
gnrc_netif: add NETDEV_TYPE_LORA to L2ADDR check 2019-03-24 11:10:41 +01:00
Martine Lenders
7d8f6abd45 gnrc_netif: check all required options on initialization
With `DEVELHELP` activated all required options required by GNRC are
now checked at interface initialization, so that developers of new
link-layer protocols or device drivers notice as soon as possible that
something is missing.
2019-02-26 16:45:21 +01:00
Martine Lenders
13030d5a35 gnrc_netif: expose message queue size configurable 2019-02-26 13:26:20 +01:00
Marian Buschsieweke
4672368d5a
sys/net: NETOPT_MAX_{PACKET_SIZE -> PDU_SIZE}
Updated code to use NETOPT_MAX_PDU_SIZE instead of deprecated
NETOPT_MAX_PACKET_SIZE.
2019-02-18 20:15:08 +01:00
smlng
6d0384f068 netstats: collect layer 2 netstats in gnrc_netif
This the first step in moving the collection of layer 2 netstats from
the low level driver to a central location, ie. gnrc_netif, to avoid
code duplication.
2019-02-01 10:35:03 +02:00
Martine Lenders
55b9757044 gnrc_netif: centralize function to init IPv6 MTU 2019-01-16 15:52:54 +01:00
Martine Lenders
ea9bbd72b8 gnrc_netif: centralize function to get l2addr NETOPT 2019-01-16 15:52:54 +01:00
Cenk Gündoğan
6a4c764c95
Merge pull request #10569 from miri64/gnrc_netif/enh/rm-get-NETOPT_IPV6_IID
gnrc_netif: make _get_iid() just wrapper around _iid_from_addr()
2019-01-14 14:09:34 +01:00
Martine Lenders
7ae90564d9 gnrc_netif: make _get_iid() just wrapper around _iid_from_addr()
This way the IID generation gets much simplified and code duplication
is avoided since it removes GNRC's requirement for NETOPT_IPV6_IID.
2019-01-14 13:42:58 +01:00
Martine Lenders
481f742c71 gnrc_netif: interface configuration for 6LoENC 2019-01-04 13:32:24 +01:00
b77c802f9b
Merge pull request #10666 from miri64/netopt/new/6lo
netopt: provide option to (de-)activate 6Lo
2019-01-03 18:50:31 +01:00
Martine Lenders
45b9dd6f50 gnrc_netif: implement get NETOPT_6LO 2019-01-03 16:21:52 +01:00
Timo Rothenpieler
814e4ecbbe gnrc_netif: ESP-NOW talks 6Lo now 2018-12-29 13:15:44 +01:00
Martine Lenders
a44f7f7b38 gnrc_netif: use general IID conversion function for netif-based 2018-12-06 14:41:30 +01:00
Martine Lenders
6547b2185b gnrc_netif: remove ESP-Now related code-duplication 2018-11-29 15:32:09 +01:00
Martine Lenders
03b91cbcb8 esp_now: use NETDEV_TYPE_ESP_NOW as device type 2018-11-29 13:35:20 +01:00
Hauke Petersen
ace5db70e8 net/gnrc_netif: opt of _ipv6_get_iid() 2018-11-22 15:30:11 +01:00
Gaëtan Harter
c5deac4865
Merge pull request #10023 from miri64/gnrc_netif/fix/no-addr-but-addr-len
gnrc_netif: Fix l2addr_len > 0, but no l2addr edge-case
2018-10-25 14:31:32 +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
Peter Kietzmann
ed24d3622a
Merge pull request #9621 from bergzand/pr/netif/use_fmt
gnrc_netif: Use fmt for bytes to hex string
2018-10-04 14:34:37 +02:00
0d71c1ccf7
gnrc_netif: Use fmt for bytes to hex string 2018-10-04 13:34:18 +02:00
3c032e5688
gnrc_netif: add rawmode flag
Adds a gnrc_netif specific rawmode flag to indicate that the netdev
device is configured in raw mode. This flag is kept in sync with a
possible flag in the netdev device and should only be modified via the
setter call.
2018-10-03 20:59:03 +02:00
Martine Lenders
05aa8ab66b gnrc_netif: assert that l2addr_len is 0 without address
If the device provides an address length, but no address it is
obviously faulty.
2018-09-25 18:45:32 +02:00
05b6af466c sys: add missig <string.h> includes 2018-09-20 23:47:40 +02:00
Joakim Nohlgård
6d6a6efac7 gnrc_netif: Check return value of netdev init during thread start 2018-08-24 12:11:12 +02:00
smlng
d4e8c57621 gnrc_netif: generalise address search functions
Reduce code duplication by combining internal helper functions
    that either loop over interface addresses or multicast groups.
2018-08-06 16:28:48 +02:00
smlng
7cb41ba829 gnrc_netif: cleanup debug output
Correct typos and wording in debug output.
2018-08-06 16:28:48 +02:00
smlng
8e3953cd6c gnrc_netif: cleanup address matching
Cleanup of internal helper functions for IPv6 address matching.
2018-08-06 16:28:48 +02:00
30e683ccfe
gnrc_netif: reapply event flags on device reset
On a NETOPT_STATE set call with NETOPT_STATE_RESET the netdev device
resets the callback event flags. This requires that after the netdev
device resets, the network stack also reapplies these callback event
flags
2018-07-19 14:51:14 +02:00
Martine Lenders
8d47210228 gnrc_netif: don't spam user if dev doesn't support NETOPT_RX/TX_END_IRQ 2018-07-09 17:23:31 +02:00
Joakim Nohlgård
bbf4f1e453 gnrc_netif: Enable RX and TX complete events after netdev init 2018-06-29 21:53:23 +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
Martine Lenders
ea64d39e21 gnrc_netif: fail IPv6 address addition if no space for solicited nodes 2018-05-29 19:30:30 +02:00