csma_sender.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 INRIA
3  * Copyright (C) 2016 Freie Universität Berlin
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser
6  * General Public License v2.1. See the file LICENSE in the top level
7  * directory for more details.
8  */
9 
25 #ifndef NET_CSMA_SENDER_H
26 #define NET_CSMA_SENDER_H
27 
28 #include <stdint.h>
29 
30 #include "net/netdev.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
44 #ifndef CONFIG_CSMA_SENDER_MIN_BE_DEFAULT
45 #define CONFIG_CSMA_SENDER_MIN_BE_DEFAULT (3U)
46 #endif
47 
51 #ifndef CONFIG_CSMA_SENDER_MAX_BE_DEFAULT
52 #define CONFIG_CSMA_SENDER_MAX_BE_DEFAULT (5U)
53 #endif
54 
59 #ifndef CONFIG_CSMA_SENDER_MAX_BACKOFFS_DEFAULT
60 #define CONFIG_CSMA_SENDER_MAX_BACKOFFS_DEFAULT (4U)
61 #endif
62 
66 #ifndef CONFIG_CSMA_SENDER_BACKOFF_PERIOD_UNIT
67 #define CONFIG_CSMA_SENDER_BACKOFF_PERIOD_UNIT (320U)
68 #endif
74 typedef struct {
75  uint8_t min_be;
76  uint8_t max_be;
77  uint16_t max_backoffs;
78  uint32_t backoff_period;
80 
85 
109  const csma_sender_conf_t *conf);
110 
140 
141 #ifdef __cplusplus
142 }
143 #endif
144 
145 #endif /* NET_CSMA_SENDER_H */
146 
Definitions low-level network driver interface.
int csma_sender_cca_send(netdev_t *dev, iolist_t *iolist)
Sends a 802.15.4 frame when medium is available.
int csma_sender_csma_ca_send(netdev_t *dev, iolist_t *iolist, const csma_sender_conf_t *conf)
Sends a 802.15.4 frame using the CSMA/CA method.
const csma_sender_conf_t CSMA_SENDER_CONF_DEFAULT
Default configuration.
Configuration type for backoff.
Definition: csma_sender.h:74
uint16_t max_backoffs
maximum number of retries
Definition: csma_sender.h:77
uint8_t min_be
minimum backoff exponent
Definition: csma_sender.h:75
uint8_t max_be
maximum backoff exponent
Definition: csma_sender.h:76
uint32_t backoff_period
backoff period in microseconds
Definition: csma_sender.h:78
iolist structure definition
Definition: iolist.h:39
Structure to hold driver state.
Definition: netdev.h:365