GNRC LoRaWAN stack implementation. More...
GNRC LoRaWAN stack implementation.
Modules | |
| GNRC LoRaWAN compile configurations | |
Files | |
| file | region.h |
| GNRC LoRaWAN region specific functions. | |
| file | lorawan.h |
| GNRC LoRaWAN API definition. | |
| file | gnrc_lorawan_internal.h |
| GNRC LoRaWAN internal header. | |
Data Structures | |
| struct | mlme_mib_t |
| MAC Information Base descriptor for MLME Request-Confirm. More... | |
| struct | mlme_request_t |
| MAC (sub) Layer Management Entity (MLME) request representation. More... | |
| struct | mcps_request_t |
| Mac Common Part Sublayer (MCPS) request representation. More... | |
| struct | mlme_confirm_t |
| MAC (sub) Layer Management Entity (MLME) confirm representation. More... | |
| struct | mcps_confirm_t |
| Mac Common Part Sublayer (MCPS) confirm representation. More... | |
| struct | mcps_indication_t |
| Mac Common Part Sublayer (MCPS) indication representation. More... | |
| struct | mlme_indication_t |
| MAC (sub) Layer Management Entity (MLME) indication representation. More... | |
Macros | |
| #define | GNRC_LORAWAN_REQ_STATUS_SUCCESS (0) |
| MLME or MCPS request successful status. | |
| #define | GNRC_LORAWAN_REQ_STATUS_DEFERRED (1) |
| the MLME or MCPS confirm message is asynchronous | |
Enumerations | |
| enum | mcps_event_t { MCPS_EVENT_RX , MCPS_EVENT_NO_RX } |
| MCPS events. More... | |
| enum | mlme_activation_t { MLME_ACTIVATION_NONE , MLME_ACTIVATION_ABP , MLME_ACTIVATION_OTAA } |
| LoRaWAN activation mechanism. More... | |
| enum | mlme_mib_type_t { MIB_ACTIVATION_METHOD , MIB_DEV_ADDR , MIB_RX2_DR } |
| MAC Information Base attributes. More... | |
| enum | mlme_type_t { MLME_JOIN , MLME_LINK_CHECK , MLME_RESET , MLME_SET , MLME_GET , MLME_SCHEDULE_UPLINK } |
| MLME primitive types. More... | |
| enum | mcps_type_t { MCPS_CONFIRMED , MCPS_UNCONFIRMED } |
| MCPS primitive types. More... | |
Functions | |
| void | gnrc_lorawan_radio_rx_timeout_cb (gnrc_lorawan_t *mac) |
| Indicate the MAC layer there was a timeout event. More... | |
| void | gnrc_lorawan_radio_tx_done_cb (gnrc_lorawan_t *mac) |
| Indicate the MAC layer when the transmission finished. More... | |
| static void | gnrc_lorawan_radio_rx_error_cb (gnrc_lorawan_t *mac) |
| Indicate the MAC layer reception of a frame went wrong. More... | |
| void | gnrc_lorawan_timeout_cb (gnrc_lorawan_t *mac) |
| Indicate the MAC layer that the timer was fired. More... | |
| void | gnrc_lorawan_init (gnrc_lorawan_t *mac, uint8_t *joineui, const gnrc_lorawan_key_ctx_t *ctx) |
| Init GNRC LoRaWAN. More... | |
| void | gnrc_lorawan_mlme_request (gnrc_lorawan_t *mac, const mlme_request_t *mlme_request, mlme_confirm_t *mlme_confirm) |
| Perform a MLME request. More... | |
| void | gnrc_lorawan_mcps_request (gnrc_lorawan_t *mac, const mcps_request_t *mcps_request, mcps_confirm_t *mcps_confirm) |
| Perform a MCPS request. More... | |
| void | gnrc_lorawan_radio_rx_done_cb (gnrc_lorawan_t *mac, uint8_t *data, size_t size) |
| Fetch a LoRaWAN packet from the radio. More... | |
| void | gnrc_lorawan_mcps_indication (gnrc_lorawan_t *mac, mcps_indication_t *ind) |
| MCPS indication callback. More... | |
| void | gnrc_lorawan_mlme_indication (gnrc_lorawan_t *mac, mlme_indication_t *ind) |
| MLME indication callback. More... | |
| void | gnrc_lorawan_mcps_confirm (gnrc_lorawan_t *mac, mcps_confirm_t *confirm) |
| MCPS Confirm callback. More... | |
| void | gnrc_lorawan_mlme_confirm (gnrc_lorawan_t *mac, mlme_confirm_t *confirm) |
| MLME confirm callback. More... | |
| netdev_t * | gnrc_lorawan_get_netdev (gnrc_lorawan_t *mac) |
| Get netdev pointer from mac descriptor. More... | |
| int | gnrc_lorawan_phy_set_channel_mask (gnrc_lorawan_t *mac, uint16_t channel_mask) |
| Set the channel mask in order to enable or disable LoRaWAN channels. More... | |
| void | gnrc_lorawan_set_timer (gnrc_lorawan_t *mac, uint32_t us) |
| Set a timer with the given time. More... | |
| void | gnrc_lorawan_remove_timer (gnrc_lorawan_t *mac) |
| Remove the current timer. More... | |
| static void | gnrc_lorawan_set_uncnf_redundancy (gnrc_lorawan_t *mac, uint8_t redundancy) |
| Set unconfirmed uplink redundancy. More... | |
| enum mcps_event_t |
| enum mcps_type_t |
| enum mlme_activation_t |
| enum mlme_mib_type_t |
| enum mlme_type_t |
| netdev_t* gnrc_lorawan_get_netdev | ( | gnrc_lorawan_t * | mac | ) |
Get netdev pointer from mac descriptor.
| [in] | mac | pointer to the MAC descriptor |
| void gnrc_lorawan_init | ( | gnrc_lorawan_t * | mac, |
| uint8_t * | joineui, | ||
| const gnrc_lorawan_key_ctx_t * | ctx | ||
| ) |
Init GNRC LoRaWAN.
| [in] | mac | pointer to the MAC descriptor |
| [in] | joineui | pointer to Join EUI |
| [in] | ctx | pointer to LoRaWAN context |
| void gnrc_lorawan_mcps_confirm | ( | gnrc_lorawan_t * | mac, |
| mcps_confirm_t * | confirm | ||
| ) |
MCPS Confirm callback.
| [in] | mac | pointer to the MAC descriptor |
| [in] | confirm | pointer to the confirm (see mcps_confirm_t) |
| void gnrc_lorawan_mcps_indication | ( | gnrc_lorawan_t * | mac, |
| mcps_indication_t * | ind | ||
| ) |
MCPS indication callback.
| [in] | mac | pointer to the MAC descriptor |
| [in] | ind | pointer of the indication (see mcps_indication_t) |
| void gnrc_lorawan_mcps_request | ( | gnrc_lorawan_t * | mac, |
| const mcps_request_t * | mcps_request, | ||
| mcps_confirm_t * | mcps_confirm | ||
| ) |
Perform a MCPS request.
| [in] | mac | pointer to the MAC descriptor |
| [in] | mcps_request | the MCPS request |
| [out] | mcps_confirm | the MCPS confirm. mlme_confirm->status could either be GNRC_LORAWAN_REQ_STATUS_SUCCESS if the request was OK, GNRC_LORAWAN_REQ_STATUS_DEFERRED if the confirmation is deferred or an standard error number |
| void gnrc_lorawan_mlme_confirm | ( | gnrc_lorawan_t * | mac, |
| mlme_confirm_t * | confirm | ||
| ) |
MLME confirm callback.
| [in] | mac | pointer to the MAC descriptor |
| [in] | confirm | pointer to the confirm (see mlme_confirm_t) |
| void gnrc_lorawan_mlme_indication | ( | gnrc_lorawan_t * | mac, |
| mlme_indication_t * | ind | ||
| ) |
MLME indication callback.
| [in] | mac | pointer to the MAC descriptor |
| [in] | ind | pointer of the indication (see mlme_indication_t) |
| void gnrc_lorawan_mlme_request | ( | gnrc_lorawan_t * | mac, |
| const mlme_request_t * | mlme_request, | ||
| mlme_confirm_t * | mlme_confirm | ||
| ) |
Perform a MLME request.
| [in] | mac | pointer to the MAC descriptor |
| [in] | mlme_request | the MLME request |
| [out] | mlme_confirm | the MLME confirm. mlme_confirm->status could either be GNRC_LORAWAN_REQ_STATUS_SUCCESS if the request was OK, GNRC_LORAWAN_REQ_STATUS_DEFERRED if the confirmation is deferred or an standard error number |
| int gnrc_lorawan_phy_set_channel_mask | ( | gnrc_lorawan_t * | mac, |
| uint16_t | channel_mask | ||
| ) |
Set the channel mask in order to enable or disable LoRaWAN channels.
| [in] | mac | pointer to the MAC descriptor |
| [in] | channel_mask | the channel mask. LSB maps to channel 0 |
channel_mask is zero or if the channel mask tries to enable an undefined channel | void gnrc_lorawan_radio_rx_done_cb | ( | gnrc_lorawan_t * | mac, |
| uint8_t * | data, | ||
| size_t | size | ||
| ) |
Fetch a LoRaWAN packet from the radio.
To be called on radio RX done event.
| [in] | mac | pointer to the MAC descriptor |
| [in] | data | pointer to the psdu. Must not be NULL. Use gnrc_lorawan_radio_rx_error_cb instead if the reception was not successful. |
| [in] | size | size of the PSDU |
|
inlinestatic |
| void gnrc_lorawan_radio_rx_timeout_cb | ( | gnrc_lorawan_t * | mac | ) |
Indicate the MAC layer there was a timeout event.
| [in] | mac | pointer to the MAC descriptor |
| void gnrc_lorawan_radio_tx_done_cb | ( | gnrc_lorawan_t * | mac | ) |
Indicate the MAC layer when the transmission finished.
| [in] | mac | pointer to the MAC descriptor |
| void gnrc_lorawan_remove_timer | ( | gnrc_lorawan_t * | mac | ) |
Remove the current timer.
| [in] | mac | pointer to the MAC descriptor |
| void gnrc_lorawan_set_timer | ( | gnrc_lorawan_t * | mac, |
| uint32_t | us | ||
| ) |
Set a timer with the given time.
| [in] | mac | pointer to the MAC descriptor |
| us | timeout microseconds |
|
inlinestatic |
| void gnrc_lorawan_timeout_cb | ( | gnrc_lorawan_t * | mac | ) |
Indicate the MAC layer that the timer was fired.
| [in] | mac | pointer to the MAC descriptor |