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

56 Commits

Author SHA1 Message Date
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
363afa62ee gnrc_netif: introduce 6LN flag
This makes it dynamically configurable if an interface actually want's
to use 6Lo ND (according to RFC 6775) or not.
2019-10-20 15:38:13 +02:00
Martine Lenders
6d324bbb75 gnrc_netif: introduce is_6lo() as alias to is_6ln()
Preparation step to introduce a semantic difference between an
interface being a 6Lo interface and a 6LN according to RFC 6775 [[1]]
(i.e. performs Neighbor Discovery as defined there).

[1]: https://tools.ietf.org/html/rfc6775#section-2
2019-10-20 15:38:13 +02:00
Francisco
fde50372c3
Merge pull request #11837 from miri64/gnrc_netif/enh/inter-tx-wait
gnrc_netif: allow for wait of minimum time between sends
2019-08-09 10:53:26 +02:00
Martine Lenders
488c47cbf3 gnrc_netif: allow for wait of minimum time between sends 2019-08-09 10:21:42 +02:00
Martine S. Lenders
c3fe882cfe gnrc_netif_hdr: add setter for netif
This eases the refactoring to a pointer-based approach for network
interfaces.
2019-07-25 14:15:37 +02:00
Martine Lenders
39fe2a30e4 gnrc_netif: use l2util for some functions
The following functions can now be wrapped around the more generalized
approach:

- gnrc_netif_ipv6_iid_from_addr()
- gnrc_netif_ipv6_iid_to_addr()
- gnrc_netif_ndp_addr_len_from_l2ao()
- gnrc_netif_eui64_from_addr()
2019-03-26 21:37:20 +01:00
Martine Lenders
946b06e4f0 gnrc_netif: increase message queue size
Since the netif threads are in general a more heavy lifters than the
rest of the GNRC there queue size should be increased.
2019-03-15 12:08:43 +01:00
Martine Lenders
13030d5a35 gnrc_netif: expose message queue size configurable 2019-02-26 13:26:20 +01:00
Martine Lenders
998b9ed0d4 gnrc_netif_hdr: make in parameters const 2019-02-21 12:43:08 +01:00
Martine Lenders
985d98073f gnrc_netif_ieee802154: drop duplicate broadcast packets (optionally) 2019-02-04 16:19:48 +01:00
Martine Lenders
16e7fc8336 gnrc_netif: introduce L2 address to EUI-64 conversion 2019-01-29 21:52:53 +01: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
Martine Lenders
8f763535ac gnrc_netif: centralize S/TLLAO length to address length function
The function to infer the link-layer address length from the length of
a S/TLLAO is very dependent on the IPv6 over X specification and thus
should be grouped with the other IP over X functions.
2019-01-16 15:52:53 +01:00
Martine Lenders
465631f83c gnrc_netif: doc-group device-type based functions 2019-01-15 11:51:21 +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
06c13bdd70 gnrc_netif: remove superfluous GNRC_NETIF_FLAGS_MAC_*
They are also defined in `net/gnrc/netif/mac.h` and those are the ones
used by the current `gnrc_mac` implementations.
2018-12-18 14:47:24 +01:00
Martine Lenders
bddbe93976 gnrc_netif: remove premature doc group close
This adds `GNRC_NETIF_FLAGS_RAWMODE` to the `net_gnrc_netif_flags_t`
group.
2018-12-18 14:45:51 +01:00
Martine Lenders
d37bb41b03 gnrc_netif: add config macros to config doc group 2018-12-14 16:26:56 +01:00
Hauke Petersen
bdc1b89c93
Merge pull request #10520 from miri64/gnrc_netif_hdr/enh/conv-iid-getter
gnrc_netif_hdr: provide wrappers for gnrc_netif_ipv6_iid_from_addr()
2018-12-07 14:37:07 +01:00
Martine Lenders
4d4e96f9f9 gnrc_netif_hdr: provide wrappers for gnrc_netif_ipv6_iid_from_addr()
For convenience ;-).
2018-12-07 12:59:37 +01:00
Hauke Petersen
fe7fba7674 gnrc/netif/internal: fix copy-paste error
the names for iid_from_addr and iid_to_addr functions in the
else-block were switched around, so this fixes that
2018-12-06 17:16:23 +01:00
Hauke Petersen
92fcb4de6a
Merge pull request #10513 from miri64/gnrc_netif/enh/iid-conversion
gnrc_netif: add general IID to/from l2addr conversion functions
2018-12-06 15:57:06 +01:00
Martine Lenders
5ca30b9b03 gnrc_netif: add general IID to/from l2addr conversion functions
They are required to make GNRC's 6Lo IPHC implementation ready for
hardware addresses other than IEEE 802.15.4's.
2018-12-06 14:41:30 +01:00
Hauke Petersen
6551d8aac0
Merge pull request #10500 from miri64/gnrc_netif_hdr/enh/conv-netif-getter
gnrc_netif_hdr: provide convenience function to get netif pointer from netif header.
2018-12-05 14:26:02 +01:00
Martine Lenders
f95cabe8df gnrc_netif_hdr: add convenience function to get netif pointer 2018-12-05 14:08:32 +01:00
Martine Lenders
959087f207 gnrc_netif_hdr: make input parameters constant 2018-11-30 10:01:52 +01: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
Joakim Nohlgård
29e4a1ba3c gnrc_netif: Introduce GNRC_NETIF_HDR_FLAGS_MORE_DATA 2018-08-13 09:25:32 +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
6e31ce7c74 gnrc_netif: increase number of maximum IPv6 groups 2018-06-07 10:14:52 +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
1bc9a592c4 gnrc_netif: improve doc on GNRC_NETIF_IPV6_ADDRS_NUMOF 2018-05-29 19:30:30 +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
Marian Buschsieweke
4b8881abb4
gnrc/netif/hdr.h: Optimized structure layout
Reordered struct members to not waste memory due to padding.

