20#ifndef NET_NETDEV_IEEE802154_H
21#define NET_NETDEV_IEEE802154_H
25#if IS_USED(MODULE_IEEE802154_SECURITY)
46#define NETDEV_IEEE802154_SEND_MASK (0x0028)
47#define NETDEV_IEEE802154_RAW (0x0002)
51#define NETDEV_IEEE802154_SRC_MODE_LONG (0x0004)
55#define NETDEV_IEEE802154_SECURITY_EN (IEEE802154_FCF_SECURITY_EN)
60#define NETDEV_IEEE802154_ACK_REQ (IEEE802154_FCF_ACK_REQ)
65#define NETDEV_IEEE802154_FRAME_PEND (IEEE802154_FCF_FRAME_PEND)
74#define NETDEV_RX_IEEE802154_INFO_FLAG_TIMESTAMP (0x01)
129#if IS_USED(MODULE_IEEE802154_SECURITY) || defined(DOXYGEN)
142#if IS_USED(MODULE_NETDEV_IEEE802154_RX_TIMESTAMP)
160#if IS_USED(MODULE_NETDEV_IEEE802154_RX_TIMESTAMP)
161 dest->timestamp = timestamp;
183#if IS_USED(MODULE_NETDEV_IEEE802154_RX_TIMESTAMP)
185 *dest = info->timestamp;
Definitions low-level network driver interface.
EUI-48 and EUI-64 address provider.
struct netdev_ieee802154_rx_info netdev_ieee802154_rx_info_t
Received packet status information for IEEE 802.15.4 radios.
netdev_ieee802154_cca_mode_t
Option parameter to be used with NETOPT_CCA_MODE to set the mode of the clear channel assessment (CCA...
int netdev_ieee802154_dst_filter(netdev_ieee802154_t *dev, const uint8_t *mhr)
This function compares destination address and pan id with addresses and pan id of the device.
#define NETDEV_RX_IEEE802154_INFO_FLAG_TIMESTAMP
Timestamp valid.
static void netdev_ieee802154_rx_info_set_timestamp(netdev_ieee802154_rx_info_t *dest, uint64_t timestamp)
Write the given timestamp to the given RX info struct.
int netdev_ieee802154_get(netdev_ieee802154_t *dev, netopt_t opt, void *value, size_t max_len)
Fallback function for netdev IEEE 802.15.4 devices' _get function.
static int netdev_ieee802154_rx_info_get_timestamp(const netdev_ieee802154_rx_info_t *info, uint64_t *dest)
Get the timestamp to from the RX info.
void netdev_ieee802154_reset(netdev_ieee802154_t *dev)
Reset function for ieee802154 common fields.
static void netdev_ieee802154_setup(netdev_ieee802154_t *dev)
Configure the hardware address of a IEEE 802.15.4 devices.
int netdev_ieee802154_set(netdev_ieee802154_t *dev, netopt_t opt, const void *value, size_t value_len)
Fallback function for netdev IEEE 802.15.4 devices' _set function.
@ NETDEV_IEEE802154_CCA_MODE_4
ALOHA.
@ NETDEV_IEEE802154_CCA_MODE_2
Carrier sense only.
@ NETDEV_IEEE802154_CCA_MODE_1
Energy above threshold.
@ NETDEV_IEEE802154_CCA_MODE_6
UWB preamble sense based on the packet with the multiplexed preamble.
@ NETDEV_IEEE802154_CCA_MODE_5
UWB preamble sense based on the SHR of a frame.
@ NETDEV_IEEE802154_CCA_MODE_3
Carrier sense with energy above threshold.
static void eui_short_from_eui64(eui64_t *addr_long, network_uint16_t *addr_short)
Get a short unicast address from an EUI-64.
void netdev_eui64_get(netdev_t *netdev, eui64_t *addr)
Generates an EUI-64 address for the netdev interface.
gnrc_nettype_t
Definition of protocol types in the network stack.
netopt_t
Global list of configuration options available throughout the network stack, e.g.
IEEE 802.15.4 security interface.
Definition of global configuration options.
Protocol type definitions.
Struct to hold IEEE 802.15.4 security information.
Received packet status information for IEEE 802.15.4 radios.
uint8_t lqi
LQI of a received frame.
int16_t rssi
RSSI of a received frame in dBm.
Extended structure to hold IEEE 802.15.4 driver state.
uint8_t long_addr[IEEE802154_LONG_ADDRESS_LEN]
Long address in network byte order.
uint8_t seq
sequence number
uint16_t pan
IEEE 802.15.4 specific fields.
uint8_t short_addr[IEEE802154_SHORT_ADDRESS_LEN]
Short address in network byte order.
ieee802154_sec_context_t sec_ctx
security context
netdev_t netdev
netdev_t base class
int16_t txpower
tx power in dBm
uint16_t flags
flags as defined above
Structure to hold driver state.
IEEE 802.15.4 header definitions.
A 16 bit integer in big endian aka network byte order.
Data type to represent an EUI-64.