A if `netdev_driver_t::confirm_send()` is provided, it provides the
new netdev API. However, detecting the API at runtime and handling
both API styles comes at a cost. This can be optimized in case only
new or only old style netdevs are in use.
To do so, this adds the pseudo modules `netdev_legacy_api` and
`netdev_new_api`. As right now no netdev actually implements the new
API, all netdevs pull in `netdev_legacy_api`. If `netdev_legacy_api` is
in used but `netdev_new_api` is not, we can safely assume at compile
time that only legacy netdevs are in use. Similar, if only
`netdev_new_api` is used, only support for the new API is needed. Only
when both are in use, run time checks are needed.
This provides two helper function to check for a netif if the
corresponding netdev implements the old or the new API. (With one
being the inverse of the other.) They are suitable for constant folding
when only new or only legacy devices are in use. Consequently, dead
branches should be eliminated by the optimizer.
The expandable GPIO API requires the comparison of structured GPIO types. This means that inline functions must be used instead of direct comparisons. For the migration process, drivers must first be changed so that they use the inline comparison functions.
If usinng an arduino xbee shield then CTS pin will be wired to the
ICSP connector RESET pin.
If also used on an arduino-% board then if xbee is busy sending or
receiving data it will assert CTS and this will trigger a reset on
the board.
To avoid this disable CTS functionality on start up unless hardware
flow control is explicitly requested.
Since the API doc doesn't specify what to do with 0
len writings into UART, we cannot assume that is
safe to do it, so this commit prevents it by checking
the length prior to the `uart_write()` operation.
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.
Fixes#6973.
The current 6Lo-ND implementation relies on `NETOPT_PROTO` being
returned for an IEEE 802.15.4 device. This isn't ideal, since it mixes
GNRC into device code (and the next iteration of NDP will do it
better), but for now this is the only way to fix#6973.
add encryption to drivers
fix new line at the end of file
add shell command for enable encryption and set encryption key on a given device
modify _net_if_set_encrypt_key to support any key length
modify _net_if_set_encrypt_key to support any key length of the key
modify blank line
fix ace before tab in indent
fix ace before tab indent
fix ace before tab indent an error
fix trailing white space
drivers/xbee: encryption support
add encryption to drivers
fix new line at the end of file
add shell command for enable encryption and set encryption key on a given device
modify _net_if_set_encrypt_key to support any key length
modify _net_if_set_encrypt_key to support any key length of the key
modify blank line
fix ace before tab in indent
fix ace before tab indent
fix ace before tab indent an error
fix trailing white space
modify drivers/xbee/xbee.c
fix white spaces on xbee.c
Update xbee encryption driver
white line at end xbee.h
fix error
fix sc_netif.c
fix rebase master interactive
drivers/xbee: encryption support
add encryption to drivers
fix new line at the end of file
add shell command for enable encryption and set encryption key on a given device
modify _net_if_set_encrypt_key to support any key length
modify _net_if_set_encrypt_key to support any key length of the key
modify blank line
fix ace before tab in indent
fix ace before tab indent
fix ace before tab indent an error
fix trailing white space
drivers/xbee: encryption support
add encryption to drivers
fix new line at the end of file
add shell command for enable encryption and set encryption key on a given device
modify _net_if_set_encrypt_key to support any key length
modify _net_if_set_encrypt_key to support any key length of the key
modify blank line
fix ace before tab in indent
fix ace before tab indent
fix ace before tab indent an error
fix trailing white space
modify drivers/xbee/xbee.c
fix white spaces on xbee.c
Update xbee encryption driver
white line at end xbee.h
fix error
fix rebase conflict 4
fix same missing in patches changes
fix ascii to hex index parser
fix syntax rules
fix syntax issue 2
add _netopt_strmap NETOPT_ENCRYPTION e NETOPT_ENCRYPTION_KEY
fix trailng white spaces
When debugging multihop wireless network, it is useful to emulate non-transitive
network, that is, node A can communicate with B and B can communicate with C,
but A cannot communicate with C directly.
If `XBEE_DENIED_ADDRESSES`, which is an array of XBee long addresses, is
defined, packets from those addresses are dropped silently.
Example:
CFLAGS += "-DXBEE_DENIED_ADDRESSES={ 0x02, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x02, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 }"
`_set_addr` is called from `xbee_init` with lower bytes of the long address.
If `_set_addr` destructs the given address, the long address is also destructed.
XBee sends short address even for `API_ID_TX_LONG_ADDR` if short address is
enabled. This results in check sum error of ICMPv6 since the IP address is
computed based on long address on the sender side while it is computed based on
short address on the receiver side.