Before:
``` C
typedef struct {
    uint8_t src_l2addr_len;
    uint8_t dst_l2addr_len;
    kernel_pid_t if_pid;    // <-- 16 bit, is aligned to 16 bit
    uint8_t flags;
    uint8_t __padding_byte; // <-- Inserted to fulfill padding requirements
    int16_t rssi;           // <-- 16 bit, is NOT aligned to 16 bit
    uint8_t lqi;
    uint8_t __padding_byte2;// <-- Inserted to fulfill padding requirements
} gnrc_netif_hdr_t;
```

Now:
``` C
typedef struct {
    uint8_t src_l2addr_len;
    uint8_t dst_l2addr_len;
    kernel_pid_t if_pid;    // <-- 16 bit, is aligned to 16 bit
    uint8_t flags;
    uint8_t lqi;
    int16_t rssi;           // <-- 16 bit, is aligned to 16 bit
} gnrc_netif_hdr_t;
```

When build for the `bluepill` board, the new layout reduces the size by 2 bytes.
2018-05-14 14:01:29 +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
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
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
16374d0588
gnrc_netif: provide helper functions for NETOPT_IPV6_(ADDR|GROUP)
Since especially the setter for `NETOPT_IPV6_ADDR` and the getter for
both `NETOPT_IPV6_ADDR` and `NETOPT_IPV6_GROUP` isn't that obvious, I
decided to provided a helper function for those `gnrc_netapi_get/_set`
operations.
2017-12-18 17:06:55 +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
zhuoshuguo
ea5aeeb10f gomach: a robust traffic adaptive multichannel MAC for IoT. 2017-11-30 18:51:49 +01:00
Martine Lenders
a63bb6d47b
Merge pull request #6895 from bergzand/drivers/radio-rssi-conv
drivers/radios Apply register to rssi dBm conversion to all radios
2017-11-27 23:52:15 +01:00
fa64e93313 netdev: Represent RSSI as int16_t 2017-11-27 21:49:15 +01:00
Martine Lenders
31b1ceb440
gnrc_netif2: rename to gnrc_netif 2017-11-17 10:41:54 +01:00
0fcc7d3834 cleanup: apply headerguard script output 2017-05-24 17:54:02 +02:00
Oleg Hahm
d523c33015 doc: gnrc: fix doxygen and add missing doc 2017-03-10 14:56:28 +01:00