radio.h
1 /*
2  * Copyright (C) 2020 HAW Hamburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for more
6  * details.
7  */
8 
22 #ifndef NET_IEEE802154_RADIO_H
23 #define NET_IEEE802154_RADIO_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include <stdbool.h>
30 #include "iolist.h"
31 #include "sys/uio.h"
32 #include "byteorder.h"
33 #include "net/eui64.h"
34 
39 
45 typedef enum {
122 
126 typedef enum {
160 
164 typedef enum {
178 
185 typedef enum {
192 
201 
220 
237 
241 typedef struct {
242  uint8_t min;
243  uint8_t max;
245 
249 typedef struct {
256  uint8_t rssi;
257  uint8_t lqi;
259 
263 typedef struct {
265  int8_t retrans;
267 
272 
279 typedef void (*ieee802154_cb_t)(ieee802154_dev_t *dev,
280  ieee802154_trx_ev_t status);
281 
293  void *ctx;
298 };
299 
303 typedef enum {
321 
325 typedef enum {
355 
359 typedef struct {
360  uint16_t channel;
361  uint8_t page;
362  int8_t pow;
364 
381  int (*write)(ieee802154_dev_t *dev, const iolist_t *psdu);
382 
398 
424 
438  int (*len)(ieee802154_dev_t *dev);
439 
461  int (*read)(ieee802154_dev_t *dev, void *buf, size_t size, ieee802154_rx_info_t *info);
475  int (*off)(ieee802154_dev_t *dev);
476 
491 
518 
536  ieee802154_trx_state_t state);
537 
552 
570 
588 
599 
611  int (*set_cca_threshold)(ieee802154_dev_t *dev, int8_t threshold);
612 
628 
649 
666  const network_uint16_t *short_addr,
667  const eui64_t *ext_addr,
668  const uint16_t *pan_id);
669 
684  int (*set_frame_retrans)(ieee802154_dev_t *dev, uint8_t retrans);
685 
705  int8_t retries);
706 
717 };
718 
727 static inline int ieee802154_radio_write(ieee802154_dev_t *dev, const iolist_t *psdu)
728 {
729  return dev->driver->write(dev, psdu);
730 }
731 
740 {
741  return dev->driver->request_transmit(dev);
742 }
743 
753  ieee802154_tx_info_t *info)
754 {
755  return dev->driver->confirm_transmit(dev, info);
756 }
757 
765 static inline int ieee802154_radio_len(ieee802154_dev_t *dev)
766 {
767  return dev->driver->len(dev);
768 }
769 
782  void *buf,
783  size_t size,
784  ieee802154_rx_info_t *info)
785 {
786  return dev->driver->read(dev, buf, size, info);
787 }
788 
798  int8_t threshold)
799 {
800  return dev->driver->set_cca_threshold(dev, threshold);
801 }
802 
813 {
814  return dev->driver->set_cca_mode(dev, mode);
815 }
816 
828  const ieee802154_phy_conf_t *conf)
829 {
830  return dev->driver->config_phy(dev, conf);
831 }
832 
842 static inline int ieee802154_radio_off(ieee802154_dev_t *dev)
843 {
844  return dev->driver->off(dev);
845 }
846 
862  const network_uint16_t *short_addr,
863  const eui64_t *ext_addr,
864  const uint16_t *pan_id)
865 {
866  return dev->driver->set_hw_addr_filter(dev, short_addr, ext_addr, pan_id);
867 }
868 
882  uint8_t retrans)
883 {
884  return dev->driver->set_frame_retrans(dev, retrans);
885 }
886 
902  const ieee802154_csma_be_t *bd,
903  int8_t retries)
904 {
905  return dev->driver->set_csma_params(dev, bd, retries);
906 }
907 
916 {
917  return dev->driver->request_on(dev);
918 }
919 
928 {
929  return dev->driver->confirm_on(dev);
930 }
931 
942 {
943  return dev->driver->request_set_trx_state(dev, state);
944 }
945 
954 {
955  return dev->driver->confirm_set_trx_state(dev);
956 }
957 
966 {
967  return dev->driver->request_cca(dev);
968 }
969 
978 {
979  return dev->driver->confirm_cca(dev);
980 }
981 
994 {
995  return dev->driver->get_cap(dev, IEEE802154_CAP_IRQ_ACK_TIMEOUT);
996 }
997 
1010 {
1011  return dev->driver->get_cap(dev, IEEE802154_CAP_FRAME_RETRANS);
1012 }
1013 
1026 {
1027  return dev->driver->get_cap(dev, IEEE802154_CAP_AUTO_CSMA);
1028 }
1029 
1042 {
1043  return dev->driver->get_cap(dev, IEEE802154_CAP_SUB_GHZ);
1044 }
1045 
1058 {
1059  return dev->driver->get_cap(dev, IEEE802154_CAP_24_GHZ);
1060 }
1061 
1074 {
1075  return dev->driver->get_cap(dev, IEEE802154_CAP_IRQ_TX_DONE);
1076 }
1077 
1090 {
1091  return dev->driver->get_cap(dev, IEEE802154_CAP_IRQ_RX_START);
1092 }
1093 
1106 {
1107  return dev->driver->get_cap(dev, IEEE802154_CAP_IRQ_TX_START);
1108 }
1109 
1122 {
1123  return dev->driver->get_cap(dev, IEEE802154_CAP_IRQ_CCA_DONE);
1124 }
1125 
1139  ieee802154_dev_t *dev)
1140 {
1142 }
1143 
1153  ieee802154_rx_mode_t mode)
1154 {
1155  return dev->driver->set_rx_mode(dev, mode);
1156 }
1157 
1158 #ifdef __cplusplus
1159 }
1160 #endif
1161 
1162 #endif /* NET_IEEE802154_RADIO_H */
1163 
ieee802154_phy_conf_t
Holder of the PHY configuration.
Definition: radio.h:359
ieee802154_rx_info_t::rssi
uint8_t rssi
RSSI of the received frame.
Definition: radio.h:256
IEEE802154_CAP_FRAME_RETRANS_INFO
@ IEEE802154_CAP_FRAME_RETRANS_INFO
the device provides the number of retransmissions
Definition: radio.h:116
ieee802154_radio_set_rx_mode
static int ieee802154_radio_set_rx_mode(ieee802154_dev_t *dev, ieee802154_rx_mode_t mode)
Shortcut to ieee802154_radio_ops::set_rx_mode.
Definition: radio.h:1152
ieee802154_radio_has_frame_retrans_info
static bool ieee802154_radio_has_frame_retrans_info(ieee802154_dev_t *dev)
Check if the device reports the number of retransmissions of the last TX procedure.
Definition: radio.h:1138
IEEE802154_CCA_MODE_ED_THRESH_OR_CS
@ IEEE802154_CCA_MODE_ED_THRESH_OR_CS
CCA using third mode (energy detection OR carrier sensing)
Definition: radio.h:319
ieee802154_radio_ops::off
int(* off)(ieee802154_dev_t *dev)
Turn off the device.
Definition: radio.h:475
IEEE802154_CAP_IRQ_CCA_DONE
@ IEEE802154_CAP_IRQ_CCA_DONE
the device reports the end of the CCA procedure
Definition: radio.h:110
ieee802154_radio_ops::set_cca_mode
int(* set_cca_mode)(ieee802154_dev_t *dev, ieee802154_cca_mode_t mode)
Set CCA mode.
Definition: radio.h:627
ieee802154_dev::ctx
void * ctx
pointer to the context of the device
Definition: radio.h:293
IEEE802154_CCA_MODE_ED_THRESHOLD
@ IEEE802154_CCA_MODE_ED_THRESHOLD
CCA using first mode (energy detection)
Definition: radio.h:307
ieee802154_tx_info_t::retrans
int8_t retrans
number of frame retransmissions of the last TX
Definition: radio.h:265
IEEE802154_RX_AACK_DISABLED
@ IEEE802154_RX_AACK_DISABLED
Auto ACK is disabled.
Definition: radio.h:329
ieee802154_radio_ops::set_cca_threshold
int(* set_cca_threshold)(ieee802154_dev_t *dev, int8_t threshold)
Set the threshold for the Energy Detection (first mode of CCA)
Definition: radio.h:611
ieee802154_radio_ops::confirm_cca
int(* confirm_cca)(ieee802154_dev_t *dev)
Confirmation function for ieee802154_radio_ops::request_cca.
Definition: radio.h:587
ieee802154_radio_has_auto_csma
static bool ieee802154_radio_has_auto_csma(ieee802154_dev_t *dev)
Check if the device supports Auto CSMA-CA for transmissions.
Definition: radio.h:1025
ieee802154_radio_confirm_transmit
static int ieee802154_radio_confirm_transmit(ieee802154_dev_t *dev, ieee802154_tx_info_t *info)
Shortcut to ieee802154_radio_ops::confirm_transmit.
Definition: radio.h:752
byteorder.h
Functions to work with different byte orders.
TX_STATUS_FRAME_PENDING
@ TX_STATUS_FRAME_PENDING
the transceiver received a valid ACK with the frame pending bit
Definition: radio.h:147
be_uint16_t
A 16 bit integer in big endian aka network byte order.
Definition: byteorder.h:77
TX_STATUS_MEDIUM_BUSY
@ TX_STATUS_MEDIUM_BUSY
the CSMA-CA algorithm or CCA failed to measure a clear channel
Definition: radio.h:158
ieee802154_radio_ops::request_on
int(* request_on)(ieee802154_dev_t *dev)
Request to turn on the device.
Definition: radio.h:490
ieee802154_rx_info_t::lqi
uint8_t lqi
LQI of the received frame.
Definition: radio.h:257
IEEE802154_CAP_IRQ_ACK_TIMEOUT
@ IEEE802154_CAP_IRQ_ACK_TIMEOUT
the device support ACK timeout interrupt
Definition: radio.h:84
ieee802154_radio_ops::confirm_transmit
int(* confirm_transmit)(ieee802154_dev_t *dev, ieee802154_tx_info_t *info)
Confirmation function for ieee802154_radio_ops::request_transmit.
Definition: radio.h:423
TX_STATUS_NO_ACK
@ TX_STATUS_NO_ACK
the transceiver ran out of retransmission
Definition: radio.h:154
ieee802154_radio_len
static int ieee802154_radio_len(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::len.
Definition: radio.h:765
ieee802154_radio_request_cca
static int ieee802154_radio_request_cca(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::request_cca.
Definition: radio.h:965
ieee802154_rx_info_t
RX information associated to a frame.
Definition: radio.h:249
ieee802154_radio_has_irq_rx_start
static bool ieee802154_radio_has_irq_rx_start(ieee802154_dev_t *dev)
Check if the device supports RX start interrupt.
Definition: radio.h:1089
IEEE802154_RX_AACK_ENABLED
@ IEEE802154_RX_AACK_ENABLED
Auto ACK is enabled.
Definition: radio.h:333
ieee802154_phy_conf_t::channel
uint16_t channel
IEEE802.15.4 channel number.
Definition: radio.h:360
ieee802154_radio_config_phy
static int ieee802154_radio_config_phy(ieee802154_dev_t *dev, const ieee802154_phy_conf_t *conf)
Shortcut to ieee802154_radio_ops::config_phy.
Definition: radio.h:827
ieee802154_radio_set_hw_addr_filter
static int ieee802154_radio_set_hw_addr_filter(ieee802154_dev_t *dev, const network_uint16_t *short_addr, const eui64_t *ext_addr, const uint16_t *pan_id)
Shortcut to ieee802154_radio_ops::set_hw_addr_filter.
Definition: radio.h:861
ieee802154_radio_confirm_cca
static int ieee802154_radio_confirm_cca(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::confirm_cca.
Definition: radio.h:977
ieee802154_radio_has_irq_ack_timeout
static bool ieee802154_radio_has_irq_ack_timeout(ieee802154_dev_t *dev)
Check if the device supports ACK timeout.
Definition: radio.h:993
ieee802154_radio_ops::config_phy
int(* config_phy)(ieee802154_dev_t *dev, const ieee802154_phy_conf_t *conf)
Set IEEE802.15.4 PHY configuration (channel, TX power)
Definition: radio.h:648
IEEE802154_CAP_24_GHZ
@ IEEE802154_CAP_24_GHZ
the device supports the IEEE802.15.4 2.4 GHz band
Definition: radio.h:90
ieee802154_radio_ops::confirm_set_trx_state
int(* confirm_set_trx_state)(ieee802154_dev_t *dev)
Confirmation function for ieee802154_radio_ops::request_set_trx_state.
Definition: radio.h:551
IEEE802154_CCA_MODE_ED_THRESH_AND_CS
@ IEEE802154_CCA_MODE_ED_THRESH_AND_CS
CCA using third mode (energy detection AND carrier sensing)
Definition: radio.h:315
iolist.h
iolist scatter / gather IO
ieee802154_radio_ops::request_set_trx_state
int(* request_set_trx_state)(ieee802154_dev_t *dev, ieee802154_trx_state_t state)
Request a PHY state change.
Definition: radio.h:535
ieee802154_radio_ops::confirm_on
int(* confirm_on)(ieee802154_dev_t *dev)
Confirmation function for ieee802154_radio_ops::request_on.
Definition: radio.h:517
ieee802154_csma_be_t
CSMA-CA exponential backoff parameters.
Definition: radio.h:241
ieee802154_tx_info_t::status
ieee802154_tx_status_t status
status of the last transmission
Definition: radio.h:264
IEEE802154_RADIO_CONFIRM_CCA
@ IEEE802154_RADIO_CONFIRM_CCA
the CCA procedure finished
Definition: radio.h:235
ieee802154_radio_request_set_trx_state
static int ieee802154_radio_request_set_trx_state(ieee802154_dev_t *dev, ieee802154_trx_state_t state)
Shortcut to ieee802154_radio_ops::request_set_trx_state.
Definition: radio.h:940
IEEE802154_RX_AACK_FRAME_PENDING
@ IEEE802154_RX_AACK_FRAME_PENDING
Auto ACK is enabled and frame pending bit set in the next ACK frame.
Definition: radio.h:337
ieee802154_trx_state_t
ieee802154_trx_state_t
IEEE802.15.4 transceiver states (not to confuse with device states)
Definition: radio.h:164
ieee802154_radio_ops::read
int(* read)(ieee802154_dev_t *dev, void *buf, size_t size, ieee802154_rx_info_t *info)
Read a frame from the internal framebuffer.
Definition: radio.h:461
ieee802154_radio_confirm_on
static int ieee802154_radio_confirm_on(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::confirm_on.
Definition: radio.h:927
ieee802154_tx_info_t
TX information of the last transmitted frame.
Definition: radio.h:263
IEEE802154_CAP_REG_RETENTION
@ IEEE802154_CAP_REG_RETENTION
the device retains all register values when off.
Definition: radio.h:120
IEEE802154_CAP_SUB_GHZ
@ IEEE802154_CAP_SUB_GHZ
the device support the IEEE802.15.4 Sub GHz band
Definition: radio.h:94
ieee802154_radio_off
static int ieee802154_radio_off(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::off.
Definition: radio.h:842
ieee802154_phy_conf_t::page
uint8_t page
IEEE802.15.4 channel page.
Definition: radio.h:361
ieee802154_radio_ops::write
int(* write)(ieee802154_dev_t *dev, const iolist_t *psdu)
Write a frame into the framebuffer.
Definition: radio.h:381
ieee802154_radio_has_irq_cca_done
static bool ieee802154_radio_has_irq_cca_done(ieee802154_dev_t *dev)
Check if the device supports CCA done interrupt.
Definition: radio.h:1121
IEEE802154_CAP_IRQ_RX_START
@ IEEE802154_CAP_IRQ_RX_START
the device reports the start of a frame (SFD) when received.
Definition: radio.h:102
IEEE802154_CAP_FRAME_RETRANS
@ IEEE802154_CAP_FRAME_RETRANS
the device supports frame retransmissions with CSMA-CA
Definition: radio.h:62
IEEE802154_CCA_MODE_CARRIER_SENSING
@ IEEE802154_CCA_MODE_CARRIER_SENSING
CCA using second mode (carrier sensing)
Definition: radio.h:311
IEEE802154_CAP_AUTO_CSMA
@ IEEE802154_CAP_AUTO_CSMA
the device supports Auto CSMA-CA
Definition: radio.h:72
IEEE802154_RADIO_INDICATION_RX_START
@ IEEE802154_RADIO_INDICATION_RX_START
the transceiver detected a valid SFD
Definition: radio.h:191
ieee802154_radio_ops::request_transmit
int(* request_transmit)(ieee802154_dev_t *dev)
Request the transmission of a preloaded frame.
Definition: radio.h:397
IEEE802154_TRX_STATE_TRX_OFF
@ IEEE802154_TRX_STATE_TRX_OFF
the transceiver state is off
Definition: radio.h:168
IEEE802154_CAP_IRQ_TX_START
@ IEEE802154_CAP_IRQ_TX_START
the device reports the start of a frame (SFD) was sent.
Definition: radio.h:106
ieee802154_radio_write
static int ieee802154_radio_write(ieee802154_dev_t *dev, const iolist_t *psdu)
Shortcut to ieee802154_radio_ops::write.
Definition: radio.h:727
ieee802154_radio_has_frame_retrans
static bool ieee802154_radio_has_frame_retrans(ieee802154_dev_t *dev)
Check if the device supports frame retransmissions (with CSMA-CA).
Definition: radio.h:1009
ieee802154_radio_confirm_set_trx_state
static int ieee802154_radio_confirm_set_trx_state(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::confirm_set_trx_state.
Definition: radio.h:953
iolist
iolist structure definition
Definition: iolist.h:39
ieee802154_trx_ev_t
ieee802154_trx_ev_t
IEEE802.15.4 Radio HAL events.
Definition: radio.h:185
ieee802154_dev
the IEEE802.15.4 device descriptor
Definition: radio.h:285
ieee802154_cb_t
void(* ieee802154_cb_t)(ieee802154_dev_t *dev, ieee802154_trx_ev_t status)
Prototype of the IEEE802.15.4 device event callback.
Definition: radio.h:279
ieee802154_csma_be_t::max
uint8_t max
maximum value of the exponential backoff
Definition: radio.h:243
ieee802154_rf_caps_t
ieee802154_rf_caps_t
IEEE802.15.4 Radio capabilities.
Definition: radio.h:45
uio.h
libc header for scatter/gather I/O
ieee802154_radio_ops::get_cap
bool(* get_cap)(ieee802154_dev_t *dev, ieee802154_rf_caps_t cap)
Get a cap from the radio.
Definition: radio.h:598
ieee802154_radio_set_cca_mode
static int ieee802154_radio_set_cca_mode(ieee802154_dev_t *dev, ieee802154_cca_mode_t mode)
Shortcut to ieee802154_radio_ops::set_cca_mode.
Definition: radio.h:811
ieee802154_csma_be_t::min
uint8_t min
minimum value of the exponential backoff
Definition: radio.h:242
ieee802154_rx_mode_t
ieee802154_rx_mode_t
RX mode configuration.
Definition: radio.h:325
ieee802154_radio_read
static int ieee802154_radio_read(ieee802154_dev_t *dev, void *buf, size_t size, ieee802154_rx_info_t *info)
Shortcut to ieee802154_radio_ops::read.
Definition: radio.h:781
IEEE802154_RX_PROMISC
@ IEEE802154_RX_PROMISC
Radio is in promiscuous mode.
Definition: radio.h:341
ieee802154_radio_ops
Radio ops struct declaration.
Definition: radio.h:368
ieee802154_radio_request_transmit
static int ieee802154_radio_request_transmit(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::request_transmit.
Definition: radio.h:739
ieee802154_radio_set_cca_threshold
static int ieee802154_radio_set_cca_threshold(ieee802154_dev_t *dev, int8_t threshold)
Shortcut to ieee802154_radio_ops::set_cca_threshold.
Definition: radio.h:797
IEEE802154_TRX_STATE_TX_ON
@ IEEE802154_TRX_STATE_TX_ON
the transceiver is ready to transmit/transmitting a frame
Definition: radio.h:176
IEEE802154_RADIO_CONFIRM_TX_DONE
@ IEEE802154_RADIO_CONFIRM_TX_DONE
the transceiver either finished sending a frame, the retransmission procedure or the channel activity...
Definition: radio.h:229
ieee802154_radio_ops::set_csma_params
int(* set_csma_params)(ieee802154_dev_t *dev, const ieee802154_csma_be_t *bd, int8_t retries)
Set the CSMA-CA parameters.
Definition: radio.h:704
ieee802154_radio_has_irq_tx_start
static bool ieee802154_radio_has_irq_tx_start(ieee802154_dev_t *dev)
Check if the device supports TX start interrupt.
Definition: radio.h:1105
eui64_t
Data type to represent an EUI-64.
Definition: eui64.h:55
ieee802154_phy_conf_t::pow
int8_t pow
TX power in dBm.
Definition: radio.h:362
TX_STATUS_SUCCESS
@ TX_STATUS_SUCCESS
the transceiver successfully sent a frame.
Definition: radio.h:140
ieee802154_tx_status_t
ieee802154_tx_status_t
Transmission status.
Definition: radio.h:126
ieee802154_radio_request_on
static int ieee802154_radio_request_on(ieee802154_dev_t *dev)
Shortcut to ieee802154_radio_ops::request_on.
Definition: radio.h:915
ieee802154_radio_set_csma_params
static int ieee802154_radio_set_csma_params(ieee802154_dev_t *dev, const ieee802154_csma_be_t *bd, int8_t retries)
Shortcut to ieee802154_radio_ops::set_csma_params.
Definition: radio.h:901
ieee802154_radio_ops::set_rx_mode
int(* set_rx_mode)(ieee802154_dev_t *dev, ieee802154_rx_mode_t mode)
Set the RX mode.
Definition: radio.h:716
ieee802154_radio_ops::len
int(* len)(ieee802154_dev_t *dev)
Get the length of the received PSDU frame.
Definition: radio.h:438
ieee802154_dev::cb
ieee802154_cb_t cb
the event callback of the device
Definition: radio.h:297
IEEE802154_TRX_STATE_RX_ON
@ IEEE802154_TRX_STATE_RX_ON
the transceiver is ready to receive/receiving frames
Definition: radio.h:172
eui64.h
EUI-64 data type definition.
IEEE802154_RADIO_INDICATION_RX_DONE
@ IEEE802154_RADIO_INDICATION_RX_DONE
the transceiver received a frame and lies in the internal framebuffer.
Definition: radio.h:219
ieee802154_radio_ops::set_hw_addr_filter
int(* set_hw_addr_filter)(ieee802154_dev_t *dev, const network_uint16_t *short_addr, const eui64_t *ext_addr, const uint16_t *pan_id)
Set IEEE802.15.4 addresses in hardware address filter.
Definition: radio.h:665
IEEE802154_RX_WAIT_FOR_ACK
@ IEEE802154_RX_WAIT_FOR_ACK
Radio is ready to receive ACK frames.
Definition: radio.h:353
ieee802154_radio_has_24_ghz
static bool ieee802154_radio_has_24_ghz(ieee802154_dev_t *dev)
Check if the device supports the IEEE802.15.4 2.4 GHz band.
Definition: radio.h:1057
ieee802154_cca_mode_t
ieee802154_cca_mode_t
IEEE802.15.4 CCA modes.
Definition: radio.h:303
ieee802154_radio_ops::set_frame_retrans
int(* set_frame_retrans)(ieee802154_dev_t *dev, uint8_t retrans)
Set number of frame retransmissions.
Definition: radio.h:684
IEEE802154_CAP_IRQ_TX_DONE
@ IEEE802154_CAP_IRQ_TX_DONE
the device reports when the transmission is done
Definition: radio.h:98
ieee802154_radio_has_irq_tx_done
static bool ieee802154_radio_has_irq_tx_done(ieee802154_dev_t *dev)
Check if the device supports TX done interrupt.
Definition: radio.h:1073
ieee802154_radio_ops::request_cca
int(* request_cca)(ieee802154_dev_t *dev)
Request Stand-Alone Clear Channel Assessment.
Definition: radio.h:569
ieee802154_dev::driver
const ieee802154_radio_ops_t * driver
pointer to the operations of the device
Definition: radio.h:289
ieee802154_radio_has_sub_ghz
static bool ieee802154_radio_has_sub_ghz(ieee802154_dev_t *dev)
Check if the device supports the IEEE802.15.4 Sub-GHz band.
Definition: radio.h:1041
IEEE802154_RADIO_INDICATION_TX_START
@ IEEE802154_RADIO_INDICATION_TX_START
the transceiver sent out a valid SFD
Definition: radio.h:200
ieee802154_radio_set_frame_retrans
static int ieee802154_radio_set_frame_retrans(ieee802154_dev_t *dev, uint8_t retrans)
Shortcut to ieee802154_radio_ops::set_frame_retrans.
Definition: radio.h:881